diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2015-02-09 07:55:19 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2015-02-11 23:34:16 +0000 |
commit | 2947b711d9a0c9d7e85d18c4c89c6bfc25df938f (patch) | |
tree | dd70b6f74681e65bf5618819665db733a5f868be /Lib/go/cdata.i | |
parent | 1ef899a57bf57c0d5c28d5cacf3bdc24be14877c (diff) | |
download | swig-2947b711d9a0c9d7e85d18c4c89c6bfc25df938f.tar.gz |
Warning fixes in Go cdata library
GCC warnings -Wpointer-to-int-cast and -Wdeclaration-after-statement
Diffstat (limited to 'Lib/go/cdata.i')
-rw-r--r-- | Lib/go/cdata.i | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Lib/go/cdata.i b/Lib/go/cdata.i index cd7b253b9..b4411af97 100644 --- a/Lib/go/cdata.i +++ b/Lib/go/cdata.i @@ -11,13 +11,19 @@ typedef struct SWIGCDATA { } SWIGCDATA; %} +%fragment("cdata", "header") %{ +struct swigcdata { + intgo size; + void *data; +}; +%} + %typemap(gotype) SWIGCDATA "[]byte" %typemap(imtype) SWIGCDATA "uint64" -%typemap(out) SWIGCDATA %{ - struct swigcdata { intgo size; void* data; } *swig_out; - swig_out = (struct swigcdata*)malloc(sizeof(*swig_out)); +%typemap(out, fragment="cdata") SWIGCDATA(struct swigcdata *swig_out) %{ + swig_out = (struct swigcdata *)malloc(sizeof(*swig_out)); if (swig_out) { swig_out->size = $1.len; swig_out->data = malloc(swig_out->size); @@ -25,7 +31,7 @@ typedef struct SWIGCDATA { memcpy(swig_out->data, $1.data, swig_out->size); } } - $result = (unsigned long long)swig_out; + $result = *(long long *)(void **)&swig_out; %} %typemap(goout) SWIGCDATA %{ |