Correct warning message for wchar_t * typemaps

Use separate warning for char * and wchar_t * typemaps
SWIGWARN_TYPEMAP_CHARLEAK_MSG and SWIGWARN_TYPEMAP_WCHARLEAK_MSG
This commit is contained in:
William S Fulton 2022-05-06 18:44:02 +01:00
commit 72f7b82935
4 changed files with 14 additions and 3 deletions

View file

@ -75,6 +75,7 @@ SWIG_JSC_FromCharPtrAndSize(JSContextRef context, const char* carray, size_t siz
} }
%define %_typemap2_string(StringCode, CharCode, %define %_typemap2_string(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
@ -166,6 +167,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
%_typemap_string(StringCode, %_typemap_string(StringCode,
Char, Char,
WarningLeakMsg,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
SWIG_CharPtrLen, SWIG_CharPtrLen,

View file

@ -30,6 +30,7 @@ SWIG_strnlen(const char* s, size_t maxlen)
%include <typemaps/strings.swg> %include <typemaps/strings.swg>
%typemaps_string(%checkcode(STRING), %checkcode(CHAR), %typemaps_string(%checkcode(STRING), %checkcode(CHAR),
SWIGWARN_TYPEMAP_CHARLEAK_MSG,
char, Char, SWIG_AsCharPtrAndSize, SWIG_FromCharPtrAndSize, char, Char, SWIG_AsCharPtrAndSize, SWIG_FromCharPtrAndSize,
strlen, SWIG_strnlen, strlen, SWIG_strnlen,
"<limits.h>", CHAR_MIN, CHAR_MAX) "<limits.h>", CHAR_MIN, CHAR_MAX)

View file

@ -19,6 +19,7 @@
%define %_typemap_string(StringCode, %define %_typemap_string(StringCode,
Char, Char,
WarningLeakMsg,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
SWIG_CharPtrLen, SWIG_CharPtrLen,
@ -86,7 +87,7 @@
} }
} }
%typemap(varin,fragment=#SWIG_AsCharPtrAndSize,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const Char * { %typemap(varin,fragment=#SWIG_AsCharPtrAndSize,warning=WarningLeakMsg) const Char * {
Char *cptr = 0; size_t csize = 0; int alloc = SWIG_NEWOBJ; Char *cptr = 0; size_t csize = 0; int alloc = SWIG_NEWOBJ;
int res = SWIG_AsCharPtrAndSize($input, &cptr, &csize, &alloc); int res = SWIG_AsCharPtrAndSize($input, &cptr, &csize, &alloc);
if (!SWIG_IsOK(res)) { if (!SWIG_IsOK(res)) {
@ -117,7 +118,7 @@
} }
} }
%typemap(memberin,noblock=1,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const Char * { %typemap(memberin,noblock=1,warning=WarningLeakMsg) const Char * {
if ($input) { if ($input) {
size_t size = SWIG_CharPtrLen(%reinterpret_cast(%reinterpret_cast($input, const Char *), const Char *)) + 1; size_t size = SWIG_CharPtrLen(%reinterpret_cast(%reinterpret_cast($input, const Char *), const Char *)) + 1;
$1 = ($1_type)SWIG_NewCopyCharArray($input, size, Char); $1 = ($1_type)SWIG_NewCopyCharArray($input, size, Char);
@ -138,7 +139,7 @@
} }
} }
%typemap(globalin,noblock=1,warning=SWIGWARN_TYPEMAP_CHARLEAK_MSG) const Char * { %typemap(globalin,noblock=1,warning=WarningLeakMsg) const Char * {
if ($input) { if ($input) {
size_t size = SWIG_CharPtrLen($input) + 1; size_t size = SWIG_CharPtrLen($input) + 1;
$1 = ($1_type)SWIG_NewCopyCharArray($input, size, Char); $1 = ($1_type)SWIG_NewCopyCharArray($input, size, Char);
@ -501,6 +502,7 @@
#ifndef %_typemap2_string #ifndef %_typemap2_string
%define %_typemap2_string(StringCode, CharCode, %define %_typemap2_string(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
@ -591,6 +593,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
%_typemap_string(StringCode, %_typemap_string(StringCode,
Char, Char,
WarningLeakMsg,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
SWIG_CharPtrLen, SWIG_CharPtrLen,
@ -609,6 +612,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
* ------------------------------------------------------------ */ * ------------------------------------------------------------ */
%define %typemaps_string(StringCode, CharCode, %define %typemaps_string(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
@ -616,6 +620,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
SWIG_CharBufLen, SWIG_CharBufLen,
FragLimits, CHAR_MIN, CHAR_MAX) FragLimits, CHAR_MIN, CHAR_MAX)
%_typemap2_string(StringCode, CharCode, %_typemap2_string(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
@ -631,6 +636,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
* ------------------------------------------------------------ */ * ------------------------------------------------------------ */
%define %typemaps_string_alloc(StringCode, CharCode, %define %typemaps_string_alloc(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
@ -640,6 +646,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
SWIG_DeleteCharArray, SWIG_DeleteCharArray,
FragLimits, CHAR_MIN, CHAR_MAX) FragLimits, CHAR_MIN, CHAR_MAX)
%_typemap2_string(StringCode, CharCode, %_typemap2_string(StringCode, CharCode,
WarningLeakMsg,
Char, CharName, Char, CharName,
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,

View file

@ -31,6 +31,7 @@ SWIG_wcsnlen(const wchar_t* s, size_t maxlen)
%include <typemaps/strings.swg> %include <typemaps/strings.swg>
%typemaps_string(%checkcode(UNISTRING), %checkcode(UNICHAR), %typemaps_string(%checkcode(UNISTRING), %checkcode(UNICHAR),
SWIGWARN_TYPEMAP_WCHARLEAK_MSG,
wchar_t, WChar, SWIG_AsWCharPtrAndSize, SWIG_FromWCharPtrAndSize, wchar_t, WChar, SWIG_AsWCharPtrAndSize, SWIG_FromWCharPtrAndSize,
wcslen, SWIG_wcsnlen, wcslen, SWIG_wcsnlen,
"<wchar.h>", WCHAR_MIN, WCHAR_MAX) "<wchar.h>", WCHAR_MIN, WCHAR_MAX)