From a1e385694e9a0aa543e9eeb362626a4f10708ff6 Mon Sep 17 00:00:00 2001 From: Rick Luddy Date: Tue, 25 Aug 2015 09:17:19 -0400 Subject: [PATCH] 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. --- Lib/go/go.swg | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/Lib/go/go.swg b/Lib/go/go.swg index 35f914c5bf7..54a6f08a2cd 100644 --- a/Lib/go/go.swg +++ b/Lib/go/go.swg @@ -426,57 +426,41 @@ /* Strings. */ %typemap(gotype) - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] -"string" + char *, char *&, char[ANY], char[] "string" /* Needed to avoid confusion with the way the go module handles references. */ -%typemap(gotype) char&, unsigned char& "*byte" -%typemap(gotype) signed char& "*int8" +%typemap(gotype) char& "*byte" %typemap(in) - char *, char[ANY], char[], - signed char *, signed char[ANY], signed char[], - unsigned char *, unsigned char[ANY], unsigned char[] + char *, char[ANY], char[] %{ $1 = ($1_ltype)$input.p; %} -%typemap(in) char *&, signed char *&, unsigned char *& +%typemap(in) char *& %{ $1 = ($1_ltype)$input.p; %} %typemap(out,fragment="AllocateString") - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] + char *, char *&, char[ANY], char[] %{ $result = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0); %} %typemap(goout,fragment="CopyString") - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] + char *, char *&, char[ANY], char[] %{ $result = swigCopyString($1) %} %typemap(directorin,fragment="AllocateString") - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] + char *, char *&, char[ANY], char[] %{ $input = Swig_AllocateString((char*)$1, $1 ? strlen((char*)$1) : 0); %} %typemap(godirectorin,fragment="CopyString") - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] + char *, char *&, char[ANY], char[] %{ $result = swigCopyString($input) %} %typemap(directorout) - char *, char *&, char[ANY], char[], - signed char *, signed char *&, signed char[ANY], signed char[], - unsigned char *, unsigned char *&, unsigned char[ANY], unsigned char[] + char *, char *&, char[ANY], char[] %{ $result = ($1_ltype)$input.p; %} /* String & length */