summaryrefslogtreecommitdiff
path: root/compiler/optimizing/stack_map_stream.cc
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2018-06-27 12:23:30 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-06-27 12:23:30 +0000
commit2dc252e37d4df0c4160cd20b6fc852f5f28b7b87 (patch)
tree5d3f59bb106801aac2076369aa4de2ebe072c501 /compiler/optimizing/stack_map_stream.cc
parent4ced1a8537f887d9d878042d9ea2415b1b959512 (diff)
parenta38e6cf2aaf4fd3d92b05c0a7a146fb5525ea72d (diff)
Merge "Remove explicit size from CodeInfo."
Diffstat (limited to 'compiler/optimizing/stack_map_stream.cc')
-rw-r--r--compiler/optimizing/stack_map_stream.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/compiler/optimizing/stack_map_stream.cc b/compiler/optimizing/stack_map_stream.cc
index cb988050ff..5d361953ba 100644
--- a/compiler/optimizing/stack_map_stream.cc
+++ b/compiler/optimizing/stack_map_stream.cc
@@ -339,22 +339,24 @@ size_t StackMapStream::PrepareForFillIn() {
dex_register_maps_.Encode(out);
dex_register_catalog_.Encode(out);
- return UnsignedLeb128Size(out_.size()) + out_.size();
+ return out_.size();
}
void StackMapStream::FillInCodeInfo(MemoryRegion region) {
DCHECK(in_stack_map_ == false) << "Mismatched Begin/End calls";
DCHECK(in_inline_info_ == false) << "Mismatched Begin/End calls";
DCHECK_NE(0u, out_.size()) << "PrepareForFillIn not called before FillIn";
- DCHECK_EQ(region.size(), UnsignedLeb128Size(out_.size()) + out_.size());
+ DCHECK_EQ(region.size(), out_.size());
- uint8_t* ptr = EncodeUnsignedLeb128(region.begin(), out_.size());
- region.CopyFromVector(ptr - region.begin(), out_);
+ region.CopyFromVector(0, out_);
+
+ // Verify that we can load the CodeInfo and check some essentials.
+ CodeInfo code_info(region);
+ CHECK_EQ(code_info.Size(), out_.size());
+ CHECK_EQ(code_info.GetNumberOfStackMaps(), stack_maps_.size());
// Verify all written data (usually only in debug builds).
if (kVerifyStackMaps) {
- CodeInfo code_info(region);
- CHECK_EQ(code_info.GetNumberOfStackMaps(), stack_maps_.size());
for (const auto& dcheck : dchecks_) {
dcheck(code_info);
}