diff --git a/Examples/python/swigrun/Makefile b/Examples/python/swigrun/Makefile index 3c0ff3026..70513034b 100644 --- a/Examples/python/swigrun/Makefile +++ b/Examples/python/swigrun/Makefile @@ -9,10 +9,10 @@ SWIGOPT = all:: $(SWIG) -co swigrun.swg $(SWIG) -o pyrun.swg -co python/pyrun.swg - $(SWIG) -o pyrunalias.swg -co python/pyrunalias.swg + $(SWIG) -o runtime.swg -co runtime.swg $(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp - rm -f swigrun.swg pyrun.swg pyrunalias.swg + rm -f *.swg static:: $(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ @@ -21,7 +21,7 @@ static:: clean:: $(MAKE) -f $(TOP)/Makefile python_clean rm -f $(TARGET).py - rm -f swigrun.swg pyrun.swg pyrunalias.swg + rm -f *.swg check: all diff --git a/Examples/python/swigrun/example.cxx b/Examples/python/swigrun/example.cxx index 780c53f58..ef371d87e 100644 --- a/Examples/python/swigrun/example.cxx +++ b/Examples/python/swigrun/example.cxx @@ -3,7 +3,7 @@ #include #include "swigrun.swg" #include "pyrun.swg" -#include "pyrunalias.swg" +#include "runtime.swg" #include "example.h" diff --git a/Examples/test-suite/python/Makefile.in b/Examples/test-suite/python/Makefile.in index 885158095..0bd566f7f 100644 --- a/Examples/test-suite/python/Makefile.in +++ b/Examples/test-suite/python/Makefile.in @@ -29,6 +29,7 @@ CPP_TEST_CASES += \ nondynamic \ primitive_types \ std_containers \ + swigobject C_TEST_CASES += \ file_test \ diff --git a/Lib/python/pyrunalias.swg b/Lib/python/pyrunalias.swg deleted file mode 100644 index 2b50f3de1..000000000 --- a/Lib/python/pyrunalias.swg +++ /dev/null @@ -1,9 +0,0 @@ -/* -----------------------------------------------------------------------------* - * Standard SWIG API Alias - * -----------------------------------------------------------------------------*/ - - -#define SWIG_TypeQuery(name) SWIG_Python_TypeQuery(name) -#define SWIG_TypeRegister(ti) SWIG_Python_TypeRegister(ti) -#define SWIG_TypeClientData(ti, cd) SWIG_Python_TypeClientData(ti, cd) -#define SWIG_PropagateClientData(ti) SWIG_Python_PropagateClientData(ti) diff --git a/Lib/runtime.swg b/Lib/runtime.swg new file mode 100644 index 000000000..32315c848 --- /dev/null +++ b/Lib/runtime.swg @@ -0,0 +1,41 @@ +/* -----------------------------------------------------------------------------* + Standard SWIG API for use inside user code. + + You need to include in your code as follow: + +#include // or using your favorite language +#include +#include // or using your favorite language +#include + + * -----------------------------------------------------------------------------*/ + +SWIGRUNTIMEINLINE swig_type_info * +SWIG_Runtime_TypeQuery(const char *name) { + swig_type_info *tl = SWIG_Runtime_GetTypeList(); + return SWIG_TypeQueryTL(tl, name); +} + +SWIGRUNTIMEINLINE swig_type_info * +SWIG_Runtime_TypeRegister(swig_type_info *ti) { + swig_type_info *tl = SWIG_Runtime_GetTypeList(); + return SWIG_TypeRegisterTL(&tl, ti); +} + +SWIGRUNTIMEINLINE void +SWIG_Runtime_TypeClientData(swig_type_info *ti, void *clientdata) { + swig_type_info *tl = SWIG_Runtime_GetTypeList(); + SWIG_TypeClientDataTL(tl, ti, clientdata); +} + +SWIGRUNTIMEINLINE void +SWIG_Runtime_PropagateClientData(swig_type_info *type) { + swig_type_info *tl = SWIG_Runtime_GetTypeList(); + SWIG_PropagateClientDataTL(tl, type); +} + +#define SWIG_GetTypeList() SWIG_Runtime_GetTypeList() +#define SWIG_TypeQuery(name) SWIG_Runtime_TypeQuery(name) +#define SWIG_TypeRegister(ti) SWIG_Runtime_TypeRegister(ti) +#define SWIG_TypeClientData(ti, cd) SWIG_Runtime_TypeClientData(ti, cd) +#define SWIG_PropagateClientData(ti) SWIG_Runtime_PropagateClientData(ti) diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg index 693f0fecd..8bbd97cf0 100644 --- a/Lib/swigrun.swg +++ b/Lib/swigrun.swg @@ -41,7 +41,7 @@ #define SWIGRUNTIME static #endif #ifndef SWIGRUNTIMEINLINE -#define SWIGRUNTIMEINLINE static SWIGINLINE +#define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif #ifdef __cplusplus @@ -152,7 +152,7 @@ SWIG_TypeRegisterTL(swig_type_info **tl, swig_type_info *ti) { Check the typename */ SWIGRUNTIME swig_type_info * -SWIG_TypeCheck(char *c, swig_type_info *ty) { +SWIG_TypeCheck(const char *c, swig_type_info *ty) { swig_type_info *s; if (!ty) return 0; /* Void pointer */ s = ty->next; /* First element always just a name */ @@ -284,8 +284,8 @@ SWIG_PackData(char *c, void *ptr, size_t sz) { /* Unpack binary data from a string */ -SWIGRUNTIME char * -SWIG_UnpackData(char *c, void *ptr, size_t sz) { +SWIGRUNTIME const char * +SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { @@ -347,6 +347,47 @@ SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { return buff; } +SWIGRUNTIME const char * +SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { + if (*c != '_') { + if (strcmp(c,"NULL") == 0) { + *ptr = (void *) 0; + return name; + } else { + return 0; + } + } + return SWIG_UnpackData(++c,ptr,sizeof(void *)); +} + +SWIGRUNTIME char * +SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { + char *r = buff; + size_t lname = (name ? strlen(name) : 0); + if ((2*sz + 2 + lname) > bsz) return 0; + *(r++) = '_'; + r = SWIG_PackData(r,ptr,sz); + if (lname) { + strncpy(r,name,lname+1); + } else { + *r = 0; + } + return buff; +} + +SWIGRUNTIME const char * +SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { + if (*c != '_') { + if (strcmp(c,"NULL") == 0) { + memset(ptr,0,sz); + return name; + } else { + return 0; + } + } + return SWIG_UnpackData(++c,ptr,sz); +} + #ifdef __cplusplus } #endif