diff options
author | Kenny Root <kroot@google.com> | 2014-05-13 14:47:05 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2014-05-13 14:47:11 -0700 |
commit | d5185344e19d9feb7ac268369e0af6a467d1cb48 (patch) | |
tree | bf5e7174ff631a86b5776ff6ddfa0dfa9de810fb /compiler/driver/compiler_driver.cc | |
parent | a47dcbf4bc226b5bbf30618fc052e7c79672af7a (diff) | |
download | art-d5185344e19d9feb7ac268369e0af6a467d1cb48.zip art-d5185344e19d9feb7ac268369e0af6a467d1cb48.tar.gz art-d5185344e19d9feb7ac268369e0af6a467d1cb48.tar.bz2 |
Changes for vogar compatibility
Make sure dex2oat can make an image with an empty list of image_classes.
Add in some checks to make sure that no bad arguments sneak into
CompilerDriver.
If we're not on the ART_TARGET, we should check for the "hostdex"
versions of the libraries to substitute in our libart version.
Change-Id: I5e8485c6089d25664492f0217b43ef64ca84c061
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r-- | compiler/driver/compiler_driver.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 6817f14..ff4806b 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -377,8 +377,10 @@ CompilerDriver::CompilerDriver(const CompilerOptions* compiler_options, compiler_->Init(); CHECK(!Runtime::Current()->IsStarted()); - if (!image_) { - CHECK(image_classes_.get() == NULL); + if (image_) { + CHECK(image_classes_.get() != nullptr); + } else { + CHECK(image_classes_.get() == nullptr); } // Are we generating CFI information? @@ -591,7 +593,7 @@ void CompilerDriver::Resolve(jobject class_loader, const std::vector<const DexFi ThreadPool* thread_pool, TimingLogger* timings) { for (size_t i = 0; i != dex_files.size(); ++i) { const DexFile* dex_file = dex_files[i]; - CHECK(dex_file != NULL); + CHECK(dex_file != nullptr); ResolveDexFile(class_loader, *dex_file, thread_pool, timings); } } @@ -689,6 +691,7 @@ static bool RecordImageClassesVisitor(mirror::Class* klass, void* arg) // Make a list of descriptors for classes to include in the image void CompilerDriver::LoadImageClasses(TimingLogger* timings) LOCKS_EXCLUDED(Locks::mutator_lock_) { + CHECK(timings != nullptr); if (!IsImage()) { return; } @@ -698,6 +701,7 @@ void CompilerDriver::LoadImageClasses(TimingLogger* timings) Thread* self = Thread::Current(); ScopedObjectAccess soa(self); ClassLinker* class_linker = Runtime::Current()->GetClassLinker(); + CHECK(image_classes_.get() != nullptr); for (auto it = image_classes_->begin(), end = image_classes_->end(); it != end;) { const std::string& descriptor(*it); SirtRef<mirror::Class> klass(self, class_linker->FindSystemClass(self, descriptor.c_str())); |