aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2013-09-15 10:43:49 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2013-09-15 10:43:49 +0100
commit0431664b18f17774344c79962518acfa4c738746 (patch)
tree265057588bde9700ae93444e656b0338f325a091
parentf01b52c44cbab9205a4fd4c2bcac5ba2d12ef460 (diff)
downloadswig-0431664b18f17774344c79962518acfa4c738746.tar.gz
Guile OUTPUT typemap fix
Fixes 'attempt to free a non-heap object' in some OUTPUT typemaps.
-rw-r--r--CHANGES.current9
-rw-r--r--Examples/test-suite/typemap_qualifier_strip.i4
-rw-r--r--Lib/r/r.swg9
3 files changed, 21 insertions, 1 deletions
diff --git a/CHANGES.current b/CHANGES.current
index b2f007a92..7e756e912 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,15 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.11 (in progress)
============================
+2013-09-15: wsfulton
+ [R] Fix attempt to free a non-heap object in OUTPUT typemaps for:
+ unsigned short *OUTPUT
+ unsigned long *OUTPUT
+ signed long long *OUTPUT
+ char *OUTPUT
+ signed char*OUTPUT
+ unsigned char*OUTPUT
+
2013-09-12: wsfulton
[Lua] Pull Git patch #62.
1) Static members and static functions inside class can be accessed as
diff --git a/Examples/test-suite/typemap_qualifier_strip.i b/Examples/test-suite/typemap_qualifier_strip.i
index d91a7b109..9b9f24cd8 100644
--- a/Examples/test-suite/typemap_qualifier_strip.i
+++ b/Examples/test-suite/typemap_qualifier_strip.i
@@ -1,5 +1,9 @@
%module typemap_qualifier_strip
+%typemap(freearg) int *ptr ""
+%typemap(freearg) int *const ptrConst ""
+%typemap(freearg) int const* constPtr ""
+
%typemap(in) int *ptr {
int temp = 1234;
$1 = &temp;
diff --git a/Lib/r/r.swg b/Lib/r/r.swg
index be42ff3a1..126611d61 100644
--- a/Lib/r/r.swg
+++ b/Lib/r/r.swg
@@ -114,12 +114,19 @@ signed int *OUTPUT,
unsigned int *OUTPUT,
short *OUTPUT,
signed short *OUTPUT,
+unsigned short *OUTPUT,
long *OUTPUT,
signed long *OUTPUT,
+unsigned long *OUTPUT,
long long *OUTPUT,
+signed long long *OUTPUT,
unsigned long long *OUTPUT,
float *OUTPUT,
-double *OUTPUT {}
+double *OUTPUT,
+char *OUTPUT,
+signed char *OUTPUT,
+unsigned char *OUTPUT
+{}