)]}'
{
  "log": [
    {
      "commit": "6a5bd495ff2f614f1495f652c86f3902d3bde537",
      "tree": "421434975640d4ddc592ac3caba6198277f83369",
      "parents": [
        "e1fab56ffa50364fd08d4a935a2a3339f7faa509"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 14:33:57 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 15:30:08 2011 -0700"
      },
      "message": "Implement the DDMS heap walking (for native and managed heaps).\n\nThis gets you the DDMS histograms of what\u0027s on your heaps.\n\nChange-Id: I7133d044030b10a787277faf3a77e20c565e69c5\n"
    },
    {
      "commit": "c11607024d2e7a52ca690b8339306cab040e6653",
      "tree": "96ff9bd6a47dd71d18221a9037a6c1102ed64724",
      "parents": [
        "371814fd131d5b7b54a5839d292240f9c4ed4160"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 27 15:48:45 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 28 11:57:50 2011 -0700"
      },
      "message": "Added support for -XX:HeapGrowthLimit switch\n\nRuntime can now take in a growth limit for the heap, which can be\nsmaller than the maximum size of the heap, and will prevent the heap\nfrom growing beyond that size. The growth limit can also be cleared to\nincrease the size of the heap to the specified maximum size. This gives\napps some control of the size of the heap, but should be removed when we\nhave better ways to resize the heap.\n\nChange-Id: I338655bccd20bfd32e2318365f0f3283dbaaab1e\n"
    },
    {
      "commit": "7162ad937f5f6bec32bf78d4675ff65cd6d1a233",
      "tree": "78bd960316746977400a9fc1772fbedeb821faae",
      "parents": [
        "f7c3b6625d710a8700325eea447f65e9f963b7f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 14:08:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 14:08:42 2011 -0700"
      },
      "message": "Implement DDMS heap info (\"HPIF\") chunks.\n\nThis lets you see how many bytes/objects are in your managed heap.\n\nChange-Id: Ie925207e9c48989a24968633e60b99314d220865\n"
    },
    {
      "commit": "767a147529da3ee8240f3ce4cd3af22ae454be64",
      "tree": "69901f2bd7721bb48f1379734908708f2eca96c8",
      "parents": [
        "39723d3bdd9532af903efeac8908391bb94a12ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 18:49:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 10:58:05 2011 -0700"
      },
      "message": "Wire in the DDMS heap stuff.\n\n(It\u0027s still UNIMPLEMENTED at the bottom, though.)\n\nChange-Id: I0f4c1c90cafb48b045685ae67300170fd696f386\n"
    },
    {
      "commit": "b82b6878fb000d4731063b1bf15c39ff7c50b61f",
      "tree": "8764bcc9307fb2f57820b25b1d098e15166a24bc",
      "parents": [
        "bfe487be25652c5456236661b9d9c3579d2296c1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 17:18:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 21:43:27 2011 -0700"
      },
      "message": "Make sure threads allocating are in the kRunnable state\n\nChange-Id: I55a08fcd38b3388698ef571d2d4fa9553210e197\n"
    },
    {
      "commit": "f28bc5b6df6edb4b22aeca360ff102a95f3155e1",
      "tree": "45249fe10034ae05b945abb400822c91133436ca",
      "parents": [
        "03ddf6b9355b29b90c955359e104bd247640fd8b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 01:15:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 13:50:03 2011 -0700"
      },
      "message": "Callers of SuspendAll should be in the kRunnable state\n\nChange-Id: I37996164a5fd56251134683f717e6e00541cab22\n"
    },
    {
      "commit": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\n"
    },
    {
      "commit": "362f9bc807169bcfc8761dde067bbfb79b5ad0fd",
      "tree": "100689aa13a39913b43cb12780ba472897cd665a",
      "parents": [
        "fc86162ce2a3467acb690e18cc8bd9b3daafc606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 18:56:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:26:54 2011 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace warnings.\n\nChange-Id: I16b69d773e59b49e8e30227b5aa5cb1959a8930f\n"
    },
    {
      "commit": "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f",
      "tree": "1f61ecb377be4abcba4838651bc9d98b548a3f81",
      "parents": [
        "3535c22d05bb4600255db90b490e625eda874b53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:07:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:17:36 2011 -0700"
      },
      "message": "ClassLinker changes\n\n- Add ClassLinker::LockOwner for SignalCatcher\n- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available\n\nChange-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc\n"
    },
    {
      "commit": "accd83d1523545ac69bafd38e72a7d5cff8e2fac",
      "tree": "1bad139a9b741483e34adc23b249e9f7fd1b6913",
      "parents": [
        "6f7c958469d9b5a44ca2472058961a13d437b7bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:25:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:25:58 2011 -0700"
      },
      "message": "Fix a heap lock/thread list lock deadlock.\n\nWe had an uncaught OOME whose uncaught exception handler -- running\nwith the thread lock held -- was trying to cause a GC while some\nother thread had the heap lock and was waiting for the thread list\nlock.\n\nChange-Id: I22177129562268837127d9edcc63ef5e93054bdf\n"
    },
    {
      "commit": "fad714344ca81a21e775ef45ae09d9a035723caf",
      "tree": "0b700f9d533036362bfbca77b8911153a8406884",
      "parents": [
        "31edec5b9e506cb702818c074ffef4edcc142105"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 20:25:10 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 16 22:16:42 2011 -0700"
      },
      "message": "Assorted fixes\n\n- Match ClassLinker::oat_files_ against cached oat file locations\n- Have DexFile_isDexOptNeeded do checksum comparsion of oat to dex\n- Complete TODO in Heap::Lock to use TryLock before switching to kVmWait\n- Fix ThrowNew to use Throwable constructor without String when no msg is available\n\nChange-Id: Ie9d7bfef9e80b77e5f7625a4d7c9c4a23c7b30b5\n"
    },
    {
      "commit": "06b37d91bb3d543002b1aee9829691f5e8bebc7e",
      "tree": "15d08cf8993856596ca8567507a8e87d4569bd32",
      "parents": [
        "3b6baaa203fa63f1522b2172a1645f90412afdae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "message": "Always log the value when an alignment check fails.\n\nAnd move checking that the alignment is a power of two to compile-time.\n\nChange-Id: I551f364af05912958ed2d4d095b1ce35b6abaf6e\n"
    },
    {
      "commit": "307f75d6bcf7c32db7e1b43124dead628cc7ce96",
      "tree": "81fdf8690b0387e6535c85d11e24c2cc7b45cef3",
      "parents": [
        "caab8c4ef372db5c119bfac1911fa27b174a935c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:04:40 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:27:18 2011 -0700"
      },
      "message": "Add a C++ equivalent of Android\u0027s TimingLogger, and use it for the heap.\n\nThis also changes us over to one big stats update at the end of sweeping,\nlike Dalvik, rather than recording every single free individually.\n\nChange-Id: Ib8e2a83d41d36e35e154183a4e173e915af79ae9\n"
    },
    {
      "commit": "83df2ac4a051ee10eafde7587de2faf3f0150fad",
      "tree": "f9733df44993a8ea798b19a6845fd3744913552a",
      "parents": [
        "d958820ec84df7a698e7ba2b3ba5ab2d88f75e0a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 16:37:54 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 16:37:54 2011 -0700"
      },
      "message": "Basic GC logging (and class initialization timing).\n\nChange-Id: Ibb09e556fbd42b1bb8cbd72974e8ca226aa073a5\n"
    },
    {
      "commit": "2da50365eec2e77fca8925ba6b42edfecbdf6ad7",
      "tree": "e0f26ba77c3f44dd299b19d9eacbc64ea3847cc1",
      "parents": [
        "92827a5fc2598589b3717269cc09c33b8c53f30b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 16:57:08 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 17:09:45 2011 -0700"
      },
      "message": "Inherit java.lang.ref-ness from superclasses.\n\nOtherwise the GC doesn\u0027t know to treat you specially.\n\nAlso sweep system weaks. (Though sweeping the monitors is still unimplemented.)\n\nChange-Id: Ia89b58fd36dfd5c6c7dca70d432ddc838ca37ac5\n"
    },
    {
      "commit": "418dfe7849f45535b5388a91bd7a16cfc20a612b",
      "tree": "60af35d2d9352910c782d2ce90f63a4d89d4a516",
      "parents": [
        "1cb0a1dfc32531c79a968aeac26ccb5525862497"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 18:56:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 18:56:27 2011 -0700"
      },
      "message": "Enable AllocWithGrowth and OutOfMemoryError throwing.\n\nAlso fix a bug where we weren\u0027t correcting the pc for the first stack frame.\n\nChange-Id: Ic4196987eac85eff2f6d14171b19b4f5890b6c4d\n"
    },
    {
      "commit": "7f1caabe2936b5b6e34d5740607f5f5d63356fea",
      "tree": "c6676fd887d88565b2dac39d266ff8f3f81df5b2",
      "parents": [
        "efdbac54eef6209772dadf7d24c7b3d37dcc8713"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Oct 06 12:11:04 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Oct 06 16:47:17 2011 -0700"
      },
      "message": "Add an interface to Space, so Heap no longer needs to be friend of Space.\n\nAlso, fix and add comments with respect to utilization.\n\nChange-Id: Ia9d27cc16d2b85ac97a48fee80567829f41224f4\n"
    },
    {
      "commit": "ad25ac568407ceb14334e8551dd1c4dd0fd6993c",
      "tree": "f1e2edb4b87d0b5ce35f94069db2f6cdb77db210",
      "parents": [
        "8c2f6414e1cff9a024a14369352f7ce112528b9e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 04 19:13:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 05 22:40:00 2011 -0700"
      },
      "message": "Static and direct resolution stub.\n\nEnsure that invoke static and direct go through a stub that causes\nresolution and initialization.\n\nChange-Id: I872900560322817d8f4378b04ac410d9ea0b3b17\n"
    },
    {
      "commit": "8c2f6414e1cff9a024a14369352f7ce112528b9e",
      "tree": "f3d9a60e81d416f9e88971091ae163f228b36de5",
      "parents": [
        "fbfdce6952bee54a189af4b3984300301a5d62c1"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Oct 03 22:58:14 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Oct 05 18:42:36 2011 -0700"
      },
      "message": "Grow for improving target utilization. Applicable to the target side only.\n\nChange-Id: If57ff026b66953abdfb56263589bb1b2521552d6\n"
    },
    {
      "commit": "adb460d96702573de6e732ad58ca0380405cd928",
      "tree": "f70ad27d5fc007b70765a76644519234466dee61",
      "parents": [
        "68e76526e98432625464022cb26f66b9ef6f5af4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "message": "Implement finalization.\n\nAlso make System.gc no longer a no-op. This replaces some of the\nMemberOffsets exposed by Heap with intention-revealing functions\nthat we\u0027ll want to share between all the actual GC implementations,\nbut there\u0027s still more to be done.\n\nChange-Id: I57ba26c0416fbbfe20142b7b6e27108684add7f9\n"
    },
    {
      "commit": "58ae9416e197ae68ed12ed43d87407d4dfb15093",
      "tree": "9fa93ce844f931155bf4a1d060f091f3285fb205",
      "parents": [
        "4d0207c3ed28bbbb8c583a3c3a37f00d1cd4dedc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 00:56:06 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 10:39:42 2011 -0700"
      },
      "message": "Simplify command line arguments\n\nChange-Id: I9d6902b0c447fd8fbe5600fd36139791b2ceefb7\n"
    },
    {
      "commit": "e24fa61603a60ade3797e4a0c8b3fccb346cb048",
      "tree": "9ec5ed942eb9ece6d4d261ffd21956c94f9968fe",
      "parents": [
        "06cbeb990e94f9c4576601e27145fe132e34a686"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 29 00:53:55 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 03 10:28:05 2011 -0700"
      },
      "message": "Separate oat from image\n\nChange-Id: If2abdb99826ead14e3465d90ba2acffd89709389\n"
    },
    {
      "commit": "d6b1f6190c8ec42facb08aca34b093244774b318",
      "tree": "698b54670a3935e2d6065b79ab9300e9b2364c3d",
      "parents": [
        "f153fe1ff3c901a1c63b6ec5495c5046869a60e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 27 13:38:14 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 27 16:29:18 2011 -0700"
      },
      "message": "Support for stack scanning of roots.\n\nChange-Id: Icbb02959725735faaa230e0fd00e8039b2f9c1b2\n"
    },
    {
      "commit": "0a5b14de5115f51e0ed2dd6c3fcc5b84bbce690e",
      "tree": "76b5fd9a20b4bf2fa417e6fd88609461b1e826e4",
      "parents": [
        "5a7a74a042e73a355f5cedffa0d2faf5340028fa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 27 13:29:15 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 27 13:33:50 2011 -0700"
      },
      "message": "Add -verbose:startup\n\nChange-Id: I1ef70c2a9e559893541bbbf381b6893808602555\n"
    },
    {
      "commit": "395520eaa47eca25b92e86188accf3095d60af49",
      "tree": "23cff36a71ea43eeb6a4bb7a7544c45aa3534c85",
      "parents": [
        "14357e842b611279d467b64d450c569af33a6936"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 25 19:35:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 10:56:37 2011 -0700"
      },
      "message": "Assorted fixes for running frameworks apps\n\n- Adding Heap::target_utililization_\n- Convert ClassNotFoundError to ClassNotFoundException in Class.forName\n- Finish String::GetHashCode\n- Changed Runtime.gc to unimplemented\n- Disable preload simulation in oat_process\n- Empty native placeholder for org.apache.harmony.dalvik.ddmc.DdmServer\n- Bonus: Fix problem with reflective invocation of constructors and private methods\n\nChange-Id: If11b273e2f82e8e0fa7161a756098514e1156a19\n"
    },
    {
      "commit": "27ec961a1da540ba7f16c07a682585ab167317ad",
      "tree": "0aa6cb8345e394fe0ebe608bc26aa2acbdac1393",
      "parents": [
        "03fa263ba90e9f6b11231576c6b9cc434e67141d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 19 20:20:38 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 10:36:24 2011 -0700"
      },
      "message": "Adding oat_process\n\n- Added oat_process, a version of app_process use to launch frameworks apps\n- Added liboat_runtime, a version of libandroid_runtime that uses art instead of dvm\n  This is just a special makefile, frameworks/base/core/jni code is used for source\n- Added support for build a boot.oat with the full BOOTCLASSPATH\n  The older smaller boat.oat is now core.oat\n- Added mem_map code for making sure a requested memory region is available\n  Moved mem_map code to cc file to make easier to debug with smaller rebuild\n- Moved oat base address to 0x6000000 as a work around to host addres conflict\n- Added -Xms and -Xmx options to dex2oat to allow build specific memory options\n- Fixed miranda method initialization problem found compiling full bootclasspath\n- Made compiler.cc tolerant of verification errors found compiling full bootclasspath\n- Bumped arena block alloc warning to avoid noise when compiling full bootclasspath\n- Marked implicit GC unimplemented to fail fast\n- Added --output argument to oatdump\n- Made many object asserts tolerate access in IsErroneous state\n  now that verifier is failing validation of some classes during compilation\n- Made runtime tolerate unknown access as short term solution for oat_process\n- Workaround SSA issue to restore full bootclasspath compilation\n- Added test-art-target-processs to excercise oat_process with \"am\"\n  \"am\" found bug where class_linker was using Method::GetClass and not ::GetDeclaringClass\n\nChange-Id: I1a645a142b163e06bab9e72eb094ae1f1dbfbd97\n"
    },
    {
      "commit": "9d5ccec86d60c9ddd811836b9a2bc28d0b3d11fe",
      "tree": "3a65213e8238770bb62ec54c8d82d230be405621",
      "parents": [
        "9086572fa809d1a19d886b467e4da3ce42016982"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 13:19:50 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 19 15:06:39 2011 -0700"
      },
      "message": "Implement as much of VMDebug as we can reasonably do right now.\n\nNo hprof and no method tracing, but everything else.\n\nChange-Id: Ifccd1f08e31f34b947c30f1211db788aae674d81\n"
    },
    {
      "commit": "85d1545e985ac689db4bad7849880e843707c862",
      "tree": "dbda9214657085a3cbb77b323766da585e133a36",
      "parents": [
        "dcb3dd8bfd6e2d5935442fe8671a2f6326a1e4e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:33:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:38:56 2011 -0700"
      },
      "message": "Add packing to class Thread.\n\nOtherwise, code compiled on the host can use different offsets than\nwe need for the same structure on the target.\n\nAlso add commented-out code to start up the various GC daemon threads.\nMore Class native methods need to be implemented before that will work.\n\nChange-Id: I618b647b92378eec1b25cee469c8cfccf42f21fd\n"
    },
    {
      "commit": "78128a63b2615744760b7f8ab83df9764a5d4a95",
      "tree": "544b24f88e1f8d3df2ab28ec2973476ad1b85a97",
      "parents": [
        "d03935aea5192b32e3ca60a94db90b78c6702046"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 15 17:21:19 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 10:07:10 2011 -0700"
      },
      "message": "oatdump\n\nFROM MAKE:\nmm dump-boot-oat\n\nON HOST:\noatdump --dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/core.jar --image\u003d$ANDROID_PRODUCT_OUT/system/framework/boot.oat --strip-prefix\u003d$ANDROID_PRODUCT_OUT\noatdump --boot-dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/core.jar --boot\u003d$ANDROID_PRODUCT_OUT/system/framework/boot.oat --dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/art-test-dex-HelloWorld.jar --image\u003d$ANDROID_PRODUCT_OUT//system/framework/art-test-dex-HelloWorld.oat --strip-prefix\u003d$ANDROID_PRODUCT_OUT\n\nON TARGET:\nadb shell oatdump --dex-file\u003d/system/framework/core.jar --image\u003d/system/framework/boot.oat\nadb shell oatdumpd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\n\nChange-Id: Iad2ae40a9cf2dc28799ff5dc5222d50f1bc6b39f\n"
    },
    {
      "commit": "8d768a954b101a9532f980253ac46be2c53aba11",
      "tree": "ba6fa0be68a2289d5de3eb6c4de6fe93f6cd858a",
      "parents": [
        "43a364291dcdfe08e530e9568748359735dd7442"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "message": "Thread suspension.\n\nIncludes SuspendAll/ResumeAll, and uses them in Heap and SignalCatcher.\n\nChange-Id: Ie39b868ca5961f5016f367acade5071392bb723e\n"
    },
    {
      "commit": "3a4f8df8f75cbb9495b84a96c60e12fcce65ccf9",
      "tree": "2e8b9d3a2ddd6e987162c48f0b0fb50577d3e7fd",
      "parents": [
        "f0cde549bed96e16401a347a4511b59130c61e84"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 15:22:36 2011 -0700"
      },
      "message": "A few more trivial write barrier calls.\n\nChange-Id: I4b0f3c4347eed9a2e0a494ae1382065c026d5c40\n"
    },
    {
      "commit": "5ea047b386c5dac78eda62305d14dedf7b5611a8",
      "tree": "67f105b78df9d734a463b1194af11bf37ec6fe48",
      "parents": [
        "1d3f114124b140629a7d22fa5cfa20ab8fc96934"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 14:38:18 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 14:38:18 2011 -0700"
      },
      "message": "Support 64-bit volatiles and reference/pointer volatiles.\n\nChange-Id: I62c0751747767c02d6c57afd0fce3db6c8b02510\n"
    },
    {
      "commit": "93e74e8d879270071c3aa163f8495ada8d21f42f",
      "tree": "6efbb3203ab055168a613df128f7742edb3c0e29",
      "parents": [
        "c74255fffb035001304c9a058a2e730a5a1a9604"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 11:07:03 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 13 11:34:52 2011 -0700"
      },
      "message": "More of the thread infrastructure.\n\nWe can now run managed code on multiple threads.\n\nChange-Id: Ia4ce9c94602773db238c967c15194a6db780d12f\n"
    },
    {
      "commit": "8daa0929f08a3080ea64dbd4e997e72f411e6fc9",
      "tree": "cecee23131d5e0357c17c44bcccc7ddcfb31b925",
      "parents": [
        "4b620ffb1b4d0c96a94bb3afe314f35d53990ec6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 13:46:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 14:01:57 2011 -0700"
      },
      "message": "More threads work.\n\nAdds stubs (and sometimes implementations) for dalvik.system.VMStack and\njava.lang.Thread native methods. There was a bug in the dalvik\nthread priority setting code, where the current thread and the passed-in\nthread were confused.\n\nI\u0027ve also pulled Mutex and ThreadList out into their own files, and\nmoved some functionality around (with the aim of having more stuff\nprivate, especially locks).\n\nChange-Id: Ieb0f22669cac3df44ca34f7868f8e7d4dfa09ab6\n"
    },
    {
      "commit": "dbc0525b23653a425fcd7532d04eecc32d138b9d",
      "tree": "ea38ad6aecf8986c67e7d47cfa22d7dea3f079ec",
      "parents": [
        "630ddde46e52f5fbeba61227000152b0a99131a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 01:59:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 09 10:45:02 2011 -0700"
      },
      "message": "Make LinkFields ordering more stable for easier maintenance\n\nThis is prepatory for moving remaining malloc heap storage to the managed heap.\n\nAdded offset tests for static fields of class instances known to C++ for boot strapping.\nFound bug in MethodClass.\n\nChange-Id: I267bbbf9192d648668e8958e9eddc3eac54bb52e\n"
    },
    {
      "commit": "be759c63c6bb58b76ac71cad2c5a736bd31f374d",
      "tree": "60c5ab8fdb9d47bb0db5bda996aaac21caa4b1f3",
      "parents": [
        "92b3b5623ec8b65f3e099c076e247bb8273692f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 19:38:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 19:50:39 2011 -0700"
      },
      "message": "Add a heap HWM to the Thread*, for compiled code.\n\nAlso fix a bug in thread detach, and implement the thread exit callback.\n\nDestroy our pthread_mutex_t instances, and check for success. (This will\ncatch us deleting locked Mutex instances.)\n\nChange-Id: I26cf8117b825234f6c790e0cf70b2c025a743f84\n"
    },
    {
      "commit": "92b3b5623ec8b65f3e099c076e247bb8273692f8",
      "tree": "94f85f0a8d33884b41227a1a560a755deccfffa2",
      "parents": [
        "15041f433341f111665943ecfb9ca88c77d5c19a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 16:32:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 08 18:11:55 2011 -0700"
      },
      "message": "Add locking to the heap.\n\nNow tsan is happy with us too, at least on the host.\n\nChange-Id: Ib4657f56be2014de832dff8886b63843a40ea788\n"
    },
    {
      "commit": "69b15fb098162f19a4c20e6dccdcead04d9c77f0",
      "tree": "84fdfc26f560fb618b652a0aff98347f875a2653",
      "parents": [
        "109bd6a38d0cd7c4b7797a9f2db8324c797d1368"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 03 12:25:21 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 06 15:28:47 2011 -0700"
      },
      "message": "Working dex2oat and oatexec\n\nadb shell dex2oatd --dex-file\u003d/system/framework/core.jar     --image\u003d/system/framework/boot.oat --base\u003d0x50000000 \"\u0027--method\u003dLjava/lang/System;logI(Ljava/lang/String;)V\u0027\" \"\u0027--method\u003dLjava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V\u0027\"\nadb shell dex2oatd --boot-dex-file\u003d/system/framework/core.jar --boot\u003d/system/framework/boot.oat --dex-file\u003d/system/framework/art-test-dex-HelloWorld.jar --image\u003d/system/framework/art-test-dex-HelloWorld.oat\nadb 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\n\n09-05 17:58:18.912  2385  2385 I System  : Hello, world!\n\nChange-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc\n"
    },
    {
      "commit": "3e465b1a72d89f7c30f18efb90dc688d33d46c16",
      "tree": "2bac1709132fd261d54abdb3601f64065ea210b7",
      "parents": [
        "0db460b881a3fdaa63d581a1dc39e417d682faaa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 18:26:12 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 02 18:26:12 2011 -0700"
      },
      "message": "Get the test speed back to where it was.\n\n(This patch actually has an active ingredient, unlike my last screwup.)\n\nChange-Id: Ic9f48a1c7c62ea024c51dc57e245a7d4df068db0\n"
    },
    {
      "commit": "0cfe1fb7060576d047f7f894fc0d8b87de84fcab",
      "tree": "4255eae2034dcb0febe28411c50cba76189f39ae",
      "parents": [
        "a09576416788b916095739e43a16917e7948f3a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 26 03:29:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 02 14:48:01 2011 -0700"
      },
      "message": "Use accessor methods for Object fields.\n\nEnsure that Object fields are modified via accessors so that it\u0027s easy\nto insert barriers (make all fields within Objects private). Add validity\nchecks to Field and Method accessors to ensure they are accessed when a\nClass is in a suitable state. Add validity checks to all Object\naccessors to check heap isn\u0027t corrupted. Remove hacked in strings from Field\nand Method; make type fields used the dex cache that is lazily initialized.\nClean up various other TODOs and lint issues.\n\nChange-Id: Iac0afc515c01f5419874d9cdcdb9a7b45443e3fb\n"
    },
    {
      "commit": "cf4c6c41b0084dc4567ff709fb8ce9ebd72b26ac",
      "tree": "ca3d0314b5c4111d7ab6fd97b4e68d5b2679e237",
      "parents": [
        "2f0ce9d60a4a9371c63a32a3764320fb02341acb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:16:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:51:43 2011 -0700"
      },
      "message": "Fully implement string interning.\n\nAlso, more const.\n\nChange-Id: I09cae88d677e8e6e42d0fa9b5d1093c79d225e66\n"
    },
    {
      "commit": "bf86d0438e9ef9c145ebcf16a2e74c4efaa2686a",
      "tree": "e8641925dd68c6e03b41ceb3de58108436f988a0",
      "parents": [
        "ad7c2a3b4daa2abd707375444f4b0db7d69a3838"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 31 17:53:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 08:51:12 2011 -0700"
      },
      "message": "Start adding implementations for runtime-provided native methods.\n\nThe library can\u0027t do everything...\n\nChange-Id: Ib808c00570c7214aeb2ca058b1a66cacbeb372f1\n"
    },
    {
      "commit": "1f87008b165d26541d832ff805250afdc89c253d",
      "tree": "a84122b3757b8f856eb0656a951ed6621b6d01a8",
      "parents": [
        "c5bfa8f49d8548d7c685a99b411311ef56bedffa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 16:02:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 31 09:46:57 2011 -0700"
      },
      "message": "Add HeapTest and make GC work enough to pass it\n\nChange-Id: If06eaef2921b64b3226bfd347acaec60ec993e67\n"
    },
    {
      "commit": "90a3369d3b6238f1a4c9b19ca68978dab1c39bc4",
      "tree": "b66ec9b2cced5713bd5902c499d57b533d2e7a9a",
      "parents": [
        "34023801bd544e613d6e85c9a5b2e743f3710e8f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 30 13:27:45 2011 -0700"
      },
      "message": "Switch to UniquePtr.\n\nOnly one use of scoped_ptr was incorrect (but then again, I spent an afternoon\nwith valgrind finding and fixing them just last week).\n\nChange-Id: If5ec1c8aa0794a4f652bfd1c0fffccf95facdc40\n"
    },
    {
      "commit": "a2501990dd0f68baf38ce19251949d7bb3ecfe5a",
      "tree": "3f72ceee0297d213dac66a9ce2c72592906c1803",
      "parents": [
        "82870720a9a2709fcde4a03d96be383cee4b25d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 19:39:54 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 29 22:06:55 2011 -0700"
      },
      "message": "Add -Xcheck:jni.\n\nI think this is as complete as possible right now. The remaining\ntwo #if 0 sections require:\n\n1. a way to get the Method* of the current native method.\n2. a way to get the Class* of the type of a given Field*.\n\nChange-Id: I331586022095fb36ccc10c9ac1890a59a9224d01\n"
    },
    {
      "commit": "b63ec393a5c4ba2be1d34dd871cda811eaa803c7",
      "tree": "098aaab4ad09569ea18a452f13eba2cf6acff837",
      "parents": [
        "439c4fa0db980fb19e4a585723a64a3461e4c278"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Aug 27 17:38:27 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 28 12:00:56 2011 -0700"
      },
      "message": "Add compiler allocation paths Class::NewInstanceFromCode and Array::AllocFromCode\n\nChange-Id: I604377656f182f29692cda757dc7fdb4acc938b9\n"
    },
    {
      "commit": "408f79aeb676251ba35667a64e86c20638d7cb0b",
      "tree": "419c9dca6bc1fd5c13a997d4fad62f92960e5e45",
      "parents": [
        "72025e5f8f2743b4af33453df5b3bddada2078db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:22:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:56:54 2011 -0700"
      },
      "message": "Add validate object, clean up stack indirect reference table.\n\nChange-Id: Ifb329ae7d3bede3e95d48e6761cee1412a33d867\n"
    },
    {
      "commit": "4873d465a1eb6dfbdeddb085c81239d39db60c42",
      "tree": "8eb73bf441d631b34252d8e358eff66718b63aab",
      "parents": [
        "94496d37e42dbbbcf515f43ccb9a03ac82e48927"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 15:23:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 22 09:27:33 2011 -0700"
      },
      "message": "Move static field storage to end of Class instance\n\nChange-Id: I90061999c9eef9d900e4269508b983a61f48b264\n"
    },
    {
      "commit": "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae",
      "tree": "37078335c64cb760a0379a33eb4ceaf6b08356ea",
      "parents": [
        "68f4fa09cfd72b4292cbe7a213f03da7902ba775"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 23:33:41 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 12:30:48 2011 -0700"
      },
      "message": "Initialize ClassLinker from image\n\nChange-Id: Ibaf47b4181f7c6603a8b37e2eba8fa6509c927ed\n"
    },
    {
      "commit": "9cff8e13d41825c4f3f0127af061e94b06114fc8",
      "tree": "3425941132a8b1406126015cf9c45fd661b574a2",
      "parents": [
        "67bf885d62b1473c833bece1c9e0bb624e6ba391"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 16:47:29 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 22:01:22 2011 -0700"
      },
      "message": "Convert Class::descriptor_ from StringPiece to String (as part of image loading)\n\nChange-Id: Iab5ffa353661a7c06ee79af1f40d399a53777174\n"
    },
    {
      "commit": "4a289ed61242964b921434de7d375f46480472a1",
      "tree": "fa1a25f1eec3ef79fd9765e9c89ce21afbd8144c",
      "parents": [
        "44753c3908fcd5ccc066bf0dceddeabfeacf9f24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 17:17:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 12:25:10 2011 -0700"
      },
      "message": "Work on heap and space initialization to support image loading\n\nChange-Id: Icab25efa4dee17e4b6c6e97e38f63f5ab8a8a005\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": "53b61314370c49354ed6f8d616d6a9a182410fc1",
      "tree": "e744dfef8b45438bb992b08633439522095cd967",
      "parents": [
        "5511f2161d71ac67a9bc140cbbca5d9637ab7499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:34 2011 -0700"
      },
      "message": "Use the UNIMPLEMENTED macro everywhere.\n\nAs suggested in review.\n\nChange-Id: Ic14c91a622b545b4800ef021dfb501fb09cbda9d\n"
    },
    {
      "commit": "74eb46ab15c5b9cb39bf15246db84aea7fd4cc27",
      "tree": "50727b6606dcf881e0b9e734876815f28e9753c6",
      "parents": [
        "419ec7bbcdbf56a9d2a9fd7f91f9ace279e0b664"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 02 20:10:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 14:36:48 2011 -0700"
      },
      "message": "Improved ClassLoader support\n\nChange-Id: I587c0fa439c64a0c947641b01c072149f480bf85\n"
    },
    {
      "commit": "fc322c72d7a89a6f7a05c8bdc232d780aecd9232",
      "tree": "c27f4b609a09f0fa647bc7307af54f17604d9bd9",
      "parents": [
        "a40f9bc48afe3a9d38be2fa298fece13ed82ba28"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 00:20:01 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Jul 27 00:20:01 2011 -0700"
      },
      "message": "Initialize the bootstrap class path from standard sources.\n\nChange-Id: Ib49d21f98fd76504e5d3675fc731261426ca84ed\n"
    },
    {
      "commit": "a40f9bc48afe3a9d38be2fa298fece13ed82ba28",
      "tree": "ee1597be70dc8f064f9c7e86e1eb11670c894129",
      "parents": [
        "3aaddbb438daaaa37419d281d95fbe21e64982a6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 21:26:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 26 21:27:40 2011 -0700"
      },
      "message": "Add ObjectArray::CopyOf\n\nAs part of doing this, moved Heap::Alloc* helpers to the corresponding\nclasses in object.h to break heap.h\u003c-\u003eobject.h cycle due to use of\nHeap from ObjectArray::CopyOf (which is templatized and needs to be\ndefined in .h file).\n\nChange-Id: I1870af6e9dc6552820034ead5e20d13ae4da67da\n"
    },
    {
      "commit": "58551df3c2646ed507feec9e9eb3768085a76059",
      "tree": "892bc05ab5b2959c64e34cfe7cb541da0967f013",
      "parents": [
        "f615a61aef972cfc1dc23931ac2ed0da14c3fedb"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 03:09:51 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 03:09:51 2011 -0700"
      },
      "message": "Add a collection implementation.\n\nChange-Id: I47330dc14dd2ecee052b6a5165c6d48bd6c89dc4\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": "69759eaa6fd4386f1e6d8748052ad221087b3476",
      "tree": "9f37e49625a6e528405ed28ae8f5ac515ffedd67",
      "parents": [
        "dbd05642d4157b65d837da30c1d8df0ef577a378"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 21 18:13:35 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 21 18:13:35 2011 -0700"
      },
      "message": "Add allocation and garbage collection infrastructure.\n\nChange-Id: I4b04cdfdf18afb75a7b0df87b509e8156b4a932b\n"
    }
  ]
}
