summaryrefslogtreecommitdiffstats
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2014-05-13 14:47:05 -0700
committerKenny Root <kroot@google.com>2014-05-13 14:47:11 -0700
commitd5185344e19d9feb7ac268369e0af6a467d1cb48 (patch)
treebf5e7174ff631a86b5776ff6ddfa0dfa9de810fb /compiler/driver/compiler_driver.cc
parenta47dcbf4bc226b5bbf30618fc052e7c79672af7a (diff)
downloadart-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.cc10
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()));