Removed golang stringing for signed/unsigned char
With this change, generated code for golang treats char* as a string but treats signed char* and unsigned char* as normal pointers. This seems to fit better with the expected behavior, as the latter are more often used as non-string data.
This commit is contained in:
parent
1851b2fadf
commit
a1e385694e
1 changed files with 9 additions and 25 deletions
|
|
@ -426,57 +426,41 @@
|
||||||
/* Strings. */
|
/* Strings. */
|
||||||
|
|
||||||
%typemap(gotype)
|
%typemap(gotype)
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[] "string"
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
"string"
|
|
||||||
|
|
||||||
/* Needed to avoid confusion with the way the go module handles
|
/* Needed to avoid confusion with the way the go module handles
|
||||||
references. */
|
references. */
|
||||||
%typemap(gotype) char&, unsigned char& "*byte"
|
%typemap(gotype) char& "*byte"
|
||||||
%typemap(gotype) signed char& "*int8"
|
|
||||||
|
|
||||||
%typemap(in)
|
%typemap(in)
|
||||||
char *, char[ANY], char[],
|
char *, char[ANY], char[]
|
||||||
signed char *, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char[ANY], unsigned char[]
|
|
||||||
%{ $1 = ($1_ltype)$input.p; %}
|
%{ $1 = ($1_ltype)$input.p; %}
|
||||||
|
|
||||||
%typemap(in) char *&, signed char *&, unsigned char *&
|
%typemap(in) char *&
|
||||||
%{ $1 = ($1_ltype)$input.p; %}
|
%{ $1 = ($1_ltype)$input.p; %}
|
||||||
|
|
||||||
%typemap(out,fragment="AllocateString")
|
%typemap(out,fragment="AllocateString")
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[]
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
%{ $result = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0); %}
|
%{ $result = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0); %}
|
||||||
|
|
||||||
%typemap(goout,fragment="CopyString")
|
%typemap(goout,fragment="CopyString")
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[]
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
%{ $result = swigCopyString($1) %}
|
%{ $result = swigCopyString($1) %}
|
||||||
|
|
||||||
%typemap(directorin,fragment="AllocateString")
|
%typemap(directorin,fragment="AllocateString")
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[]
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
%{
|
%{
|
||||||
$input = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0);
|
$input = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%typemap(godirectorin,fragment="CopyString")
|
%typemap(godirectorin,fragment="CopyString")
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[]
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
%{
|
%{
|
||||||
$result = swigCopyString($input)
|
$result = swigCopyString($input)
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%typemap(directorout)
|
%typemap(directorout)
|
||||||
char *, char *&, char[ANY], char[],
|
char *, char *&, char[ANY], char[]
|
||||||
signed char *, signed char *&, signed char[ANY], signed char[],
|
|
||||||
unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[]
|
|
||||||
%{ $result = ($1_ltype)$input.p; %}
|
%{ $result = ($1_ltype)$input.p; %}
|
||||||
|
|
||||||
/* String & length */
|
/* String & length */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue