diff options
author | 2018-06-27 12:23:30 +0000 | |
---|---|---|
committer | 2018-06-27 12:23:30 +0000 | |
commit | 2dc252e37d4df0c4160cd20b6fc852f5f28b7b87 (patch) | |
tree | 5d3f59bb106801aac2076369aa4de2ebe072c501 /compiler/optimizing | |
parent | 4ced1a8537f887d9d878042d9ea2415b1b959512 (diff) | |
parent | a38e6cf2aaf4fd3d92b05c0a7a146fb5525ea72d (diff) |
Merge "Remove explicit size from CodeInfo."
Diffstat (limited to 'compiler/optimizing')
-rw-r--r-- | compiler/optimizing/stack_map_stream.cc | 14 |
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); } |