From: Marcelo M. <mar...@us...> - 2005-10-27 11:30:23
|
Update of /cvsroot/swig/SWIG/Lib/typemaps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30979 Modified Files: cstrings.swg enumint.swg primtypes.swg ptrtypes.swg strings.swg swigtype.swg valtypes.swg void.swg Log Message: added methods for size_t and more freearg typemaps around, just in case Index: strings.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/strings.swg,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** strings.swg 27 Oct 2005 10:35:38 -0000 1.7 --- strings.swg 27 Oct 2005 11:30:14 -0000 1.8 *************** *** 234,237 **** --- 234,238 ---- $1 = temp; } + %typemap(freearg) Char [ANY], const Char [ANY] ""; %typemap(in,noblock=1,fragment=#SWIG_AsCharArray) const Char (&)[ANY] (Char temp[$1_dim0]) *************** *** 242,245 **** --- 243,247 ---- $1 = &temp; } + %typemap(freearg) const Char (&)[ANY] ""; %typemap(out,fragment=#SWIG_FromCharPtrAndSize) Index: cstrings.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/cstrings.swg,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cstrings.swg 24 Oct 2005 14:59:05 -0000 1.1 --- cstrings.swg 27 Oct 2005 11:30:13 -0000 1.2 *************** *** 12,19 **** %define %typemaps_cstring(Name, Char, ! SWIG_AsCharPtr, ! SWIG_AsCharPtrAndSize, ! SWIG_FromCharPtr, ! SWIG_FromCharPtrAndSize) --- 12,19 ---- %define %typemaps_cstring(Name, Char, ! SWIG_AsCharPtr, ! SWIG_AsCharPtrAndSize, ! SWIG_FromCharPtr, ! SWIG_FromCharPtrAndSize) *************** *** 182,195 **** %define Name ## _output_maxsize(TYPEMAP, SIZE) ! %typemap(in,noblock=1,fragment=SWIG_AsVal_frag(unsigned long)) (TYPEMAP, SIZE) (unsigned long size) { ! if (SWIG_AsVal(unsigned long)($input, &size) != SWIG_OK) { %argument_fail(SWIG_TypeError, "(TYPEMAP, SIZE)", $argnum); } $2 = %numeric_cast(size, $2_ltype); ! $1 = %new_array(size+1, $*1_ltype); ! } %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtr) (TYPEMAP,SIZE) { %append_output(SWIG_FromCharPtr($1)); - %delete_array($1); } %enddef --- 182,198 ---- %define Name ## _output_maxsize(TYPEMAP, SIZE) ! %typemap(in,noblock=1,fragment=SWIG_AsVal_frag(size_t)) (TYPEMAP, SIZE) (size_t size, Char *buff = 0) { ! if (SWIG_AsVal(size_t)($input, &size) != SWIG_OK) { %argument_fail(SWIG_TypeError, "(TYPEMAP, SIZE)", $argnum); } + buff= %new_array(size+1, Char); $2 = %numeric_cast(size, $2_ltype); ! $1 = %static_cast(buff,$1_ltype); ! } ! %typemap(freearg,noblock=1) (TYPEMAP,SIZE) { ! if (buff$argnum) %delete_array(buff$argnum); ! } %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtr) (TYPEMAP,SIZE) { %append_output(SWIG_FromCharPtr($1)); } %enddef *************** *** 209,224 **** %define Name ## _output_withsize(TYPEMAP, SIZE) ! %typemap(in,noblock=1,fragment=SWIG_AsVal_frag(unsigned long)) (TYPEMAP, SIZE) (unsigned long n) { ! if (SWIG_AsVal(unsigned long)($input, &n) != SWIG_OK) { %argument_fail(SWIG_TypeError, "(TYPEMAP, SIZE)", $argnum); } ! $1 = %new_array(n+1, $*1_ltype); ! $2 = %new_instance($*2_ltype); ! *$2 = %numeric_cast(n, $*2_ltype); } %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtrAndSize) (TYPEMAP,SIZE) { %append_output(SWIG_FromCharPtrAndSize($1,*$2)); - %delete_array($1); - %delete($2); } %enddef --- 212,229 ---- %define Name ## _output_withsize(TYPEMAP, SIZE) ! %typemap(in,noblock=1,fragment=SWIG_AsVal_frag(size_t)) (TYPEMAP, SIZE) (size_t n, Char *buff = 0, $*2_ltype size) { ! if (SWIG_AsVal(size_t)($input, &n) != SWIG_OK) { %argument_fail(SWIG_TypeError, "(TYPEMAP, SIZE)", $argnum); } ! buff= %new_array(n+1, Char); ! $1 = %static_cast(buff, $1_ltype); ! size = %numeric_cast(n,$*2_ltype); ! $2 = &size; } + %typemap(freearg,noblock=1)(TYPEMAP,SIZE) { + if (buff$argnum) %delete_array(buff$argnum); + } %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtrAndSize) (TYPEMAP,SIZE) { %append_output(SWIG_FromCharPtrAndSize($1,*$2)); } %enddef *************** *** 241,245 **** %typemap(in,noblock=1,numinputs=0) TYPEMAP($*1_ltype temp = 0) { $1 = &temp; ! } %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtr) TYPEMAP { if (*$1) { --- 246,251 ---- %typemap(in,noblock=1,numinputs=0) TYPEMAP($*1_ltype temp = 0) { $1 = &temp; ! } ! %typemap(freearg) TYPEMAP ""; %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtr) TYPEMAP { if (*$1) { *************** *** 269,272 **** --- 275,279 ---- $1 = &temp; $2 = &tempn; } + %typemap(freearg) (TYPEMAP,SIZE) ""; %typemap(argout,noblock=1,fragment=#SWIG_FromCharPtrAndSize)(TYPEMAP,SIZE) { if (*$1) { Index: void.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/void.swg,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** void.swg 27 Oct 2005 10:35:38 -0000 1.6 --- void.swg 27 Oct 2005 11:30:14 -0000 1.7 *************** *** 10,14 **** } } - %typemap(freearg) void * ""; --- 10,13 ---- *************** *** 19,22 **** --- 18,22 ---- $1 = &temp; } + %typemap(freearg) void * const& ""; Index: ptrtypes.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/ptrtypes.swg,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ptrtypes.swg 26 Oct 2005 14:09:57 -0000 1.4 --- ptrtypes.swg 27 Oct 2005 11:30:14 -0000 1.5 *************** *** 33,36 **** --- 33,37 ---- if (res == SWIG_NEWOBJ) %delete(ptr); } + %typemap(freearg) Type ""; %typemap(in,fragment=frag) const Type & (int res = 0) { Type *ptr = (Type *)0; Index: valtypes.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/valtypes.swg,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** valtypes.swg 26 Oct 2005 14:09:58 -0000 1.6 --- valtypes.swg 27 Oct 2005 11:30:14 -0000 1.7 *************** *** 39,42 **** --- 39,43 ---- $1 = %static_cast(val,$ltype); } + %typemap(freearg) Type ""; %typemap(in,noblock=1,fragment=frag) const Type & ($*ltype temp, Type val, int ecode = 0) { ecode = asval_meth($input, &val); *************** *** 47,50 **** --- 48,52 ---- $1 = &temp; } + %typemap(freearg) const Type& ""; %enddef Index: swigtype.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/swigtype.swg,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** swigtype.swg 27 Oct 2005 10:35:38 -0000 1.7 --- swigtype.swg 27 Oct 2005 11:30:14 -0000 1.8 *************** *** 10,14 **** $1 = %reinterpret_cast(argp, $ltype); } - %typemap(freearg) SWIGTYPE *, SWIGTYPE [] ""; --- 10,13 ---- *************** *** 20,23 **** --- 19,23 ---- $1 = &temp; } + %typemap(freearg) SWIGTYPE* const& ""; /* Reference */ *************** *** 29,32 **** --- 29,33 ---- $1 = %reinterpret_cast(argp, $ltype); } + %typemap(freearg) SWIGTYPE& ""; /* By value */ *************** *** 38,41 **** --- 39,43 ---- $1 = *(%reinterpret_cast(argp, $<ype)); } + %typemap(freearg) SWIGTYPE ""; /* ----------------------------------------------------------------------------- *************** *** 328,331 **** --- 330,334 ---- } } + %typemap(freearg) SWIGTYPE (CLASS::*) ""; %typemap(out,noblock=1) SWIGTYPE (CLASS::*) { *************** *** 362,365 **** --- 365,369 ---- } } + %typemap(freearg) SWIGTYPE ((*)(ANY)) ""; %typemap(out, noblock=1) SWIGTYPE ((*)(ANY)) { *************** *** 379,382 **** --- 383,387 ---- %typemap(in,numinputs=0) SWIGTYPE *VARARGS_SENTINEL, SWIGTYPE VARARGS_SENTINEL ""; + %typemap(freearg) SWIGTYPE *VARARGS_SENTINEL, SWIGTYPE VARARGS_SENTINEL ""; *************** *** 388,391 **** --- 393,397 ---- } } + %typemap(freearg) SWIGTYPE *DISOWN ""; %typemap(varin,noblock=1) SWIGTYPE *DISOWN { Index: primtypes.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/primtypes.swg,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** primtypes.swg 25 Oct 2005 09:31:15 -0000 1.3 --- primtypes.swg 27 Oct 2005 11:30:14 -0000 1.4 *************** *** 153,156 **** --- 153,174 ---- %ensure_type_fragments(double) + /* size_t */ + + %fragment(SWIG_From_frag(size_t),"header",fragment=SWIG_From_frag(unsigned long)) { + SWIGINTERNINLINE SWIG_Object + SWIG_From_dec(size_t)(size_t value) + { + return SWIG_From(unsigned long)(value); + } + } + + %fragment(SWIG_AsVal_frag(size_t),"header",fragment=SWIG_AsVal_frag(unsigned long)) { + SWIGINTERNINLINE int + SWIG_AsVal_dec(size_t)(SWIG_Object obj, size_t *val) + { + return SWIG_AsVal(unsigned long)(obj, val); + } + } + /* ------------------------------------------------------------ Index: enumint.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/typemaps/enumint.swg,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** enumint.swg 25 Oct 2005 09:31:15 -0000 1.4 --- enumint.swg 27 Oct 2005 11:30:14 -0000 1.5 *************** *** 15,18 **** --- 15,19 ---- } } + %typemap(freearg) const enum SWIGTYPE& ""; %typemap(varin,fragment=SWIG_AsVal_frag(int),noblock=1) enum SWIGTYPE { |