mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 02:17:14 +00:00
aa60a2ea90
This moves the hash code into the header word for strings on 64 bit platforms. With the old layout, 9 character strings became 48-byte objects. With the new layout you have to go to 17 characters before you are bumped from 4 to 6 words (32 to 48 bytes). As a side effect, the class ID field is now 16 bits on all platforms instead of having two different sizes, and the size field is 8 bits on all platforms. This also paves the way for moving the hash code for instance objects into the header, so we won't need the side-lookup in the hash-table-of-hash-codes on 64 bit platforms. This is a reapplication of https://codereview.chromium.org/2893553002/ after issues were fixed in https://codereview.chromium.org/2888413002/ and https://codereview.chromium.org/2896583002/ R=vegorov@google.com BUG= Review-Url: https://codereview.chromium.org/2895183002 . |
||
---|---|---|
.. | ||
address_sanitizer.h | ||
allocation.h | ||
assert.cc | ||
assert.h | ||
c99_support_win.h | ||
floating_point.h | ||
floating_point_win.cc | ||
floating_point_win.h | ||
globals.h | ||
growable_array.h | ||
hashmap.cc | ||
hashmap.h | ||
inttypes_support_win.h | ||
math.h | ||
memory_sanitizer.h | ||
platform_headers.gypi | ||
platform_sources.gypi | ||
signal_blocker.h | ||
text_buffer.cc | ||
text_buffer.h | ||
utils.cc | ||
utils.h | ||
utils_android.h | ||
utils_fuchsia.h | ||
utils_linux.h | ||
utils_macos.h | ||
utils_win.h |