diff options
author | 2015-05-26 15:22:58 +0100 | |
---|---|---|
committer | 2015-05-26 15:22:58 +0100 | |
commit | 6530baf76ef7a62f2d76a6735ad461d7d59cf0e4 (patch) | |
tree | 663de5d35062e3e6d6c953a2b2da967b8464fb2c /compiler/optimizing/stack_map_stream.cc | |
parent | ce63cf656bb5b25051d580a58086f4bf15fb878b (diff) |
Move the catalog after the stack maps.
Fetching a stack map should be cheap, and therefore we should
not compute the size of the catalog.
Change-Id: Iff6accb7832bdfa6d209a0928d6088b8b57c1aa4
Diffstat (limited to 'compiler/optimizing/stack_map_stream.cc')
-rw-r--r-- | compiler/optimizing/stack_map_stream.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/optimizing/stack_map_stream.cc b/compiler/optimizing/stack_map_stream.cc index b446815770..5663e3973d 100644 --- a/compiler/optimizing/stack_map_stream.cc +++ b/compiler/optimizing/stack_map_stream.cc @@ -144,14 +144,17 @@ size_t StackMapStream::PrepareForFillIn() { // Note: use RoundUp to word-size here if you want CodeInfo objects to be word aligned. needed_size_ = CodeInfo::kFixedSize - + dex_register_location_catalog_size_ + stack_maps_size_ + + dex_register_location_catalog_size_ + dex_register_maps_size_ + inline_info_size_; - dex_register_location_catalog_start_ = CodeInfo::kFixedSize; - stack_maps_start_ = dex_register_location_catalog_start_ + dex_register_location_catalog_size_; - dex_register_maps_start_ = stack_maps_start_ + stack_maps_size_; + stack_maps_start_ = CodeInfo::kFixedSize; + // TODO: Move the catalog at the end. It is currently too expensive at runtime + // to compute its size (note that we do not encode that size in the CodeInfo). + dex_register_location_catalog_start_ = stack_maps_start_ + stack_maps_size_; + dex_register_maps_start_ = + dex_register_location_catalog_start_ + dex_register_location_catalog_size_; inline_infos_start_ = dex_register_maps_start_ + dex_register_maps_size_; return needed_size_; |