diff options
Diffstat (limited to 'runtime/image.cc')
| -rw-r--r-- | runtime/image.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/runtime/image.cc b/runtime/image.cc index ba1e58bb2c..2586959e55 100644 --- a/runtime/image.cc +++ b/runtime/image.cc @@ -24,7 +24,7 @@ namespace art { const uint8_t ImageHeader::kImageMagic[] = { 'a', 'r', 't', '\n' }; -const uint8_t ImageHeader::kImageVersion[] = { '0', '1', '8', '\0' }; +const uint8_t ImageHeader::kImageVersion[] = { '0', '1', '9', '\0' }; ImageHeader::ImageHeader(uint32_t image_begin, uint32_t image_size, @@ -153,19 +153,21 @@ void ImageSection::VisitPackedArtFields(ArtFieldVisitor* visitor, uint8_t* base) for (size_t i = 0; i < array->Length(); ++i) { visitor->Visit(&array->At(i, sizeof(ArtField))); } - pos += array->ComputeSize(array->Length(), sizeof(ArtField)); + pos += array->ComputeSize(array->Length()); } } void ImageSection::VisitPackedArtMethods(ArtMethodVisitor* visitor, uint8_t* base, - size_t method_size) const { + size_t pointer_size) const { + const size_t method_alignment = ArtMethod::Alignment(pointer_size); + const size_t method_size = ArtMethod::Size(pointer_size); for (size_t pos = 0; pos < Size(); ) { auto* array = reinterpret_cast<LengthPrefixedArray<ArtMethod>*>(base + Offset() + pos); for (size_t i = 0; i < array->Length(); ++i) { - visitor->Visit(&array->At(i, method_size)); + visitor->Visit(&array->At(i, method_size, method_alignment)); } - pos += array->ComputeSize(array->Length(), method_size); + pos += array->ComputeSize(array->Length(), method_size, method_alignment); } } |