X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=360229%2Fxapian_wrap.i.2;fp=360229%2Fxapian_wrap.i.2;h=c2a73d8c6a7ffa66e3e4ce5477cbd11d1b31337a;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/360229/xapian_wrap.i.2 b/360229/xapian_wrap.i.2 new file mode 100644 index 0000000..c2a73d8 --- /dev/null +++ b/360229/xapian_wrap.i.2 @@ -0,0 +1,35 @@ +namespace Xapian { + 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; + Xapian::Internal::RefCntPtr < Internal > internal; + }; + + bool operator == (const Xapian::iter &a, const Xapian::iter &b) { + return (a.internal.get() == b.internal.get()); + }; +} + +bool equals(Xapian::iter const *self, + Xapian::iter const &other) +{ + return *self == other; +} + +bool f() { + Xapian::iter *arg1, *arg2; + bool result; + try { + result = equals((Xapian::iter const *)arg1, (Xapian::iter const &)*arg2); + } catch(...) {} + return result; +}