summaryrefslogtreecommitdiff
path: root/compiler/optimizing/stack_map_stream.cc
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2018-06-21 15:36:48 +0100
committer David Srbecky <dsrbecky@google.com> 2018-06-22 13:24:28 +0100
commit078d7ba2c20d7778f8988e89a70d47e07372cc5a (patch)
tree5f9340183de479241e8c043a0996aadc41583b5a /compiler/optimizing/stack_map_stream.cc
parent0b4e5a3a1275a4aa6955a0576ab9d57eedd5bdd2 (diff)
Implement BitMemory{Reader,Writer}
Two simple classes which replace the need to pass the (BitMemoryRegion, bit_offset) tuple everywhere. The slightly simplifies the code and it also makes it possible to optimize those classes in the future. Test: test-art-host-gtest-stack_map_test Test: test-art-host-gtest-bit_table_test Change-Id: I4806c805149a07e1a11b76405ca27960a0012c69
Diffstat (limited to 'compiler/optimizing/stack_map_stream.cc')
-rw-r--r--compiler/optimizing/stack_map_stream.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/compiler/optimizing/stack_map_stream.cc b/compiler/optimizing/stack_map_stream.cc
index e8b333047d..57f47af777 100644
--- a/compiler/optimizing/stack_map_stream.cc
+++ b/compiler/optimizing/stack_map_stream.cc
@@ -301,16 +301,16 @@ size_t StackMapStream::PrepareForFillIn() {
}
}
- size_t bit_offset = 0;
- stack_maps_.Encode(&out_, &bit_offset);
- register_masks_.Encode(&out_, &bit_offset);
- stack_masks_.Encode(&out_, &bit_offset);
- invoke_infos_.Encode(&out_, &bit_offset);
- inline_infos_.Encode(&out_, &bit_offset);
- dex_register_masks_.Encode(&out_, &bit_offset);
- dex_register_maps_.Encode(&out_, &bit_offset);
- dex_register_catalog_.Encode(&out_, &bit_offset);
- EncodeVarintBits(&out_, &bit_offset, num_dex_registers_);
+ BitMemoryWriter<ScopedArenaVector<uint8_t>> out(&out_);
+ stack_maps_.Encode(out);
+ register_masks_.Encode(out);
+ stack_masks_.Encode(out);
+ invoke_infos_.Encode(out);
+ inline_infos_.Encode(out);
+ dex_register_masks_.Encode(out);
+ dex_register_maps_.Encode(out);
+ dex_register_catalog_.Encode(out);
+ EncodeVarintBits(out, num_dex_registers_);
return UnsignedLeb128Size(out_.size()) + out_.size();
}