)]}'
{
  "log": [
    {
      "commit": "7a90959d4ef7a69f3bcb7b8763f646e12d9267d3",
      "tree": "1324ba0128921ad5d1b5f74244b471a4431c0040",
      "parents": [
        "913af1bd90a6e8fd56f1f851db1f098636dae6a5"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "message": "Make the RuntimeTest use Runtime instances instead of its constituents.\n\nChange-Id: I1005f279259917ff07d24e3bcd3643992ec8e3bd\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": "176f59cd8997a0491ea5ccdea8e9dfff85dd32d6",
      "tree": "94a57402ca10c334363fe78bb504c66d550dfa8d",
      "parents": [
        "b033c75ebda80ac75f936366fe78d1edf5cec937"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "message": "Fix build breakage.\n\nChange-Id: I7fe647db9e04653af204e41a10702b06626576bb\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": "1f359b08f5ad33ae72e4073b86a9257fe1ed11e5",
      "tree": "3f22a152793289174822b023ad279e125a307418",
      "parents": [
        "ffe6736397d17457188727510f0a2953f69a383a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "message": "Improve CHECK_\u003cop\u003e logging.\n\nThis patch lets us show the lhs and rhs when a relational check fails. (I show\nboth, even though that looks silly in cases like CHECK_EQ(rc, 0) where we\u0027ll\nsay \"rc\u003d-1, 0\u003d0\", because it\u0027s helpful in cases like CHECK_LT(i, size()) where\nwe want \"i\u003d4, size\u003d2\".)\n\nI had to add a few operator\u003c\u003cs for enums, and fix a bunch of signed/unsigned\nmismatches, and put the StringPiece operator\u003c\u003c in the right namespace.\n\nChange-Id: I390f38bd97b3f50e12182f36ff027ca067c48d69\n"
    },
    {
      "commit": "a5780dad67556297c8ca5f2608c53b193e6c4514",
      "tree": "9d582f869b8ac863249007ff6ff92055afbb685b",
      "parents": [
        "3acbfa4a3f8272d9a42bdd14e64dedb7db6a7ffe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "message": "Fix class_linker_test.\n\nClassLinker::FindClass now requires the calling thread to be attached. Also\nimprove the error reporting in Thread::Attach.\n\nChange-Id: I95bae22288902a8c19a99c14ad66f3dbcca4a0b6\n"
    },
    {
      "commit": "eb4f614f2eb53b92ebd416fa418f550861655887",
      "tree": "71e0df5217ab8b4e9fb71bb24abac41777ca1084",
      "parents": [
        "f10edcac1f8ab835d60fc8268f8c574005619998"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 15 17:43:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 10:44:51 2011 -0700"
      },
      "message": "Flesh out the logging implementation.\n\nAdd PLOG and ensure we have CHECK_STREQ and CHECK_STRNE to go with\nthe existing non-functional DCHECK_STREQ and DCHECK_STRNE.\n\nThis also gives us two different logging implementations, one for\nthe host that just uses std::cerr, and one for Android that uses\nthe Android log.\n\nAlso bring in the StringPrintf family.\n\nChange-Id: I8e190c2c58f26b22ee76a2a87d447df6eb0fa73b\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": "b557353b22c728eecbd1c68593b482622c7782a8",
      "tree": "ed2e35548c5b769803c33a901ff2634bdfa91162",
      "parents": [
        "528153d96162da53af031a9c4d52d82512aa2a3c"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 12 18:22:59 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 12 18:22:59 2011 -0700"
      },
      "message": "Add more functionality to the thread and mutex implementation.\n\nChange-Id: I33b2e53acb4c4c6653f13f1bbdd77cc7ce27e581\n"
    }
  ]
}
