Skip to content

Commit e7c66c8

Browse files
authored
Merge pull request #473 from ttsugriy/develop
[bruteforce] Fix bruteforce removePoint.
2 parents 802a0ec + 70ce84e commit e7c66c8

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

hnswlib/bruteforce.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,16 @@ class BruteforceSearch : public AlgorithmInterface<dist_t> {
8484

8585

8686
void removePoint(labeltype cur_external) {
87-
size_t cur_c = dict_external_to_internal[cur_external];
87+
std::unique_lock<std::mutex> lock(index_lock);
8888

89-
dict_external_to_internal.erase(cur_external);
89+
auto found = dict_external_to_internal.find(cur_external);
90+
if (found == dict_external_to_internal.end()) {
91+
return;
92+
}
93+
94+
dict_external_to_internal.erase(found);
9095

96+
size_t cur_c = found->second;
9197
labeltype label = *((labeltype*)(data_ + size_per_element_ * (cur_element_count-1) + data_size_));
9298
dict_external_to_internal[label] = cur_c;
9399
memcpy(data_ + size_per_element_ * cur_c,

0 commit comments

Comments
 (0)