summaryrefslogtreecommitdiff
path: root/Examples/test-suite/python_builtin.i
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2016-08-23 18:15:35 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2016-08-23 19:06:36 +0100
commit5b7c08c21449c407019f4484c91819a441e8bd9c (patch)
tree8d0da2e462920a194e09106b2b82656068e2a80e /Examples/test-suite/python_builtin.i
parent253a39fdffc9b3c270ba815d6e60f416a4ee46a7 (diff)
downloadswig-builtin-hashable.tar.gz
Make Python builtin types hashable by defaultbuiltin-hashable
Default hash is the underlying C/C++ pointer. This matches up with testing for equivalence (Py_EQ in SwigPyObject_richcompare) which compares the pointers.
Diffstat (limited to 'Examples/test-suite/python_builtin.i')
-rw-r--r--Examples/test-suite/python_builtin.i14
1 files changed, 11 insertions, 3 deletions
diff --git a/Examples/test-suite/python_builtin.i b/Examples/test-suite/python_builtin.i
index ac1ad9c2d..e2c453d54 100644
--- a/Examples/test-suite/python_builtin.i
+++ b/Examples/test-suite/python_builtin.i
@@ -10,6 +10,17 @@ bool is_python_builtin() { return false; }
#endif
%}
+// Test 0 for default tp_hash
+%inline %{
+struct ValueStruct {
+ int value;
+ ValueStruct(int value) : value(value) {}
+ static ValueStruct *inout(ValueStruct *v) {
+ return v;
+ }
+};
+%}
+
// Test 1 for tp_hash
#if defined(SWIGPYTHON_BUILTIN)
%feature("python:tp_hash") SimpleValue "SimpleValueHashFunction"
@@ -19,9 +30,6 @@ bool is_python_builtin() { return false; }
struct SimpleValue {
int value;
SimpleValue(int value) : value(value) {}
- static SimpleValue *inout(SimpleValue *sv) {
- return sv;
- }
};
%}