)]}'
{
  "log": [
    {
      "commit": "b062fdd4cb097fbae69b4bcb479c34d83ecab8ca",
      "tree": "215ea8fb42828a0f753ac5bd424ca098ce748342",
      "parents": [
        "ca314c6a1be1b4cc11f4d284da90af7dc8a4ce25"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 03 09:51:48 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 17:17:46 2012 -0700"
      },
      "message": "Each space has its own bitmap(s)\n\nEach alloc space now has One mark+live bitmap. Each image space has only one live bitmap.\n\nChange-Id: I2e919d1bd7d9f4d35d0e95ed83a58df6f754df6e\n"
    },
    {
      "commit": "26c5e1503425cae17f5b16fdf06a2d62ec03a59b",
      "tree": "91e3e62df1b13958b8b73a2ea871ccb877f8162a",
      "parents": [
        "5a8e3d5e87aed128837fb84874d18a1f68e63397"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "message": "Port \"Avoid method overriding if its super method is inaccessible\" to art.\n\nThis is an art equivalent of https://android-review.googlesource.com/#/c/32480/3.\n\nChange-Id: Ifc2cd21e7e92f596bced3eabae4d16f16f4095ef\n"
    },
    {
      "commit": "52673ffae0025d86f4023735581f19ebcc477487",
      "tree": "f684286493c5a71417b787717526a73de13ae9f0",
      "parents": [
        "9f509b90111ccc88dce25d587b2df4f87eb68013"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 27 23:25:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 28 00:05:10 2012 -0700"
      },
      "message": "Move IsDaemon to native code.\n\nHaving the daemon status in the managed heap means it is only readable\nby an attached thread in the runnable state. This is problematic when\nterminating the VM.\n\nAdd extra asserts that ScopedJniThreadState and Thread::SetState only\noccur on expected threads.\n\nRemember a cause for no thread suspension asserting.\n\nChange-Id: I8cf35c4c77751f8b1a35a5fb9a7f67682bf153bc\n"
    },
    {
      "commit": "afe25515c358617321d69ab4f25003e3d905d613",
      "tree": "c30ec73f0ae2f0b233f88b6eaf1c0b6bfd1df2dd",
      "parents": [
        "85545cd13c16c5074cca987f65247d7abddb39f7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:02:58 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:16:42 2012 -0700"
      },
      "message": "Update DexFile_isDexOptNeeded to handle system.img oat files with classes.dex\n\nChange-Id: I564bacec777b745a9c911a8fe8dd98437b1ddd2d\n"
    },
    {
      "commit": "08fc03ae5dded4adc9b45b7014a4b9dfedbe95a6",
      "tree": "3e767d037fd3e47e792b88d982ad38bce26d39e9",
      "parents": [
        "f94404ead1f2e4a1b5a2ff8bbdb65c5e4d4a77ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 26 17:34:00 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 27 12:18:25 2012 -0700"
      },
      "message": "Include held locks in SIGQUIT thread dumps.\n\nHandy if you have an ANR that\u0027s locking related. Quick tour:\n\n   at org.apache.harmony.dalvik.NativeTestTarget.emptyJniStaticSynchronizedMethod0(Native method)\n   - locked \u003c0x60135aa8\u003e (a java.lang.Class\u003corg.apache.harmony.dalvik.NativeTestTarget\u003e)\n   at java.lang.reflect.Method.invoke(Native method)\n   at C.whileTrue(Main.java:63)\n   at C.synchronizedOnClassString(Main.java:56)\n   - locked \u003c0x60002a70\u003e (a java.lang.Class\u003cjava.lang.String\u003e)\n   at C.nestedSynchronizationWithTryCatch(Main.java:44)\n   - locked \u003c0x61336b90\u003e (a java.lang.String)\n   - locked \u003c0x61336bd0\u003e (a java.lang.String)\n   at C.nestedSynchronization(Main.java:35)\n   - locked \u003c0x61336b18\u003e (a java.lang.String)\n   - locked \u003c0x61336b50\u003e (a java.lang.String)\n   at C.synchronizedOnClassC(Main.java:30)\n   - locked \u003c0x613366f8\u003e (a java.lang.Class\u003cC\u003e)\n   at C.noLocks(Main.java:27)\n   at C.\u003cclinit\u003e(Main.java:24)\n   - locked \u003c0x613366f8\u003e (a java.lang.Class\u003cC\u003e)\n   at Main.main(Main.java:19)\n\nA non-static synchronized native method works too:\n\n   at org.apache.harmony.dalvik.NativeTestTarget.emptyJniSynchronizedMethod0(Native method)\n   - locked \u003c0x613371a8\u003e (a org.apache.harmony.dalvik.NativeTestTarget)\n   ...\n\nNote that most stack traces don\u0027t look any different; the above is a\npathological example that exercises different kinds of locking. Testing\nwith system_server shows most threads don\u0027t hold any locks.\n\nFuture work (marked by TODO) is that explicit JNI MonitorEnter calls in\nnative code aren\u0027t shown.\n\nChange-Id: I2747f5cddb4ef64b1935736f084a68fe8e4005e9\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "57aba86f29d7e795bf7e68c65cc464d2291b6af1",
      "tree": "6d03848a0d66c686092d03c063298bac6cefa2f2",
      "parents": [
        "72e401c59bce47fdf0274a0d47f0340b05e4f27f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 14:00:47 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 14:00:47 2012 -0700"
      },
      "message": "Throw OOME if pthread_create(3) fails.\n\nThis is how dalvik behaved, though we offer useful detail messages.\n\nThis patch also fixes a bug where we weren\u0027t actually including detail\nmessages in OOMEs (not just the pre-allocated one).\n\nChange-Id: If6c8f47008a9bd058d9773f2f2e6e9a4f0d843e1\n"
    },
    {
      "commit": "7664f5cd118b355a5fe0c7536cb48ac991ed2b62",
      "tree": "0564c36316e2aa0a892ff9914258433f14641a07",
      "parents": [
        "9eb5f03e0dd90ac25e01fcf81f832c50a1f09d2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 08 18:15:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 11:17:13 2012 -0700"
      },
      "message": "Fix GC performance regression\n\nEnable CMS and fix performance regression due to recursive marking image spaces. Dependent on my java change list.\n\nChange-Id: I4765792aa8226e811ac158f04ab88217db755573\n"
    },
    {
      "commit": "622a6988351d77da0008142f4ce1ea447d838556",
      "tree": "4308a9a60d5844ec3106e4d92018eb873e492019",
      "parents": [
        "06db56c39997b1bb1e69a3c5f2ba960dcd13e11a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 17:58:54 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 17:58:54 2012 -0700"
      },
      "message": "Clean up the hprof implementation a bit.\n\nChange-Id: I9e6622cd5ec10fe8af6553f72095bf3dee00afdd\n"
    },
    {
      "commit": "9eebd3b36f1f04c430623d6a2cffff05d80513ba",
      "tree": "487a51f0f4e78c385e240ce7722d46d4ca220be9",
      "parents": [
        "a9719eb4167b544438268d46692389761652fc5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 13:56:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 14:10:51 2012 -0700"
      },
      "message": "Trim the native heap too, like dalvik did.\n\nChange-Id: I240f33937ffe7a3d3df2a66cf5b4ee5296bce16d\n"
    },
    {
      "commit": "cb8f890e0723c4c9379aaf5c58bc80096c043f21",
      "tree": "92912345419f68166f2cac81ceb5f16f63dade80",
      "parents": [
        "5ddbe0bd1d3091f7afca7ad7e8ce8494c0c79994"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 16:42:50 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 16:42:50 2012 -0700"
      },
      "message": "[DO NOT MERGE] Bring ics-mr1-plus-art\u0027s Zygote in line with dalvik-dev\u0027s.\n\nWe\u0027re missing some libcutils changes in ics-mr1-plus-art, so we need to\ndisable the set_sched_policy call, but other than the #if, we\u0027re now 100%\nin sync with dalvik-dev.\n\nChange-Id: Id45527d846d72c796ad8504fdd90ba8bf9570d4c\n"
    },
    {
      "commit": "28c7bfdb245c09dfb6d953c42c42ebc5bb178ea1",
      "tree": "c9fb61afdd73ded021cbc0b0d2b6d1001f8e2706",
      "parents": [
        "60234563a621362c6ffe753fe5368afcd6682bcb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:45:40 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:45:40 2012 -0700"
      },
      "message": "Lose the boolean from Runtime.nativeExit.\n\n(This is getting ics-mr1-plus-art back in sync with dalvik-dev.)\n\nChange-Id: Icdb30a02444fd75a709b385cacf2b86b4e18f71d\n"
    },
    {
      "commit": "eac766769e3114a078c188ea26776a81f0edb3cf",
      "tree": "4b9b8dfc89725173431817baba4455c013e40577",
      "parents": [
        "3f9ace8d90bfc48c8d7bf35af66de8ce8238de7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 12:04:43 2012 -0700"
      },
      "message": "DO NOT MERGE Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nConflicts:\n\n\tsrc/native/java_lang_Runtime.cc -- nativeExit lost an argument in dalvik-dev\n\n(cherry picked from commit 7756d5473fa27ce7e6ac7c31770eef7030431da4)\n\nChange-Id: I6184fc20c2a9ec16c4b053584a4d1c3b64452d0f\n"
    },
    {
      "commit": "aaa5edcf2deb1bddcbf5fb27820ad2240ac5b4f2",
      "tree": "c2d0f408237ad5a30bfd67819e5c9a72cc3ac45e",
      "parents": [
        "983f2e411aee6b1d09e6da30e059b782b2699909"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "message": "Improve reflection IllegalArgumentException detail messages.\n\nAlso add a missing InstanceOf check that was causing CheckJNI to kill us\nif someone tried to pass an inappropriate reference type through\nMethod.invoke. (Amusingly, CheckJNI produced pretty much the exact detail\nmessage that Method.invoke should have.)\n\nPlus a new test for this stuff.\n\nBug: 6504175\nChange-Id: Ice95eecbdba5a0927c6eaf68e56d6500dc52ad2e\n"
    },
    {
      "commit": "73e66f73f5093b64f2b023ebbb85916a13d5c937",
      "tree": "fca2dcdf446aec9aad2a3096098c038279279e53",
      "parents": [
        "145d491d1a30b291eb3ea608507a04451237f327"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "message": "Tidy up and finish reference table dumping.\n\nChange-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca\n"
    },
    {
      "commit": "7c6169de901fd0a39c8e0c078874dc25207f5b59",
      "tree": "dd7adafc6bcdb734c26a495e4bd923081ef637e7",
      "parents": [
        "736df0253aa65ebccb29ddb6443c31b7730ca3e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "message": "Port my AOSP QuasiAtomic rewrite to art.\n\nChange-Id: I9e8fe487b15083cfc441a90ec1ec0eb5e645229e\n"
    },
    {
      "commit": "b6636b8ef90221eaf7f4779eb2c2256f560d3e64",
      "tree": "fb028eb0cdaac32dc51dad167ecc7c8ea38c60bd",
      "parents": [
        "5b17d08be8f9508ead25891c4d3e707f9dddfbc5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:41:16 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:41:16 2012 -0700"
      },
      "message": "Add a reminder that we need to track a change in master.\n\nChange-Id: I99a98063871d99803ea95b121ddb286b5d05f048\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "fbe5b757cff040a455f93388d6eebdee0653a089",
      "tree": "1cc69bee1f70aa8adae7fb32add6c46f8a3a0ddb",
      "parents": [
        "da83d972b1aa90ada23b592bcea00603d1ee78b7"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:26:00 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:33:43 2012 -0700"
      },
      "message": "Fix LLVM build. Otherwise, function not used warning.\n\nNote that we use -Werror.\n\nChange-Id: I14c2d1d040d392cf5b2866298dc9c62a216f329b\n"
    },
    {
      "commit": "264675757a1d1ba43f53634d1301b7d6b79fe02c",
      "tree": "de8ebe45f28c4c287d3be5e8cca7fee2fe5c587a",
      "parents": [
        "69eafaae2c910ea6f704a3867f9b78647174a0df"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Apr 17 20:51:22 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 18 18:44:23 2012 -0700"
      },
      "message": "Don\u0027t use work_around_app_jni_bugs for llvm now.\n\nChange-Id: Id698e60c09dc863311445498d8813e38a48b8cc4\n"
    },
    {
      "commit": "0dae08ead9112adb81ad507b81187f00f77bc168",
      "tree": "5c09e5ab16fa544360e6354796f999cfeaf991e7",
      "parents": [
        "776ac1fa61237db645adb4370a4aab888530caf4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "message": "Move JNI methods out of top-level.\n\nChange-Id: Ia9c883ba9a13b205cda7b72024e2939f02583acb\n"
    }
  ]
}
