Tessil/hat-trie

hat-trie core

sylarj opened this issue · 2 comments

Hi Tessil, when I use hat-trie for prefix matching, there is a core happens:
#0 get (this=) at /usr/local/include/c++/6.3.0/bits/unique_ptr.h:308
308 { return std::get<0>(_M_t); }
(gdb) bt
#0 get (this=) at /usr/local/include/c++/6.3.0/bits/unique_ptr.h:308
#1 operator bool (this=) at /usr/local/include/c++/6.3.0/bits/unique_ptr.h:322
#2 operator!=<tsl::detail_htrie_hash::htrie_hash<char, long unsigned int, str_hash, short unsigned int>::anode, std::default_delete<tsl::detail_htrie_hash::htrie_hash<char, long unsigned int, str_hash, short unsigned int>::anode> > (__x=...) at /usr/local/include/c++/6.3.0/bits/unique_ptr.h:674
#3 first_child (this=0x0) at ./comsearch-search/websearch/svr/suggest_server/com-sugdirect/suggest/hat-trie/htrie_hash.h:338
#4 tsl::detail_htrie_hash::htrie_hash<char, unsigned long, str_hash, unsigned short>::htrie_hash_iterator<true, true>::operator++ (this=0x7f5a757f8480,
this@entry=<error reading variable: Cannot access memory at address 0x7f5a757f8338>)
at ./comsearch-search/websearch/svr/suggest_server/com-sugdirect/suggest/hat-trie/htrie_hash.h:664

I don't know how to fix it. looking forward to your reply

Hi,

Please avoid creating multiple issues for the same problem.

Do you eventually have a minimal example to reproduce the problem? Are you sure you are not incrementing a past the end iterator?

Thibaut

sorry, It's my fault, I do increment a past the end iterator. Thanks.