fix extra calls to TypeQuery for 'char *' and 'wchar_t *'

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7968 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-12-10 20:20:19 +00:00
commit 3ead254d42
10 changed files with 123 additions and 89 deletions

View file

@ -1,7 +1,23 @@
%ensure_fragment(SWIG_AsCharPtrAndSize)
%ensure_fragment(SWIG_FromCharPtrAndSize)
%types(char *);
%fragment("SWIG_pchar_descriptor","header") {
SWIGINTERN swig_type_info*
SWIG_pchar_descriptor()
{
static int init = 0;
static swig_type_info* info = 0;
if (!init) {
info = SWIG_TypeQuery("_p_char");
init = 1;
}
return info;
}
}
%include <typemaps/strings.swg>
%typemaps_string(char, Char, SWIG_AsCharPtrAndSize, SWIG_FromCharPtrAndSize, strlen,
"<limits.h>", CHAR_MIN, CHAR_MAX)

View file

@ -166,6 +166,7 @@ nocppval
* ----------------------------------------------------------------------------- */
#define %mangle(Type...) #@Type
#define %descriptor(Type...) SWIGTYPE_ ## #@Type
#define %string_name(Name) "SWIG_" %str(Name)
#define %symbol_name(Name, Type...) SWIG_ ## Name ## _ #@Type
#define %checkcode(Code) SWIG_TYPECHECK_ ## Code

View file

@ -1,6 +1,23 @@
%ensure_fragment(SWIG_AsWCharPtrAndSize)
%ensure_fragment(SWIG_FromWCharPtrAndSize)
%types(wchar_t *);
%fragment("SWIG_pwchar_descriptor","header") {
SWIGINTERN swig_type_info*
SWIG_pwchar_descriptor()
{
static int init = 0;
static swig_type_info* info = 0;
if (!init) {
info = SWIG_TypeQuery("_p_wchar_t");
init = 1;
}
return info;
}
}
%include <typemaps/strings.swg>
%typemaps_string(wchar_t, WChar, SWIG_AsWCharPtrAndSize, SWIG_FromWCharPtrAndSize, wcslen,
"<wchar.h>", WCHAR_MIN, WCHAR_MAX)