-
Frank Emrich authored
The comment at the beginning of ordered-hash-table.h desribing the layout of ordered hash tables seems to have become outdated. 1. There was a "kPrefixSize + " missing in the description of the left bound of the first non-fixed-sized part in normal and obsoleted tables. The following only affects obsoleted tables: 2. The bucket count doesn't reside at [kPrefixSize + 0], instead it is unchanged w.r.t normal tables, and resides at [kPrefixSize + 2] 3. The next newer table takes place of the element count, residing at [kPrefixSize + 0]. This can be seen by NextTableIndex() being defined as NumberOfElementsIndex() 4. The number of removed holes is never written anywhere when obsoleting a table. Instead, the number of deleted elements count is used for this. This can be see by DCHECK_EQ(table->NumberOfDeletedElements(), removed_holes_index); in method Rehash 5. kClearedTableSentinel is written to the number of deleted element slot when clearing a table, as seen by table->SetNumberOfDeletedElements(kClearedTableSentinel); in method Clear Bug: v8:7569, v8:11074 Change-Id: I0e6750fc57c90b6c09fc41f001cd555f7c455fd3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505763 Commit-Queue: Frank Emrich <emrich@google.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#70918}
4242b192