https://bugs.gentoo.org/862195 https://cgit.freebsd.org/ports/tree/textproc/clucene/files/patch-src__core__CLucene__index__DocumentsWriter.cpp https://cgit.freebsd.org/ports/plain/textproc/clucene/files/patch-src__core__CLucene__util__VoidMap.h --- a/src/core/CLucene/index/DocumentsWriter.cpp +++ b/src/core/CLucene/index/DocumentsWriter.cpp @@ -125,7 +125,7 @@ if (this->postingsFreeListDW.values){ if (this->postingsFreeCountDW < this->postingsFreeListDW.length) { memset(this->postingsFreeListDW.values + this->postingsFreeCountDW - , NULL + , 0 , sizeof(Posting*)); } postingsFreeListDW.deleteUntilNULL(); --- a/src/core/CLucene/util/VoidMap.h +++ b/src/core/CLucene/util/VoidMap.h @@ -11,8 +11,13 @@ #include "CLucene/LuceneThreads.h" #if defined(_CL_HAVE_TR1_UNORDERED_MAP) && defined(_CL_HAVE_TR1_UNORDERED_SET) +#if defined(_LIBCPP_VERSION) + #include + #include +#else #include #include +#endif #elif defined(_CL_HAVE_HASH_MAP) && defined(_CL_HAVE_HASH_SET) //hashing is all or nothing! #include @@ -83,7 +88,7 @@ _vt get( _kt k) const { const_iterator itr = base::find(k); if ( itr==base::end() ) - return (_vt)NULL; + return static_cast<_vt>(0); else return itr->second; } @@ -316,6 +321,7 @@ if ( _this::dk || _this::dv ) _this::remove(k); + (*this)[k] = v;; } };