Modified the "varin" typemap for a dimensionless char array to generate
a warning message, and to raise an exception if the typemap is actually invoked at runtime. This is needed to avoid problems for the case when wrapping an extern char[] declaration, where the array size is truly unknown. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6151 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
052d067feb
commit
d34102d40b
1 changed files with 5 additions and 3 deletions
|
|
@ -1,4 +1,5 @@
|
|||
/* --- Input Values --- */
|
||||
|
||||
%typemap(in) char * "$1 = StringValuePtr($input);";
|
||||
%typemap(in) char [ANY] "$1 = StringValuePtr($input);";
|
||||
|
||||
|
|
@ -59,9 +60,10 @@
|
|||
#endif /* __cplusplus */
|
||||
|
||||
/* Special case for string array variables */
|
||||
%typemap(varin) char[] {
|
||||
size_t size = sizeof($1);
|
||||
strncpy($1,StringValuePtr($input),size);
|
||||
%typemap(varin,
|
||||
warning="462:Unable to set variable of type char []") char[]
|
||||
{
|
||||
rb_raise(rb_eTypeError, "C/C++ variable '$name' is read-only.");
|
||||
}
|
||||
|
||||
%typemap(varin) char[ANY] "strncpy($1,StringValuePtr($input),$1_dim0);";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue