Preliminary implementation of the JNI invocation interface.

Change-Id: Ib144cb887864cd232a8cb8167b20d1540829a6a5
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 6ee3af3..78b6d33 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -20,14 +20,14 @@
 
 namespace art {
 
-ClassLinker* ClassLinker::Create(std::vector<DexFile*> boot_class_path) {
+ClassLinker* ClassLinker::Create(const std::vector<DexFile*>& boot_class_path) {
   scoped_ptr<ClassLinker> class_linker(new ClassLinker);
   class_linker->Init(boot_class_path);
   // TODO: check for failure during initialization
   return class_linker.release();
 }
 
-void ClassLinker::Init(std::vector<DexFile*> boot_class_path) {
+void ClassLinker::Init(const std::vector<DexFile*>& boot_class_path) {
 
   // Allocate and partially initialize the Class, Object, Field, Method classes.
   // Initialization will be completed when the definitions are loaded.
@@ -417,11 +417,13 @@
 }
 
 void ClassLinker::AppendToBootClassPath(DexFile* dex_file) {
+  CHECK(dex_file != NULL);
   boot_class_path_.push_back(dex_file);
   RegisterDexFile(dex_file);
 }
 
 void ClassLinker::RegisterDexFile(DexFile* dex_file) {
+  CHECK(dex_file != NULL);
   dex_files_.push_back(dex_file);
   DexCache* dex_cache = AllocDexCache();
   CHECK(dex_cache != NULL);