diff --git a/Lib/java/enums.swg b/Lib/java/enums.swg index 8d144afd2..95074999e 100644 --- a/Lib/java/enums.swg +++ b/Lib/java/enums.swg @@ -15,8 +15,9 @@ $1 = &temp; %} %typemap(out) const enum SWIGTYPE & %{ $result = (jint)*$1; %} -%typemap(directorout) const enum SWIGTYPE & ($*1_ltype temp) -%{ temp = ($*1_ltype)$input; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const enum SWIGTYPE & +%{ static $*1_ltype temp; + temp = ($*1_ltype)$input; $1 = &temp; %} %typemap(directorin, descriptor="L$packagepath/$*javaclassname;") const enum SWIGTYPE & "$input = (jint)$1_name;" %typemap(javadirectorin) const enum SWIGTYPE & "$*javaclassname.swigToEnum($jniinput)" diff --git a/Lib/java/enumsimple.swg b/Lib/java/enumsimple.swg index 0f6bed2f9..fda321079 100644 --- a/Lib/java/enumsimple.swg +++ b/Lib/java/enumsimple.swg @@ -15,8 +15,9 @@ $1 = &temp; %} %typemap(out) const enum SWIGTYPE & %{ $result = (jint)*$1; %} -%typemap(directorout) const enum SWIGTYPE & ($*1_ltype temp) -%{ temp = ($*1_ltype)$input; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const enum SWIGTYPE & +%{ static $*1_ltype temp; + temp = ($*1_ltype)$input; $1 = &temp; %} %typemap(directorin, descriptor="I") const enum SWIGTYPE & "$input = (jint)$1_name;" %typemap(javadirectorin) const enum SWIGTYPE & "$jniinput" diff --git a/Lib/java/enumtypesafe.swg b/Lib/java/enumtypesafe.swg index 6917eaee0..0c9eb1db7 100644 --- a/Lib/java/enumtypesafe.swg +++ b/Lib/java/enumtypesafe.swg @@ -14,8 +14,9 @@ $1 = &temp; %} %typemap(out) const enum SWIGTYPE & %{ $result = (jint)*$1; %} -%typemap(directorout) const enum SWIGTYPE & ($*1_ltype temp) -%{ temp = ($*1_ltype)$input; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const enum SWIGTYPE & +%{ static $*1_ltype temp; + temp = ($*1_ltype)$input; $1 = &temp; %} %typemap(directorin, descriptor="L$packagepath/$*javaclassname;") const enum SWIGTYPE & "$input = (jint)$1_name;" %typemap(javadirectorin) const enum SWIGTYPE & "$*javaclassname.swigToEnum($jniinput)" diff --git a/Lib/java/enumtypeunsafe.swg b/Lib/java/enumtypeunsafe.swg index 632d017b4..b2a2bce6e 100644 --- a/Lib/java/enumtypeunsafe.swg +++ b/Lib/java/enumtypeunsafe.swg @@ -15,8 +15,9 @@ $1 = &temp; %} %typemap(out) const enum SWIGTYPE & %{ $result = (jint)*$1; %} -%typemap(directorout) const enum SWIGTYPE & ($*1_ltype temp) -%{ temp = ($*1_ltype)$input; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const enum SWIGTYPE & +%{ static $*1_ltype temp; + temp = ($*1_ltype)$input; $1 = &temp; %} %typemap(directorin, descriptor="I") const enum SWIGTYPE & "$input = (jint)$1_name;" %typemap(javadirectorin) const enum SWIGTYPE & "$jniinput" diff --git a/Lib/java/java.swg b/Lib/java/java.swg index d59d3c87d..3edef25aa 100644 --- a/Lib/java/java.swg +++ b/Lib/java/java.swg @@ -390,8 +390,9 @@ %{ temp = $input ? true : false; $1 = &temp; %} -%typemap(directorout) const bool & (bool temp) -%{ temp = $input ? true : false; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const bool & +%{ static $*1_ltype temp; + temp = $input ? true : false; $1 = &temp; %} %typemap(javadirectorin) const bool & "$jniinput" @@ -412,19 +413,20 @@ %{ temp = ($*1_ltype)$input; $1 = &temp; %} -%typemap(directorout) const char & (char temp), - const signed char & (signed char temp), - const unsigned char & (unsigned char temp), - const short & (short temp), - const unsigned short & (unsigned short temp), - const int & (int temp), - const unsigned int & (unsigned int temp), - const long & (long temp), - const unsigned long & (unsigned long temp), - const long long & ($*1_ltype temp), - const float & (float temp), - const double & (double temp) -%{ temp = ($*1_ltype)$input; +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const char &, + const signed char &, + const unsigned char &, + const short &, + const unsigned short &, + const int &, + const unsigned int &, + const long &, + const unsigned long &, + const long long &, + const float &, + const double & +%{ static $*1_ltype temp; + temp = ($*1_ltype)$input; $1 = &temp; %} %typemap(directorin, descriptor="Z") const bool & "$input = (jboolean)$1_name;" @@ -518,7 +520,8 @@ JCALL3(ReleaseByteArrayElements, jenv, ba, bae, 0); } -%typemap(directorout) const unsigned long long & ($*1_ltype temp) { +%typemap(directorout,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const unsigned long long & { + static $*1_ltype temp; jclass clazz; jmethodID mid; jbyteArray ba;