summaryrefslogtreecommitdiff
path: root/trunk/Examples/test-suite/memberin_extend.i
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/Examples/test-suite/memberin_extend.i')
-rw-r--r--trunk/Examples/test-suite/memberin_extend.i33
1 files changed, 33 insertions, 0 deletions
diff --git a/trunk/Examples/test-suite/memberin_extend.i b/trunk/Examples/test-suite/memberin_extend.i
new file mode 100644
index 000000000..c6eb10526
--- /dev/null
+++ b/trunk/Examples/test-suite/memberin_extend.i
@@ -0,0 +1,33 @@
+%module memberin_extend
+
+// Tests memberin typemap is not used for %extend.
+// The test extends the struct with a pseudo member variable
+
+%inline %{
+#include <string>
+struct ExtendMe {
+};
+%}
+
+%{
+#include <map>
+std::map<ExtendMe*, char *> ExtendMeStringMap;
+void ExtendMe_thing_set(ExtendMe *self, const char *val) {
+ char *old_val = ExtendMeStringMap[self];
+ delete [] old_val;
+ if (val) {
+ ExtendMeStringMap[self] = new char[strlen(val)+1];
+ strcpy(ExtendMeStringMap[self], val);
+ } else {
+ ExtendMeStringMap[self] = 0;
+ }
+}
+char * ExtendMe_thing_get(ExtendMe *self) {
+ return ExtendMeStringMap[self];
+}
+%}
+
+%extend ExtendMe {
+ char *thing;
+}
+