X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=360229%2Fxapian_wrap.i;fp=360229%2Fxapian_wrap.i;h=8f9f1ff3b3b6eb804d6f548f9ddbdacd498dfed1;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/360229/xapian_wrap.i b/360229/xapian_wrap.i new file mode 100644 index 0000000..8f9f1ff --- /dev/null +++ b/360229/xapian_wrap.i @@ -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; +}