-
Colomban Wendling yazdı
Old implementation was not really fitting the updating needs and had a bug making symbols disappear if they haven't changed but their parent did (e.g. when a C++ constructor's signature changed). New implementation does: 1) walk old tree, updating or removing rows; 2) add remaining tags. It walks less than (new_tags + old_tags + new_tags) in the worst case, thanks to some hash table-based caching; and also gets rid of the "valid" column in the symbols tree, saving a few bytes in memory. Finally, there is a ~7% performance gain (from 21 to 18ms) upon common tree updates, sometimes more.
ef0b0599