)]}'
{
  "log": [
    {
      "commit": "578bbdc684db8ed68e9fedbc678669d27fa68b6e",
      "tree": "d752941d81ad6d7e248c349ce21371a8ae369693",
      "parents": [
        "45a76cb99104a222d6a9bd768a084893dcb7cf30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 21 14:07:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 15:23:33 2011 -0700"
      },
      "message": "Move DexFiles to be allocated on the heap\n\nRemoved pointer from DexFile to RawDexfile to allow heap allocation of\nDexFile. DexFile is now an ObjectArray of ObjectArrays. Removing the\npointer from DexFile to RawDexfile meant adding arguments to pass the\nRawDexfile along to ClassLinker::LoadClass, LoadInterfaces, LoadField,\nLoadMethod, LinkClass, LinkInterfaces, ResolveClass to avoid the need\nto look a RawDexfile up from a DexFile. ClassLinker::CreateArrayClass\nnow takes the raw_dex_file to assist in looking up the component class\nfrom the proper source. Moved Method::HasSame* methods to ClassLinker\nsince for access to the RawDexfile (and tests of HasSame from\nObjectTest to ClassLinkerTest.\n\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/object.h\n\nRunTime::Create/RunTime::Init/ClassLinker::Create/ClassLinker::Init\nnow take the boot class path. A boot class path with\nLjava/lang/Object; must be provided to initalize [Ljava/lang/Object;\nduring startup in order to heap allocate DexFiles.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\nRestored FindClass to load from a specific dex file. This is for use\nby class loaders, otherwise it is assumed the caller wants to use the\nboot classpath. We now distinguish and track the boot classpath as\nseparate from other dex files known to the class linker. Renamed\nAppendToClassPath to AppendToBootClassPath and FindInClassPath to\nFindInBootClassPath to clarify.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nCleaned up AllocCharArray to generic AllocArray and added\nAllocObjectArray. Added a functional ObjectArray implementation and a\nObjectTest to cover it.\n\n\tsrc/heap.h\n\tsrc/object.h\n\tsrc/object_test.cc\n\nSwitched more Object* downcasting to down_cast\n\n\tsrc/class_linker.cc\n\nSwitched order of arguments for DexFile::SetResolved to follow more\nconventional collection ordering ( \"(index, value)\" vs \"(value, index)\" )\n\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nAdded class_linker_ and java_lang_raw_dex_file_ to RuntimeTest as\nconvenience to test subclasses. ClassLinkerTest now can use these to\nsimplify its ::Assert* methods. JniCompilerTest now uses it for\nsetting up its boot class path. Removed now unneeded\nOpenDexFileBase64.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/jni_compiler_test.cc\n\nAdd external/gtest/include to non-test include path so FRIEND_TEST can be used.\nAdd src to include path to remove the need of using in in art/src files.\n\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tsrc/assembler.cc\n\tsrc/assembler.h\n\tsrc/assembler_arm.cc\n\tsrc/assembler_arm.h\n\tsrc/assembler_x86.cc\n\tsrc/assembler_x86.h\n\tsrc/assembler_x86_test.cc\n\tsrc/base64.cc\n\tsrc/base64.h\n\tsrc/calling_convention.cc\n\tsrc/calling_convention.h\n\tsrc/calling_convention_arm.cc\n\tsrc/calling_convention_x86.cc\n\tsrc/casts.h\n\tsrc/class_linker.h\n\tsrc/class_linker_test.cc\n\tsrc/common_test.h\n\tsrc/constants.h\n\tsrc/constants_arm.h\n\tsrc/constants_x86.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/dex_file_test.cc\n\tsrc/dex_instruction.cc\n\tsrc/dex_instruction.h\n\tsrc/dex_instruction_visitor.h\n\tsrc/dex_instruction_visitor_test.cc\n\tsrc/dex_verifier.cc\n\tsrc/dex_verifier.h\n\tsrc/heap.cc\n\tsrc/heap.h\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/jni_internal.cc\n\tsrc/jni_internal.h\n\tsrc/leb128.h\n\tsrc/managed_register.h\n\tsrc/managed_register_arm.cc\n\tsrc/managed_register_arm.h\n\tsrc/managed_register_arm_test.cc\n\tsrc/managed_register_x86.cc\n\tsrc/managed_register_x86.h\n\tsrc/managed_register_x86_test.cc\n\tsrc/mark_stack.cc\n\tsrc/mark_stack.h\n\tsrc/mark_sweep.cc\n\tsrc/mark_sweep.h\n\tsrc/memory_region.cc\n\tsrc/memory_region.h\n\tsrc/monitor.h\n\tsrc/object.cc\n\tsrc/object.h\n\tsrc/object_bitmap.cc\n\tsrc/object_bitmap.h\n\tsrc/object_test.cc\n\tsrc/offsets.cc\n\tsrc/offsets.h\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\tsrc/raw_dex_file_test.cc\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\tsrc/scoped_ptr.h\n\tsrc/space.cc\n\tsrc/space.h\n\tsrc/space_test.cc\n\tsrc/stringpiece.cc\n\tsrc/thread.cc\n\tsrc/thread.h\n\tsrc/thread_arm.cc\n\tsrc/thread_x86.cc\n\tsrc/utils.h\n\nChange-Id: Ib633cea878c36921e9037b0464cb903aec318c3e\n"
    },
    {
      "commit": "b033c75ebda80ac75f936366fe78d1edf5cec937",
      "tree": "7a457c99acf23b0cc9b86b2a6d8cc2593e85f127",
      "parents": [
        "cdc8de4642ca447a7ed205f0d2203cb217e48aad"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "message": "x86 JNI compiler and unit tests.\n\nChange-Id: I4c2e10328961a2e8e27c90777fe2a93737b21143\n"
    },
    {
      "commit": "cdc8de4642ca447a7ed205f0d2203cb217e48aad",
      "tree": "82b77592caaaefaf49dae5193294446cce68faf1",
      "parents": [
        "be9778540dfc70d154bb17f722c0b7fe454e2a8f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 14:23:17 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 16:09:47 2011 -0700"
      },
      "message": "Move base64 to test code\n\nChange-Id: I0cda5d8a559a2d60250c1d8a8ee6f69509515214\n"
    },
    {
      "commit": "a331b3cc392132c7333d36649a8310f38f4822cc",
      "tree": "aa8de770ebe8c6c73862fdbcd80a8ac80e1a8611",
      "parents": [
        "6cc18456b6d0d1348ad1d64116b7ab78108ff814"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 17:47:56 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 19 10:26:47 2011 -0700"
      },
      "message": "New ClassLinker::CreateArrayClass\n\n- Added ClassLinker::CreateArrayClass for use by ClassLinker::FindClass\n- Replaced hand crafted ClassLinker::char_array_class_ initialization with call to FindClass\n- Removed ClassLinker::LoadClass public interfaces, kept only one internally\n- Removed JType\n- Cleanedup gtest naming convention\n- Added RuntimeTest for common test initialization such as Thread::Init\n- Switched from assert to DCHECK which found some bit rotted code\n- Expanded class_linker_test to array classes and also also array rank\n  and interface count in existing cases\n\nChange-Id: Ie3d71c8b434c8521f4ea8d2f07b1c4c905ee1d90\n"
    },
    {
      "commit": "6cc18456b6d0d1348ad1d64116b7ab78108ff814",
      "tree": "a76b400be2463a07265468fe1edb83e2814574b2",
      "parents": [
        "a080803c2f0af91cc0de18919a762f4fcd5cce29"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 15:10:33 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 15:10:37 2011 -0700"
      },
      "message": "Simplify ClassLinker::LoadClass\n\nStarting out by removing the ClassLinker::LoadClass to not take a\nDexFile. Then started pulling threads so that ClassLinker::LoadClass\ncould take a StringPiece instead of const char*. Finally went through\nand removed all uses of StringPiece::data() to make sure things are\nclean.\n\nChange-Id: I47cfa0e8e0e35a31e0ebbd0f7d6a105be83ebe88\n"
    },
    {
      "commit": "a080803c2f0af91cc0de18919a762f4fcd5cce29",
      "tree": "9089f2704cf5eee7020142c87c35d960835a5c7e",
      "parents": [
        "a7f4f4888502aaa5c137cb17c9b482053285aebf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 00:39:23 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 18 12:11:08 2011 -0700"
      },
      "message": "Setting klass_ fields of heap allocated objects\n\nChange-Id: Ib1ab43254430497cce0660156394eebddd2cc445\n"
    },
    {
      "commit": "61e019d291583029c01b61b93bea750f2b663c37",
      "tree": "4f4dc6041fe9079fec440feefaebe7c035cae582",
      "parents": [
        "934486cf07c578b6494417ca5dcbae89cf04b019"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 14 16:53:09 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 14 23:06:37 2011 -0700"
      },
      "message": "Initialize runtime constituents on runtime construction.\n\nChange-Id: I63fff272b64bd29a7f828dac48aed91833af1eee\n"
    },
    {
      "commit": "934486cf07c578b6494417ca5dcbae89cf04b019",
      "tree": "fce6df4c3daca71151052961ad6191f0b5854ffc",
      "parents": [
        "b557353b22c728eecbd1c68593b482622c7782a8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 12 23:42:50 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 13 10:32:00 2011 -0700"
      },
      "message": "Make ClassLinker set Class::super_class_ plus test and build improvements\n\nCreate placeholder ClassLinker::java_lang_Object_ for use a\nsuper-class of java_lang_Class_ instances.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nExpand ClassLinker FindClass test to verify Class::GetSuperClass\n\n\tsrc/class_linker_test.cc\n\nMove DexFile::Load* methods to ClassLinker so they can reference\njava_lang_Object_ and java_lang_Class_\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\nMove corresponding Load tests from class_linker_test to dex_file_test\n\n\tsrc/class_linker_test.cc\n\tsrc/dex_file_test.cc\n\nTracking change to object_test to use ClassLinker::Load* methods\n\n\tsrc/object_test.cc\n\nMove base64 to new src/common_test.h for reuse accross tests. Add\nmissing example source for MyClass dex.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/dex_file_test.cc\n\tsrc/object_test.cc\n\nChange Heap::AllocClass to take DexFile argument\n\n\tsrc/heap.h\n\nRemove Method::dex_file_ in favor of using Method::GetClass::GetDexFile\n\n\tsrc/object.cc\n\tsrc/object.h\n\nMade a few more RawDexFile methods const\n\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\nAdd convenience targets for build-art and test-art-host\n\n\tAndroid.mk\n\nDrop use of _LOCAL_ from make variants, which isn\u0027t the appropriate\nhere, where we aren\u0027t differentiating between LOCAL_ and PRIVATE_.\nAvoid redefinition of variables based on now removed\nLIBART_TARGET_ARCH and TEST_TARGET_ARCH to support phony targets in\nAndroid.mk\n\n\tbuild/Android.aexec.host.mk\n\tbuild/Android.aexec.mk\n\tbuild/Android.common.mk\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tbuild/Android.test.host.mk\n\tbuild/Android.test.mk\n\nChange-Id: I84ce2b7a2b4e37799d4d782b97c02d5e97ac081c\n"
    },
    {
      "commit": "565f50731db360584d0080af7f14f0b7ca10371c",
      "tree": "24de84a0b0a0a8cc2cb75cd048232f29d4f2adbf",
      "parents": [
        "606258b5713ac3a0958db3b4b98074b6df6439a6"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 10 13:39:43 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 10 13:39:43 2011 -0700"
      },
      "message": "Initialize primitive type classes during linker initialization.\n\nChange-Id: Ib31da85afcc59c5d0a14346fb7f97043487fd662\n"
    },
    {
      "commit": "0e5d75d5ca2b8a44fab0c862276a466cbab39859",
      "tree": "1833a4b1ea85ea5fe76749ab7a83270c74230666",
      "parents": [
        "d4e48fdd5f8baad270a82120a912106b98074501"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 06 18:28:37 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 07 01:11:59 2011 -0700"
      },
      "message": "Add support for linking classes.\n\nChange-Id: I0026be6e4c919f7391fd83c654f58c3bc67f44e1\n"
    },
    {
      "commit": "894d0fab562badca5c2f01a5c2adc8de756c08ad",
      "tree": "5071322027c485c669df8f4ac49e3c3b3bed6761",
      "parents": [
        "ef442e6516a856fa0aed64d0a1af23d9ee8f857f"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 14:48:49 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jun 30 17:00:16 2011 -0700"
      },
      "message": "Expose functionality needed for linking.\n\nChange-Id: I5abdee1d89510b9e4c2eeb5cdab45951b5e5305c\n"
    }
  ]
}
