From c7eb9b0fa2a2e8437f47bd1b669613baac7a934b Mon Sep 17 00:00:00 2001 From: Accagain Date: Wed, 22 Apr 2020 10:00:46 +0800 Subject: [PATCH] add safty check 4 annoy load index (#2022) Signed-off-by: cms --- core/src/index/thirdparty/annoy/src/annoylib.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/index/thirdparty/annoy/src/annoylib.h b/core/src/index/thirdparty/annoy/src/annoylib.h index d51a56afe2..e0ed29fd46 100644 --- a/core/src/index/thirdparty/annoy/src/annoylib.h +++ b/core/src/index/thirdparty/annoy/src/annoylib.h @@ -835,9 +835,9 @@ class AnnoyIndexInterface { virtual bool load_index(void* index_data, const int64_t& index_size, char** error = NULL) = 0; virtual T get_distance(S i, S j) const = 0; virtual void get_nns_by_item(S item, size_t n, int search_k, vector* result, vector* distances, - faiss::ConcurrentBitsetPtr bitset = nullptr) const = 0; + faiss::ConcurrentBitsetPtr& bitset = nullptr) const = 0; virtual void get_nns_by_vector(const T* w, size_t n, int search_k, vector* result, vector* distances, - faiss::ConcurrentBitsetPtr bitset = nullptr) const = 0; + faiss::ConcurrentBitsetPtr& bitset = nullptr) const = 0; virtual S get_n_items() const = 0; virtual S get_dim() const = 0; virtual S get_n_trees() const = 0; @@ -1173,14 +1173,14 @@ public: } void get_nns_by_item(S item, size_t n, int search_k, vector* result, vector* distances, - faiss::ConcurrentBitsetPtr bitset) const { + faiss::ConcurrentBitsetPtr& bitset) const { // TODO: handle OOB const Node* m = _get(item); _get_all_nns(m->v, n, search_k, result, distances, bitset); } void get_nns_by_vector(const T* w, size_t n, int search_k, vector* result, vector* distances, - faiss::ConcurrentBitsetPtr bitset) const { + faiss::ConcurrentBitsetPtr& bitset) const { _get_all_nns(w, n, search_k, result, distances, bitset); } @@ -1328,7 +1328,7 @@ protected: } void _get_all_nns(const T* v, size_t n, int search_k, vector* result, vector* distances, - faiss::ConcurrentBitsetPtr bitset) const { + faiss::ConcurrentBitsetPtr& bitset) const { Node* v_node = (Node *)alloca(_s); D::template zero_value(v_node); memcpy(v_node->v, v, sizeof(T) * _f);