]> git.wh0rd.org - ICEs.git/blobdiff - 360229/xapian_wrap.i
more
[ICEs.git] / 360229 / xapian_wrap.i
diff --git a/360229/xapian_wrap.i b/360229/xapian_wrap.i
new file mode 100644 (file)
index 0000000..8f9f1ff
--- /dev/null
@@ -0,0 +1,34 @@
+namespace x {
+       namespace Internal {
+               template < class T > class RefCntPtr {
+                       public:
+                       T *operator->() const;
+                       T *get() const;
+               };
+               template < class T > inline T * RefCntPtr < T >::get() const {}
+       }
+
+       class iter {
+               public:
+               class Internal;
+               x::Internal::RefCntPtr < Internal > internal;
+       };
+       bool operator == (const x::iter &a, const x::iter &b) {
+               return a.internal.get() == b.internal.get();
+       }
+}
+
+bool equals(x::iter const *self, x::iter const &other)
+{
+       return *self == other;
+}
+
+bool f()
+{
+       x::iter * arg1, *arg2;
+       bool result;
+       try {
+               result = equals((x::iter const *)arg1, (x::iter const &)*arg2);
+       } catch (...) {}
+       return result;
+}