)]}'
{
  "log": [
    {
      "commit": "a09576416788b916095739e43a16917e7948f3a4",
      "tree": "63c4c7b9726817a51a9dc514dc68fb16287748cd",
      "parents": [
        "410c0c876f326e14c176a39ba21fc4dd3f7db8ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 14:27:33 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 14:27:33 2011 -0700"
      },
      "message": "Add back the dalvik-style JNI logging and tracing.\n\nChange-Id: I3f8f50c9f9f2cb36f1668150c5e19f6225d15bbb\n"
    },
    {
      "commit": "34023801bd544e613d6e85c9a5b2e743f3710e8f",
      "tree": "cf42aadf76cd6c1104e75f20b223716ed44dbb16",
      "parents": [
        "881dd56c9b6ea2c922956650b763d36d2eeb799b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 12:06:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 12:06:17 2011 -0700"
      },
      "message": "Remove uses of scoped_ptr_malloc.\n\nChange-Id: I355fcfc93e8d689bea8b9388423ca12cb3e6566f\n"
    },
    {
      "commit": "82870720a9a2709fcde4a03d96be383cee4b25d3",
      "tree": "36aa7572ea4e4459577ebe50976fb504dc987238",
      "parents": [
        "ff0f9bea6355fe0c420815f9b894e6bb634fe764"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 29 19:04:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 29 19:04:51 2011 -0700"
      },
      "message": "Demangle C++ names in backtraces.\n\nChange-Id: Id4ccefc1e0cbed357b09b84ef6f51b287493e6fd\n"
    },
    {
      "commit": "ad107abee00fb523b9fda575a40395e9d6d9510d",
      "tree": "9db5ff4af4613224ed136bedce10b88538933bff",
      "parents": [
        "650a07d237f219ee6f23cfe939118e6f9c48f4d3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "message": "Remove author attributions.\n\nChange-Id: I58d2983ce41f6b3f3a4e1bbd1d075e794b8257e3\n"
    },
    {
      "commit": "2ed144c2b49ae1da6c464d7a1be0062870530802",
      "tree": "2cd7472e610494129bcfd0b65744b81030dd4f2f",
      "parents": [
        "27012039a909f8769e4a90200921db8f0fd0396e"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 16:52:08 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 26 16:52:08 2011 -0700"
      },
      "message": "Preliminary implementation of the JNI invocation interface.\n\nChange-Id: Ib144cb887864cd232a8cb8167b20d1540829a6a5\n"
    },
    {
      "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": "ffe6736397d17457188727510f0a2953f69a383a",
      "tree": "0d03bee69cf0cfecf76253fe3cb5f6898ae64faa",
      "parents": [
        "a5780dad67556297c8ca5f2608c53b193e6c4514"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 12:09:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 12:22:59 2011 -0700"
      },
      "message": "Implement Runtime::Abort and switch LOG(FATAL) over to it.\n\nRuntime::Abort takes arguments so it can provide less misleading log output,\nbut this shouldn\u0027t matter to callers because they should be using LOG(FATAL)\nanyway.\n\nThis patch also fixes an errno/errno_ mixup in the logging code.\n\nChange-Id: If24b66b7bbf0bf7c0ecb93dd806d82b1d21ee239\n"
    }
  ]
}
