Fix SWIGTYPE output typemaps for Pike module.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4759 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Logan Johnson 2003-05-01 16:04:10 +00:00
commit 332eb499a2

View file

@ -111,8 +111,7 @@ extern "C" {
%typemap(out, pikedesc="tStr") char * "push_text($1);"; %typemap(out, pikedesc="tStr") char * "push_text($1);";
/* Pointers, references, and arrays */ /* Pointers, references, and arrays */
%typemap(out) SWIGTYPE*, SWIGTYPE &, SWIGTYPE [] %typemap(out, pikedesc="tObj") SWIGTYPE*, SWIGTYPE &, SWIGTYPE [] "push_object(SWIG_NewPointerObj((void *) $1, $1_descriptor, $owner));";
"$result = SWIG_NewPointerObj((void *) $1, $1_descriptor, $owner);";
/* Void return value; don't push anything */ /* Void return value; don't push anything */
%typemap(out, pikedesc="tVoid") void ""; %typemap(out, pikedesc="tVoid") void "";
@ -128,19 +127,19 @@ extern "C" {
%typemap(out, pikedesc="tStr") char [ANY], const char [ANY] "push_text($1);"; %typemap(out, pikedesc="tStr") char [ANY], const char [ANY] "push_text($1);";
/* Primitive types--return by value */ /* Primitive types--return by value */
%typemap(out) SWIGTYPE %typemap(out, "tObj") SWIGTYPE
#ifdef __cplusplus #ifdef __cplusplus
{ {
$&1_ltype resultptr; $&1_ltype resultptr;
resultptr = new $1_ltype(($1_ltype &) $1); resultptr = new $1_ltype(($1_ltype &) $1);
$result = SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1); push_object(SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1));
} }
#else #else
{ {
$&1_ltype resultptr; $&1_ltype resultptr;
resultptr = ($&1_ltype) malloc(sizeof($1_type)); resultptr = ($&1_ltype) malloc(sizeof($1_type));
memmove(resultptr, &$1, sizeof($1_type)); memmove(resultptr, &$1, sizeof($1_type));
$result = SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1); push_object(SWIG_NewPointerObj((void *) resultptr, $&1_descriptor, 1));
} }
#endif #endif