summaryrefslogtreecommitdiff
path: root/compiler/image_writer.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2016-02-17 17:46:10 +0000
committer Vladimir Marko <vmarko@google.com> 2016-02-17 17:46:10 +0000
commit45724f9a0cc38dbb3071beb3eeab96499868b49c (patch)
treeecbe2d8109125de2031af7ac4e0f4fc03a3b6d12 /compiler/image_writer.cc
parent6065402316da2b51eed5fc34cffbd991766bd408 (diff)
Revert "Allow method references across oat files for multi-image."
Breaks Quick tests. This reverts commit 6065402316da2b51eed5fc34cffbd991766bd408. Change-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03
Diffstat (limited to 'compiler/image_writer.cc')
-rw-r--r--compiler/image_writer.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/compiler/image_writer.cc b/compiler/image_writer.cc
index 09046c7a3a..73574ba673 100644
--- a/compiler/image_writer.cc
+++ b/compiler/image_writer.cc
@@ -2274,18 +2274,25 @@ const ImageWriter::ImageInfo& ImageWriter::GetImageInfo(size_t index) const {
return GetConstImageInfo(oat_filenames_[index]);
}
-void ImageWriter::UpdateOatFile(size_t index, size_t oat_loaded_size) {
+void ImageWriter::UpdateOatFile(File* oat_file, const char* oat_filename) {
+ DCHECK(oat_file != nullptr);
if (compile_app_image_) {
CHECK_EQ(oat_filenames_.size(), 1u) << "App image should have no next image.";
return;
}
+ ImageInfo& cur_image_info = GetImageInfo(oat_filename);
// Update the oat_offset of the next image info.
- DCHECK_LT(index, oat_filenames_.size());
- if (index + 1u != oat_filenames_.size()) {
+ auto it = std::find(oat_filenames_.begin(), oat_filenames_.end(), oat_filename);
+ DCHECK(it != oat_filenames_.end());
+
+ it++;
+ if (it != oat_filenames_.end()) {
+ size_t oat_loaded_size = 0;
+ size_t oat_data_offset = 0;
+ ElfWriter::GetOatElfInformation(oat_file, &oat_loaded_size, &oat_data_offset);
// There is a following one.
- ImageInfo& cur_image_info = GetImageInfo(oat_filenames_[index]);
- ImageInfo& next_image_info = GetImageInfo(oat_filenames_[index + 1u]);
+ ImageInfo& next_image_info = GetImageInfo(*it);
next_image_info.oat_offset_ = cur_image_info.oat_offset_ + oat_loaded_size;
}
}