Working dex2oat and oatexec

adb shell dex2oatd --dex-file=/system/framework/core.jar     --image=/system/framework/boot.oat --base=0x50000000 "'--method=Ljava/lang/System;logI(Ljava/lang/String;)V'" "'--method=Ljava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V'"
adb shell dex2oatd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat
adb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld

09-05 17:58:18.912  2385  2385 I System  : Hello, world!

Change-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc
diff --git a/src/heap.h b/src/heap.h
index 30133b7..4922207 100644
--- a/src/heap.h
+++ b/src/heap.h
@@ -27,9 +27,12 @@
 
   typedef void (RootVisitor)(const Object* root, void* arg);
 
-  // Create a heap with the requested sizes. optional boot image may
+  // Create a heap with the requested sizes. The optional boot image may
   // be NULL, otherwise it is an image filename created by ImageWriter.
-  static bool Init(size_t starting_size, size_t maximum_size, const char* boot_image_file_name);
+  // image_file_names specifies application images to load.
+  static bool Init(size_t starting_size, size_t maximum_size,
+                   const char* boot_image_file_name,
+                   std::vector<const char*>& image_file_names);
 
   static void Destroy();
 
@@ -149,6 +152,7 @@
   static std::vector<Space*> spaces_;
 
   // Space loaded from an image
+  // TODO: remove after intern_addr is removed
   static Space* boot_space_;
 
   // default Space for allocations