)]}'
{
  "log": [
    {
      "commit": "0cbaff584244ee767027aff35cd3c625aaee2994",
      "tree": "6209981f3814b9d43f8152f261455eb3f1fab15d",
      "parents": [
        "f9a52cd81ad39aacd1a5c41478d5ee0cb6dff1bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 16 15:28:01 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 16 16:42:41 2013 -0800"
      },
      "message": "Implement ObjectReference.ReferringObjects.\n\nBug: 4159882\nChange-Id: Iac145715bec80b5900256d3f6bdb18e283eb9a12\n"
    },
    {
      "commit": "f9a52cd81ad39aacd1a5c41478d5ee0cb6dff1bf",
      "tree": "3c1c1c9e6f123762530402c49b76fd9edf8b8a79",
      "parents": [
        "79ec6cd9309e8f916a6d80957674c74e1104e7fc",
        "3b78c949ab839d21454bc6f18c7640d2ae8c22f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 15 18:05:11 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 18:05:11 2013 -0800"
      },
      "message": "Merge \"Implement ReferenceType.Instances.\" into dalvik-dev"
    },
    {
      "commit": "79ec6cd9309e8f916a6d80957674c74e1104e7fc",
      "tree": "09621d97c37af5f66c1d19cf484bb587b9d4fae0",
      "parents": [
        "ec0f83d95e2174c97e93279ffa71642be7e12b60",
        "a1ae861c673ab5160a2a7afee2ada806cb61966b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 15 17:57:45 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 17:57:45 2013 -0800"
      },
      "message": "Merge \"Change LLVM exception check to check all thread flags.\" into dalvik-dev"
    },
    {
      "commit": "3b78c949ab839d21454bc6f18c7640d2ae8c22f3",
      "tree": "0a12766007b742f208f2ec8617c8d2a6d6d955a9",
      "parents": [
        "ec0f83d95e2174c97e93279ffa71642be7e12b60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 15 17:35:41 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 15 17:35:41 2013 -0800"
      },
      "message": "Implement ReferenceType.Instances.\n\nChange-Id: I6a72fc4c748e7041fedcb615eca2b86b1f28bb63\n"
    },
    {
      "commit": "ec0f83d95e2174c97e93279ffa71642be7e12b60",
      "tree": "b8ac0c238f6dddff2e49fb2002834a369594abb1",
      "parents": [
        "4028312f6f4b49fd69992daf28cd37dd32e79a47"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 15 16:54:08 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 15 16:54:08 2013 -0800"
      },
      "message": "Implement JDWP VirtualMachine.InstanceCounts.\n\nChange-Id: I6df66787dee8af67f65460023bcf223eec1ec7da\n"
    },
    {
      "commit": "a1ae861c673ab5160a2a7afee2ada806cb61966b",
      "tree": "62fccc8eb1fd00aa1d815ac2aee8ab4e060de685",
      "parents": [
        "4028312f6f4b49fd69992daf28cd37dd32e79a47"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 15 16:09:56 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 15 16:09:56 2013 -0800"
      },
      "message": "Change LLVM exception check to check all thread flags.\n\nThe logic now first checks if flags is non-zero, then if an exception is\npending it handles that, otherwise it calls the suspend helper.\n\nChange-Id: I94a4869b30649b205a5a6142d998920f9f463182\n"
    },
    {
      "commit": "4028312f6f4b49fd69992daf28cd37dd32e79a47",
      "tree": "529d7bbcb15a6b2824413aa52ca1440a1d15c21a",
      "parents": [
        "2281a0ea6e3fbb7a26bd7ca030ee20296b8fed58"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 15 13:15:24 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 15 13:15:24 2013 -0800"
      },
      "message": "Prune dexlang from the llvm compiler.\n\nChange-Id: I176d5226f71e96368d5264d88d38c786ad416a97\n"
    },
    {
      "commit": "2281a0ea6e3fbb7a26bd7ca030ee20296b8fed58",
      "tree": "04487ed7195eac45eb37629ab344d620e555dd33",
      "parents": [
        "f58dffd4bf36b7644e0cec566ab564112f9ee29d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jan 14 11:04:25 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Jan 14 11:18:37 2013 -0800"
      },
      "message": "Change LLVM check for pending exception to use thread flags.\n\nThis is the first step towards having a single check for\nsuspension/exceptions.\n\nChange-Id: I4008f43d6ba1ee2441f2656fc3ae8bc4fcb7da23\n"
    },
    {
      "commit": "f58dffd4bf36b7644e0cec566ab564112f9ee29d",
      "tree": "1a88a708a0c03b2a8363d1283269605ee01829c4",
      "parents": [
        "734b8c62cc637c25f4c2481ca6a48adbd7209c6c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jan 13 09:25:49 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jan 13 09:25:49 2013 -0800"
      },
      "message": "Proxy tidy up and extra asserts.\n\nEnsure we don\u0027t suspend when placing object args into IRT.\nEnsure stack is sane.\n\nChange-Id: I20a8c97002b74878831580da1dd03458363ece82\n"
    },
    {
      "commit": "734b8c62cc637c25f4c2481ca6a48adbd7209c6c",
      "tree": "1e3176c62b1155f58b157dd965d8b64e26ccaaf2",
      "parents": [
        "d2ece2e84931dbfaddb1f77c9dba4bd1a8762b5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 11 15:32:45 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 11 15:32:45 2013 -0800"
      },
      "message": "Implement ThreadReference.OwnedMonitorsStackDepthInfo.\n\nChange-Id: I5e1ac7b2aeef7b1eac9518eba14a8f6555acd712\n"
    },
    {
      "commit": "d2ece2e84931dbfaddb1f77c9dba4bd1a8762b5f",
      "tree": "59d5e2dd81def7a1dfa8cc32dc9fa3104a251a6b",
      "parents": [
        "6d003529ed3badd0f743e80f583f37995f6bf569",
        "f9501700f51586cb6ba7cc0ffcb5a920bd64adf1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 11 11:43:11 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 11 11:43:11 2013 -0800"
      },
      "message": "Merge \"Implement ThreadReference.CurrentContendedMonitor and ThreadReference.Interrupt.\" into dalvik-dev"
    },
    {
      "commit": "f9501700f51586cb6ba7cc0ffcb5a920bd64adf1",
      "tree": "e619fc67e4197452b45e5382af4247629da5387c",
      "parents": [
        "67efe8cb257d3f687fe46b68f4fc8aca352b2f0a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 11 11:22:27 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 11 11:40:18 2013 -0800"
      },
      "message": "Implement ThreadReference.CurrentContendedMonitor and ThreadReference.Interrupt.\n\nThe JDWP test for CurrentContendedMonitor also uses Interrupt.\n\nChange-Id: Id1f6add29b578a0494da672d21dd54f23e866475\n"
    },
    {
      "commit": "13c36a749a8e5e1c279a807248880e1ff40da446",
      "tree": "f306c0ab88253c82e973e9c9a48fec76508cb4e2",
      "parents": [
        "67efe8cb257d3f687fe46b68f4fc8aca352b2f0a",
        "7e4fcb813d6c2657a5b9190a7c10168a2680bc45"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 18:18:33 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 18:18:33 2013 -0800"
      },
      "message": "Merge \"Instrumentation support for x86.\" into dalvik-dev"
    },
    {
      "commit": "7e4fcb813d6c2657a5b9190a7c10168a2680bc45",
      "tree": "fc3ccf9d82a8ca1a556c6a4121a6f0684c2a0469",
      "parents": [
        "0ab2080369f080c9fd7bd975bbece6d0b82e3b6b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 18:11:08 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 18:11:08 2013 -0800"
      },
      "message": "Instrumentation support for x86.\n\nChange-Id: I8f960973d7459491ccd4b44d5bd66407a2ab816e\n"
    },
    {
      "commit": "67efe8cb257d3f687fe46b68f4fc8aca352b2f0a",
      "tree": "6a6923d2d4390deeba97a4c63c7196d12327b949",
      "parents": [
        "0ab2080369f080c9fd7bd975bbece6d0b82e3b6b",
        "4993bbc8eda377804e585efd918f8ab9d9eab7d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 16:06:15 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 16:06:16 2013 -0800"
      },
      "message": "Merge \"Implement ThreadReference.OwnedMonitors.\" into dalvik-dev"
    },
    {
      "commit": "4993bbc8eda377804e585efd918f8ab9d9eab7d4",
      "tree": "bc49a14ce0c2718155444ac67152382e8c313326",
      "parents": [
        "16848f6c5c4d8394d491e887d7d805beddf173ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 15:41:25 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 16:05:44 2013 -0800"
      },
      "message": "Implement ThreadReference.OwnedMonitors.\n\nFix the method verifier so it can cope with not being able to resolve\ntypes in the application class loader, so we can find monitors held in\napplication code (this will improve SIGQUIT too).\n\nAlso remove the sort|uniq of dex pcs by just recording the last work\nline we see.\n\nChange-Id: I86ff27b42800a858489d112931c9aed2fb85ebdc\n"
    },
    {
      "commit": "0ab2080369f080c9fd7bd975bbece6d0b82e3b6b",
      "tree": "410b6685e93191ba58fc8ef2e8145b56e403e352",
      "parents": [
        "e6270cce5338ff544b0fcddea234fe62678a9503",
        "12051ea86ec27703b07b3d5c2cd4604b20f71810"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 13:16:50 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 13:16:50 2013 -0800"
      },
      "message": "Merge \"Added MIPS instrumentation support.\" into dalvik-dev"
    },
    {
      "commit": "e6270cce5338ff544b0fcddea234fe62678a9503",
      "tree": "69d8587e98e6db94bedabe4a76aba68d8a3ae48e",
      "parents": [
        "16848f6c5c4d8394d491e887d7d805beddf173ad",
        "10c5b78436bf9e603d817b40d1b98961919362b1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 10 12:03:38 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 12:03:39 2013 -0800"
      },
      "message": "Merge \"Fixes for gtests on gPrecise.\" into dalvik-dev"
    },
    {
      "commit": "10c5b78436bf9e603d817b40d1b98961919362b1",
      "tree": "bd683a021c799046d6a470298df6f3d79a39822b",
      "parents": [
        "9e0c175a0cea5c8c88a6927e6375554118f74a82"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 10 10:40:53 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 10 12:02:02 2013 -0800"
      },
      "message": "Fixes for gtests on gPrecise.\n\nAlso make a similar reservation in heap.cc use PROT_NONE rather than\nPROT_READ which should be more efficient.\n\nChange-Id: I648ef5b1bf2906094e92253b30d0a5a7554d1af6\n"
    },
    {
      "commit": "12051ea86ec27703b07b3d5c2cd4604b20f71810",
      "tree": "6e3b17648656e8b13ee65dfcd8b04c7b7f0523f4",
      "parents": [
        "16848f6c5c4d8394d491e887d7d805beddf173ad"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 11:24:31 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 10 12:01:07 2013 -0800"
      },
      "message": "Added MIPS instrumentation support.\n\nTraceview works on MIPS, but deoptimization is untested.\n\nChange-Id: I8b8afc8003f02965be8b3e0beca57416142c5725\n"
    },
    {
      "commit": "16848f6c5c4d8394d491e887d7d805beddf173ad",
      "tree": "15263d5d6309ce059f0c6bfeee6b2cf992208678",
      "parents": [
        "f327e07b37e349b1ec5eaad6dc294a9b7a081d20"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 07:49:35 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 07:49:35 2013 -0800"
      },
      "message": "Remove unnecessary logging.\n\nWe don\u0027t normally log when returning this status, and the log message is\nidentical to the one in Thread::SuspendForDebugger.\n\nBug: 7537655\nChange-Id: I57dc64eb448f0ec9fe528d1ad6f1d53dc52ec9c4\n"
    },
    {
      "commit": "f327e07b37e349b1ec5eaad6dc294a9b7a081d20",
      "tree": "2c64b1f6212045a529c18d1dbe04b3da8fd1d6e9",
      "parents": [
        "9e0c175a0cea5c8c88a6927e6375554118f74a82"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 16:01:26 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 18:07:12 2013 -0800"
      },
      "message": "Implement ObjectReference.MonitorInfo.\n\nChange-Id: Iefc276939b9e569f4ea4d7a5af9a28276a3fb632\n"
    },
    {
      "commit": "9e0c175a0cea5c8c88a6927e6375554118f74a82",
      "tree": "8ebbbb647959bf84663a5fdcab074d1d057b89f4",
      "parents": [
        "c5dc2ff2d1beb3ff84f93d2c7ebe07c46b76956a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 14:02:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 14:02:58 2013 -0800"
      },
      "message": "Rationalize the remaining suspension checks in debugger.cc.\n\nChange-Id: I0ebd13cef6cc32f9629f24a1e6c2447c3ee87457\n"
    },
    {
      "commit": "c5dc2ff2d1beb3ff84f93d2c7ebe07c46b76956a",
      "tree": "fa26fad2e5cf942fee87350c11766dc30c771855",
      "parents": [
        "df42c4815c30b9df15aacb88070c1e94f41d0226"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 13:44:30 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 13:44:30 2013 -0800"
      },
      "message": "Remove references to the now-useless ThreadLock class.\n\nChange-Id: Ic644ff8a5d1fa8fc209aba1441a265ecac2778be\n"
    },
    {
      "commit": "df42c4815c30b9df15aacb88070c1e94f41d0226",
      "tree": "68c88f8bb6ccb4a543877d8e04515fe88c595c00",
      "parents": [
        "a9137c6bbdf4a1883f7b3f836c269eeb2ff619b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 12:49:02 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 12:49:02 2013 -0800"
      },
      "message": "Fix the recent Object.wait change.\n\nObject.wait(0, 0) \u003d\u003d Object.wait(0) \u003d\u003d Object.wait(), which was broken\nby the previous change to this code.\n\nChange-Id: Ib11315a35f3f1d56303022e8df19cdb90775f9eb\n"
    },
    {
      "commit": "a9137c6bbdf4a1883f7b3f836c269eeb2ff619b2",
      "tree": "307d0c407de8fe5ab4df047aeeb829d031331f74",
      "parents": [
        "f15f4a0136a7b797117355768851bc421b3afc93"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 10:55:21 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 10:55:21 2013 -0800"
      },
      "message": "Remove jni_internal_test flakiness.\n\nChange-Id: I17dabe0c93ad57ca106350dcf724767b85dbedb7\n"
    },
    {
      "commit": "f15f4a0136a7b797117355768851bc421b3afc93",
      "tree": "160e0a242b91520ddd005af35680a40fab400449",
      "parents": [
        "88d630950cb5c6a1cb6457ce03a17c074ae13628"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 10:09:38 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 10:28:56 2013 -0800"
      },
      "message": "Remove Dbg::IsSuspended, which was checking the wrong thing.\n\nIt was also unnecessarily racy.\n\nChange-Id: I9d59ac81ffb5b178ca9d2a00d895a272321adec9\n"
    },
    {
      "commit": "88d630950cb5c6a1cb6457ce03a17c074ae13628",
      "tree": "1d6b9741bc621d1f2ea5894cbc2ac4c56293d8dc",
      "parents": [
        "8b64424860a5625782c363adba41825e5af6357f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 09:55:54 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 09:55:54 2013 -0800"
      },
      "message": "Clean up debugger orthography.\n\nMainly just for ids, and not in the JDWP code. Fixing everything at\nonce is just not practical.\n\nChange-Id: I06464d5765b33dca65eb3c24bdd8aaf84b9631a5\n"
    },
    {
      "commit": "8b64424860a5625782c363adba41825e5af6357f",
      "tree": "a4787d130b2eebbf9008e89fa53f766cf591efd0",
      "parents": [
        "dc5daa0db249f8cfb8290bc8f7068cb2a0383393",
        "221229cb523f849f165fdafbf9785010963715da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 09:32:40 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 09:32:41 2013 -0800"
      },
      "message": "Merge \"Handle zombie threads in JDWP.\" into dalvik-dev"
    },
    {
      "commit": "dc5daa0db249f8cfb8290bc8f7068cb2a0383393",
      "tree": "d8cafc924aa1c0d6a91ded76685828565400464a",
      "parents": [
        "162fd33474038f0de0388338ca007ecf400bb3df"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Jan 09 21:31:37 2013 +0800"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Jan 09 22:19:23 2013 +0800"
      },
      "message": "Fix portable path.\n\nChange-Id: Ie5d64bd851a6ad55d4eef051704916c8318fa2f9\n"
    },
    {
      "commit": "221229cb523f849f165fdafbf9785010963715da",
      "tree": "87f4b27cd85b40dad97d87780440a8b4225d7dda",
      "parents": [
        "162fd33474038f0de0388338ca007ecf400bb3df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 18:17:50 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 18:17:50 2013 -0800"
      },
      "message": "Handle zombie threads in JDWP.\n\nMostly a matter of making DecodeThread more robust and passing JDWP::JdwpError\nstatuses around, but enough work that I feel justified in having left this as a\nTODO for so long.\n\nChange-Id: I779b6fcc6355dc6288355742f4b7babc531b8e38\n"
    },
    {
      "commit": "162fd33474038f0de0388338ca007ecf400bb3df",
      "tree": "af85ca309bfb0aa36061d340ad6fa9d1a848923f",
      "parents": [
        "54b3747f197fec38f91b1b74e81d812d8b55f1ad"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 08 16:21:01 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 08 16:21:01 2013 -0800"
      },
      "message": "Add update_debugger_support for x86 and fix ModBasket.\n\nMade a constructor for struct ModBasket rather than using memset(0).\nThis was causing problems when setting the std::string className field\non the host.\n\nChange-Id: Ie8fa08d0c9f01b029db88c8a309e54283b00b497\n"
    },
    {
      "commit": "7688767f265f4f1e44018d3fa82e5b189e4bdf3e",
      "tree": "f4c540682f60cdaf2be807be36b4de4cb428b6db",
      "parents": [
        "b4e94fd380a84c755264e8668a16052442c7ec32",
        "26f10eed520942d3db754c31941e457048475f61"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 08 15:38:59 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 08 15:38:59 2013 -0800"
      },
      "message": "Merge \"Fix Portable build\" into dalvik-dev"
    },
    {
      "commit": "b4e94fd380a84c755264e8668a16052442c7ec32",
      "tree": "0b0262d490c8dd1dffad4861e07b2198d0a2e503",
      "parents": [
        "4cd121ef0cb35fced70c7d9de378277be7a727d9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 14:41:26 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 14:41:26 2013 -0800"
      },
      "message": "Extend and fix the monitor diagnostics.\n\n1. Including kSleeping as one of the interesting states.\n\n2. Reset the wait_monitor_ field later so that a thread caught trying to switch\nback to kRunnable doesn\u0027t show up as waiting/sleeping on \"null\". This only\ncame to light because my wait/sleep additions to the ThreadStress test all do\nvery short waits/sleeps.\n\n3. Remove the bogus \"held by\" output. You can only wait/sleep on a monitor you\nhold, so we know the answer already (and this code was producing the wrong\nanswer because it was using stale data).\n\nChange-Id: I23135862c2a429f4eee222756d3ff35204d12d62\n"
    },
    {
      "commit": "26f10eed520942d3db754c31941e457048475f61",
      "tree": "6b0bdd82479c1a6d8fed05071b1990df5840e803",
      "parents": [
        "1a25aa432314bcf008c11e3514afc0b7aeb64d5c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Dec 21 11:16:29 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 08 14:38:02 2013 -0800"
      },
      "message": "Fix Portable build\n\nA previous change broke the ability to compile the Portable build.\nInstead of building Portable, we unwittingly were building Iceland.\nThis CL fixes that, along with some bitrot unknowingly introduced\nby subsequent CLs.\n\nIn particular, the debugger support change to add an intrinsic\ncall to associate value definitions with the original Dalvik\nVReg broke llvm\u0027s Phi constraint.  Fixed.\n\nHowever, problems remain.  Though the build is now fixed, CLs\nsubsequent to the makefile breakage broke the Portable llvm backend.\nThis CL will shift all Portable compilations to Iceland while the\nnew breakage is being addressed.\n\nChange-Id: I7b08b26ed653a7b477f0ae9a226b7ee09c6b3398\n"
    },
    {
      "commit": "4cd121ef0cb35fced70c7d9de378277be7a727d9",
      "tree": "c786e70cfe50147749d9dd7494dd7112271c8f60",
      "parents": [
        "1a25aa432314bcf008c11e3514afc0b7aeb64d5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 17:35:41 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 11:06:02 2013 -0800"
      },
      "message": "Implement the Thread.sleep native method.\n\nThis makes returning TS_SLEEPING from JDWP simple and cheap, and\nmakes the stack dumps for sleeping threads more easily understood\nby app developers (because there\u0027s no Object.wait magic going, and\nthe thread state is \"Sleeping\" rather than \"TimedWaiting\").\n\nAlso make Object.wait() a native method in its own right, so every call into\nMonitor::Wait can explicitly pass the most appropriate ThreadState: kSleeping,\nkWaiting, or kTimedWaiting.\n\nAlso add Thread.sleep and Object.wait(long, int) calls to the ThreadStress test.\n\nChange-Id: I49adb45dbcd669eba7cf3def45e6cbfc461a3254\n"
    },
    {
      "commit": "1a25aa432314bcf008c11e3514afc0b7aeb64d5c",
      "tree": "d6a9831d89fde0f4a31762f4514d9d42f8c41e56",
      "parents": [
        "1e5ba286ab9e815e3121b408019fcaad0d4b17ec",
        "80537bb742dff4ccdf6d04b1c0bb7d2179acc8cb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 12:00:42 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 07 12:00:43 2013 -0800"
      },
      "message": "Merge \"Fix and reenable lock dumping in stack dumps.\" into dalvik-dev"
    },
    {
      "commit": "80537bb742dff4ccdf6d04b1c0bb7d2179acc8cb",
      "tree": "38c5fc3dd0344ddf721320c07e39136b37a38815",
      "parents": [
        "6641ea12b98dda9ec45d29f20e43f85698b88a02"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 04 16:37:26 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 11:24:50 2013 -0800"
      },
      "message": "Fix and reenable lock dumping in stack dumps.\n\nThis patch adds a flag to tell the method verifier not to load\nclasses when resolving types, so that when we ask the method verifier\nto find monitor-enter instructions for stack dumping it doesn\u0027t try\nto allocate (since the most common cause of stack dumping is SIGQUIT).\nWe believe that all the classes we care about will be loaded already\nanyway, since we\u0027re only interested in _held_ locks, and you can only\nhold a lock if you\u0027ve executed the code that leads to the monitor-enter,\nand you can\u0027t execute the code without loading the relevant classes.\nAny not-yet-loaded classes shouldn\u0027t be relevant for our purposes.\n\nAlso clarify the stack dumps when a thread is starting up; although\nstrictly speaking a thread might be in the kNative state, it\u0027s more\nhelpful if we also explicitly say that it\u0027s still starting up.\n\nAlso a few GC log output fixes.\n\nChange-Id: Ibf8519e9bde27838c511eafa5c13734c5bebeab6\n"
    },
    {
      "commit": "1e5ba286ab9e815e3121b408019fcaad0d4b17ec",
      "tree": "fccc78ee42080badd607627429b4b8902a74d6c3",
      "parents": [
        "05bcbc1a0394d5aa8f247e2ec175ff8f97926c78",
        "e5fe0f7c3e859a90bf1ed5bd24ce8fbb3027b81c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 04 17:40:49 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 17:40:50 2013 -0800"
      },
      "message": "Merge \"Fix debugger to properly return TS_SLEEPING.\" into dalvik-dev"
    },
    {
      "commit": "e5fe0f7c3e859a90bf1ed5bd24ce8fbb3027b81c",
      "tree": "4f675dae88f8e50d72edcc02aadedbbf4d826510",
      "parents": [
        "6641ea12b98dda9ec45d29f20e43f85698b88a02"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 04 17:05:30 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 04 17:36:24 2013 -0800"
      },
      "message": "Fix debugger to properly return TS_SLEEPING.\n\nThread.sleep is implemented with Object.wait, so the code can\u0027t\ndistinguish the two. I added a check to see if Thread.sleep\nis somewhere on the stack, indicating that the thread is actually\nsleeping instead of waiting.\n\nChange-Id: I288befc1b3dc76e30c0620ab9c850c66b81c7a6d\n"
    },
    {
      "commit": "05bcbc1a0394d5aa8f247e2ec175ff8f97926c78",
      "tree": "b64c8e8099d49b340e550687c0fab3e7618968b1",
      "parents": [
        "6641ea12b98dda9ec45d29f20e43f85698b88a02",
        "fffdb023275613612a22ec62b3421ffe4d2b73fe"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 04 15:32:48 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 15:32:48 2013 -0800"
      },
      "message": "Merge \"Add memory barrier for final instance fields.\" into dalvik-dev"
    },
    {
      "commit": "fffdb023275613612a22ec62b3421ffe4d2b73fe",
      "tree": "eb24cffd6ad7a50a11e9b3c3bcad3688865192e7",
      "parents": [
        "c8253caa7045a7683666725a6d8aeba96a8f9c7a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 04 15:14:08 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 04 15:31:42 2013 -0800"
      },
      "message": "Add memory barrier for final instance fields.\n\nChange-Id: I1a02f0f75e974f4c84d61254da05480c20ff881c\n"
    },
    {
      "commit": "6641ea12b98dda9ec45d29f20e43f85698b88a02",
      "tree": "1ffeecc0d83c3ec6158bcdbaf8851e716f24f2d7",
      "parents": [
        "1d6df8edb5b177bd24d692e1fa854272af394d0a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 02 18:13:42 2013 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 03 14:40:36 2013 -0800"
      },
      "message": "Fix stack walking when top frame has null method pointer.\n\nChanged the do-while loop to just a while loop in the stack walk. This\nfixes the case where the top frame has a null method pointer, which can\nhappen during instrumentation.\n\nChange-Id: If7d67cd315d31bac4c1bbe31d6e385612b182935\n"
    },
    {
      "commit": "7f1df62028142ec01dcee190f4f171a088c4087f",
      "tree": "d5f8b9914ddfdcf0eb616670cbf6e69ffc936d69",
      "parents": [
        "c8253caa7045a7683666725a6d8aeba96a8f9c7a",
        "2502e004d93734a99bdfeab811b3c5ae06f45bec"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jan 03 08:18:08 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 03 08:18:09 2013 -0800"
      },
      "message": "Merge \"Basic block optimization refactoring\" into dalvik-dev"
    },
    {
      "commit": "2502e004d93734a99bdfeab811b3c5ae06f45bec",
      "tree": "1f1ef0f89464d4a2d5477fe026866cc684c7ca1b",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 31 16:05:53 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jan 03 06:17:11 2013 -0800"
      },
      "message": "Basic block optimization refactoring\n\nVarious optimization improvements for the common frontend.\n\nBefore applying basic block optimizations, split the graph\ninto extended basic blocks.  Replace existing pattern-match\nrange-check elimination with a scheme based on local value\nnumbering (which could also serve as the basis for some CSE\nif the existing, but so-far untested, common frontend temp\nregister mechanism works as designed).\n\nFor the framework, this CL improves null check elimination\nfrom 90.74% (statically) to 91.24% removed, and range\ncheck elimination from 3.45% to 8.17%.\n\nChange-Id: Ie1ce730cfe12a12fef665a30fe3814bad1993895\n"
    },
    {
      "commit": "c8253caa7045a7683666725a6d8aeba96a8f9c7a",
      "tree": "45969fd6f23e277ee1fbcdcb0d218ebdf636fe14",
      "parents": [
        "306057fd278d75bf3794bd5243a3b6652c487d18",
        "c8fece309fa1d3514071fadaca34530648462b50"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:44:35 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 02 11:44:35 2013 -0800"
      },
      "message": "Merge \"Port the Runtime.nativeLoad change to art.\" into dalvik-dev"
    },
    {
      "commit": "c8fece309fa1d3514071fadaca34530648462b50",
      "tree": "d4d20537d732e39effcd3ed7d45c44d7b14312cd",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:27:23 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:27:23 2013 -0800"
      },
      "message": "Port the Runtime.nativeLoad change to art.\n\nAlso improve the diagnostics when RegisterNatives fails.\n\nChange-Id: I1000e2e240ce71fbcb4dbc42168253ef8a15c565\n"
    },
    {
      "commit": "306057fd278d75bf3794bd5243a3b6652c487d18",
      "tree": "62652a97caace11e50408d15688ced3514039219",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 12:45:53 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 02 11:15:42 2013 -0800"
      },
      "message": "Support for deoptimization needed for debugging.\n\nThe deoptimization code is untested, and some sanity checks in the\ninstrumentation are disabled because they need debugging.\n\nChange-Id: I1b60a65a60bddc9b107ad4659da097b55ce901c3\n"
    },
    {
      "commit": "2d76b041be770102fc912effc398e629a18180d2",
      "tree": "5992d829897b22c14f63922d22e5f395865f2735",
      "parents": [
        "11a796e42027a926d972f1232484d577cbe01f84",
        "d8506218bfe0fec7b3c7ef10818a9266e77ace4a"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Dec 20 15:05:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 15:05:44 2012 -0800"
      },
      "message": "Merge \"Compiler: GBC fix, CFG dump enhancements\" into dalvik-dev"
    },
    {
      "commit": "d8506218bfe0fec7b3c7ef10818a9266e77ace4a",
      "tree": "28799325625e36a8fefbc806abb39ed13b94ee9d",
      "parents": [
        "9b5aa6f2029d3dae305009ac72e44ca97ca7b638"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Dec 20 14:15:05 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Dec 20 14:15:05 2012 -0800"
      },
      "message": "Compiler: GBC fix, CFG dump enhancements\n\nRepaired some GBC generation bit rot, fixed a syntax error in\n.dot cfg file generation, enhanced cfg generation to work before\nSSA renaming and added new cfg dump points.\n\nChange-Id: Id73b479209ea4d963810f67bde0ed502ed7361d3\n"
    },
    {
      "commit": "11a796e42027a926d972f1232484d577cbe01f84",
      "tree": "8b444fcab012bce21714b3077742d8ff180bef82",
      "parents": [
        "96a9887f0bc912661e0a7478c7eb19847d2e2e06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 14:42:57 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 14:42:57 2012 -0800"
      },
      "message": "Change NewDirectByteBuffer to allow NULL if capacity \u003d\u003d 0.\n\nBug: 7892060\nChange-Id: Ib7b340afafb27a3ff34799a0be0163466be207ea\n"
    },
    {
      "commit": "96a9887f0bc912661e0a7478c7eb19847d2e2e06",
      "tree": "34c681bcd567801458e913f89da6d8c2f854072d",
      "parents": [
        "9b5aa6f2029d3dae305009ac72e44ca97ca7b638"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 14:21:15 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 19 14:38:59 2012 -0800"
      },
      "message": "Improve JNI error checking to use JniAbort rather than CHECK.\n\nChange-Id: I412d4baa76fdb6c94694bceaef3c0cfeb06a0b5b\n"
    },
    {
      "commit": "9b5aa6f2029d3dae305009ac72e44ca97ca7b638",
      "tree": "9e33e741ecd850304394b952e55e8ae809a1ba54",
      "parents": [
        "3235d00248f7b183b4f226a4f0de63673df0ac00"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 18 11:47:11 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 18 11:47:11 2012 -0800"
      },
      "message": "Locking and exception handling fixes for debugger/interpreter.\n\nChange-Id: I20223113355a2d7b5deb4658035be2f788765fc1\n"
    },
    {
      "commit": "14f0db92225d34622fa5cb1a6dc9287334aaf6c7",
      "tree": "7771b1fa7b9a3553d3ad220e45bea926819ab33c",
      "parents": [
        "4c5b265e66bebf890b6f9e53cddeb512774b1613"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 14 17:50:42 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 17 13:49:12 2012 -0800"
      },
      "message": "Fixes to interpreter and debugger for JDWP.\n\n- Fixed off-by-one error for MethodEndCodeIndex.\n- Changed first instance of dex_pc 0 in interpreter Execute to output\n  METHOD_ENTRY event.\n\nChange-Id: I4854cb7cbde0db53db23d8b1c5bb9f08bf8409f1\n"
    },
    {
      "commit": "4c5b265e66bebf890b6f9e53cddeb512774b1613",
      "tree": "8278a6619b4dc4ec6009dcac01cf3fd4046108cb",
      "parents": [
        "2933d538b45cae733349b81a6a1d4a6f4dc9d3ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 15 21:36:16 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 15 22:36:34 2012 -0800"
      },
      "message": "Test and fixes for invoke-interface on java.lang.Object methods.\n\nBug: 7614818\n\nChange-Id: I704596cf3d36887e6d6d589cb3ec89e31d5b8901\n"
    },
    {
      "commit": "2933d538b45cae733349b81a6a1d4a6f4dc9d3ec",
      "tree": "cf0fa44a887231ee7d4e6a7b1b8df49f85aee349",
      "parents": [
        "e222ee0b794f941af4fb1b32fb8224e32942ea7b",
        "c1e0490a2a0293fdfc5f654482339ccc71d9952b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 14 09:47:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 14 09:47:54 2012 -0800"
      },
      "message": "Merge \"Changed IsInDesiredThreadGroup to never return null threads.\" into dalvik-dev"
    },
    {
      "commit": "e222ee0b794f941af4fb1b32fb8224e32942ea7b",
      "tree": "0b9f5fe6398663c9d871881cf7de28eca8bdfc6f",
      "parents": [
        "1aa246dec5abe212f699de1413a0c4a191ca364a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 14:41:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 15:24:45 2012 -0800"
      },
      "message": "Move stringpiece.h and stringprintf.h to base/.\n\nChange-Id: I7f71b4a12f99c5f81771146c66629ae5a947b229\n"
    },
    {
      "commit": "c1e0490a2a0293fdfc5f654482339ccc71d9952b",
      "tree": "1f64aef3d618caf8ae697cb1cd9574ff5ccda455",
      "parents": [
        "b7eb10825af77b60cdae0d58232075a0704071da"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 13 12:41:10 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 13 12:41:10 2012 -0800"
      },
      "message": "Changed IsInDesiredThreadGroup to never return null threads.\n\nChange-Id: I1907fbbd319156be0311243d0e3ba997ba862b22\n"
    },
    {
      "commit": "1aa246dec5abe212f699de1413a0c4a191ca364a",
      "tree": "ee9f5be423f56620f211525070273afc7a19c27d",
      "parents": [
        "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 09:29:36 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 09:29:36 2012 -0800"
      },
      "message": "Move casts.h and stl_util.h into base/.\n\nChange-Id: Idb3bfa5cec3d146e488031d91265737cde2b4cf4\n"
    },
    {
      "commit": "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461",
      "tree": "2350745da33df6fcb9fb0c9059e55ea5d5ea8f67",
      "parents": [
        "76b6167407c2b6f5d40ad895b2793a6b037f54b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:34:25 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:35:05 2012 -0800"
      },
      "message": "Move logging.h into base/logging.h.\n\nChange-Id: Id68f85f7c3a71b156cb40dec63f94d4fb827f279\n"
    },
    {
      "commit": "76b6167407c2b6f5d40ad895b2793a6b037f54b2",
      "tree": "5c433a0907ddf401f4078b6703253b1ae75e723e",
      "parents": [
        "f66330a747eff155eb571b634fc9d901c55a78a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:47:30 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:11:44 2012 -0800"
      },
      "message": "Move mutex.h into base/mutex.h.\n\nWe don\u0027t actually need any hackery to get the right mutex.h any\nmore, but since we planned on having the google3-like stuff\nin google3-like locations, this is an easy one to fix.\n\nChange-Id: Ie27464ebbc208a6f4e694a97cf26b1cee0737009\n"
    },
    {
      "commit": "f66330a747eff155eb571b634fc9d901c55a78a7",
      "tree": "e9b7222c519fbfd3cb7b6c2ae701750e8386fc40",
      "parents": [
        "fe8723b27d5ef942ffa5a0a77c8169ffdfde8f4b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:27:00 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:27:00 2012 -0800"
      },
      "message": "Fix icu4c include path pollution.\n\nChange-Id: Ie96abd97ea98fd36cc9a796a3ce35233addfd1ee\n"
    },
    {
      "commit": "fe8723b27d5ef942ffa5a0a77c8169ffdfde8f4b",
      "tree": "68030b2f4cdd150d6644432c04681f0c79b9f82b",
      "parents": [
        "b7eb10825af77b60cdae0d58232075a0704071da",
        "761600567d73b23324ae0251e871c15d6849ffd8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:03:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 17:03:36 2012 -0800"
      },
      "message": "Merge \"Switch over to the google3 unix_file File*.\" into dalvik-dev"
    },
    {
      "commit": "761600567d73b23324ae0251e871c15d6849ffd8",
      "tree": "4757cb01233394fa2e9c461a68fc37a35c12dabb",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "message": "Switch over to the google3 unix_file File*.\n\nI also moved macros.h to base/macros.h to ease google3 porting, at\nthe expense of a larger than necessary change. (I learned my lesson,\nthough, and didn\u0027t make the equivalent base/logging.h change.)\n\nI\u0027m not sure whether we want to keep the unix_file MappedFile given\nour existing MemMap, but it\u0027s easier to bring it over and then remove\nit (and possibly revert the removal) than to bring it over later.\n\nChange-Id: Id50a66faa5ab17b9bc936cc9043dbc26f791f0ca\n"
    },
    {
      "commit": "b7eb10825af77b60cdae0d58232075a0704071da",
      "tree": "53e52a39a6888f14c90e27f420f4057f6a311059",
      "parents": [
        "7331813aa84c82f003b58da7a9225622f8b0eeeb",
        "09bfc6a50bdc9366b13ac3ab479d9278c853d90a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 12 13:52:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 13:52:22 2012 -0800"
      },
      "message": "Merge \"Some fixes for JDWP with the interpreter.\" into dalvik-dev"
    },
    {
      "commit": "09bfc6a50bdc9366b13ac3ab479d9278c853d90a",
      "tree": "f3d528939b038e5f0a6d16cbb83934ddc2b6ffc0",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 11 18:11:43 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 12 13:25:25 2012 -0800"
      },
      "message": "Some fixes for JDWP with the interpreter.\n\n- GetStackDepth checks if the thread is suspended, unless the thread is\n  itself.\n- Scoped the breakpoints lock during UpdateDebugger to prevent it being\n  held during PostLocationEvent.\n- Removed locking of breakpoints lock in DebugCallbackContext since it\u0027s\n  already holding it.\n- Added level for breakpoints lock to prevent lock level violations.\n\nChange-Id: I3588c9696bb57ada3c8c64dc1d95ae23cdf2b107\n"
    },
    {
      "commit": "7331813aa84c82f003b58da7a9225622f8b0eeeb",
      "tree": "27d605e356312e8c067fff33eb98b362742edde1",
      "parents": [
        "1cac343f8621a81bcd3f52f8eee0f497a66d7408"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "message": "Remove now unused RelocateExecutable\n\nChange-Id: Ief03e9154d038fa977fe5eb38b1b9aef6659231f\n"
    },
    {
      "commit": "1cac343f8621a81bcd3f52f8eee0f497a66d7408",
      "tree": "b2c2dc7326ae708e4d2aa185c6234df8341d3dcc",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "message": "Remove now unused RelocationBehavior\n\nChange-Id: Ifdb98a63376014a698b53bc926fb1c5512dc2e57\n"
    },
    {
      "commit": "df53a6526215ef245e06d9f663ee21de9891879e",
      "tree": "d7876e4e296550c66f0574b861ba46141dfd0c6d",
      "parents": [
        "a592a6df3aaf9b2a7e07bd2046716264726d9567",
        "6702243ea2332b566d8e8b871cc9db0906d835ad"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 11 11:52:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 11:52:24 2012 -0800"
      },
      "message": "Merge \"Support for SetVReg and add SetGPR.\" into dalvik-dev"
    },
    {
      "commit": "6702243ea2332b566d8e8b871cc9db0906d835ad",
      "tree": "dc530339fa07de6028c0771edb082f58ea3686f9",
      "parents": [
        "a169e1d8d968800380245cda450505d969ebff76"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 29 18:04:50 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 11 11:35:41 2012 -0800"
      },
      "message": "Support for SetVReg and add SetGPR.\n\nThese changes are useful for debugging and are required for being able\nto change all GC roots.\n\nMIPS is untested.\n\nChange-Id: I2ba055de64264098bffe869a4fb192d0975f1c8f\n"
    },
    {
      "commit": "a592a6df3aaf9b2a7e07bd2046716264726d9567",
      "tree": "44c6bc1a3b11eb9b6f17afadff9fba650d92f11b",
      "parents": [
        "3aadba03da973099d39e704f4b2b9e7f67410efd",
        "262e251e56d66bd309c6165964ac0a0be24447fe"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 11 10:07:16 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 10:07:16 2012 -0800"
      },
      "message": "Merge \"Fixed slow path for invoke-direct with null this pointer.\" into dalvik-dev"
    },
    {
      "commit": "3aadba03da973099d39e704f4b2b9e7f67410efd",
      "tree": "80258f8f39e3492f1f86af4367b228678ccafa1c",
      "parents": [
        "4f3d94b4e3b40fa7aa2bb5007fa4bb5703189b61",
        "e6285f99a53a344efd6f8409ff5f43a3e80190db"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Dec 11 10:06:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 11 10:06:10 2012 -0800"
      },
      "message": "Merge \"Compiler: Take advantage of constant propagation\" into dalvik-dev"
    },
    {
      "commit": "262e251e56d66bd309c6165964ac0a0be24447fe",
      "tree": "89453b090d7213e21d6c79ad731511bd8d1094af",
      "parents": [
        "4f3d94b4e3b40fa7aa2bb5007fa4bb5703189b61"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 11 09:46:43 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 11 10:05:24 2012 -0800"
      },
      "message": "Fixed slow path for invoke-direct with null this pointer.\n\nMoved the null pointer check until after the class linker tries to\nresolve the method on the slow path.\n\nChange-Id: Ie0f9e279a98a7e3a40899fee92337ef454c9a468\n"
    },
    {
      "commit": "e6285f99a53a344efd6f8409ff5f43a3e80190db",
      "tree": "145aac9e61838efb617b9c53d8707ca43dd541ed",
      "parents": [
        "a169e1d8d968800380245cda450505d969ebff76"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Dec 06 15:57:46 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Dec 11 09:54:04 2012 -0800"
      },
      "message": "Compiler: Take advantage of constant propagation\n\nThe common frontend tracks constants via a constant propagation pass.\nWhen converting from MIR to GBC (for Portable) or LIR (for Quick),\nrecognize constant arguments and select more efficient codegen forms.\n\nNote: we still have to flush constants to their associated vregs to\nsupport deoptimization.  There\u0027s quite a bit of possible code size\ngain if we were to eliminate unnecessary stores or enhance the vmap\ntable to explicitly represent the ranges over which Dalvik vregs\nare constant.\n\nAlso some minor code refactoring related to array operations.  There\nare sufficient architectural differences to make it worthwhile to\nhave target-dependent aget/aput generators.  On Arm, this is mostly\nbeneficial to floating point array loads and stores.\n\nThis CL yields a ~0.8% decrease in code size over the framework,\nand a nice pop to a few of the standard point benchmarks\n(linpack: ~10%, cm: ~11%, scimark: ~13% - no significant change to\nthe others)\n\nChange-Id: I2337e1aa0622b34a34c3775f8b7dbf5e6969da3e\n"
    },
    {
      "commit": "42b4dc4280c25a624bf38e19da70be39d2676232",
      "tree": "3913e3e9a1e69436344ff820fbffe76b97fdb24e",
      "parents": [
        "a77f0f68a59870ff027dad654fe31eb3fdaf3d5d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 10 10:25:43 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 10 10:25:43 2012 -0800"
      },
      "message": "Interpreter fixes.\n\n- Fixed filled_new_array to handle negative array size and wrong types.\n  Also added support for objects.\n- Fixed not_int/long and neg_int/long.\n- Masked shift amounts.\n- Disabled return type check to allow exceptions to be thrown when type\n  doesn\u0027t match the method prototype.\n\nChange-Id: I68162a121f3ba53fd6c40a31f0b6aa9ba925ea2d\n"
    },
    {
      "commit": "a77f0f68a59870ff027dad654fe31eb3fdaf3d5d",
      "tree": "c041a68efb55db65ab8f195938097a887f5fcc01",
      "parents": [
        "a169e1d8d968800380245cda450505d969ebff76"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 05 17:19:31 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 06 10:14:46 2012 -0800"
      },
      "message": "Various fixes for JDWP.\n\n- Moved lock of thread list lock into DecodeThread from its callers\n- Fixed scope of various locks to prevent locking violations\n- Added transition for current thread from runnable to suspended before\n  suspending vm, and then a transition back\n- Reworked lock ordering to allow JDWP locks to be held while grabbing\n  the thread list lock\n- Moved debugger PostException until after suspension is re-allowed\n\nChange-Id: Ie53e47ff1538e6cd3125c48ddb4c13758b29be63\n"
    },
    {
      "commit": "a169e1d8d968800380245cda450505d969ebff76",
      "tree": "92b2cc6da112b027432ae4d5bc985118baebe376",
      "parents": [
        "ce4cc0d1818e872c1c7f3c3519a82259afd5c288"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "message": "Quick compiler: refactored listing \u0026 const fix\n\nThis CL started off as a simple fix to Issue 4959751, which\nidentified a case in which compiler debugging listings could read\nuninitialized data.  The fix ended up pulling a few strings - we\nhad two distinct dex printing routines (one was focused on SSA names\nand was used by the .dot graph dumper), while the other was used with\nverbose codegen listing.\n\nEnded up combining the two routines and significantly enhancing the\nvalue of the verbose debug output.  We now always use ssa register\nnames, and also show the constant values of ssa names which are known\nto be const following constant propagation.\n\nAlong the way, deleted a bit of useless code that remapped all\nregisters in a phi set to have the same name, and also got rid of\nsome duplicate listing helper LIR pseudo ops.\n\nSomee examples of the new listing:\n\n-------- dalvik offset: 0x2 @ const/4 v0_1#0x1, #1\n\nthe format of the vreg is:\n   v\u003corignal Dalvik vnum\u003e_\u003cssa instance\u003e[#hex value of immediate]\n\nIn this example, we don\u0027t add any new info (the listing already had #1),\nbut we also show this form in uses:\n\ninvoke-virtual v0_2, v1_3#0x40\n\nAlso improved is the listing output of potentially throwing instructions\nwhich are broken into two parts: the check portion and the work portion.\nBoth halves now show the full disassembly.  For example:\n\n-------- dalvik offset: 0x13 @ Check1: invoke-virtual v0_2, v1_3#0x40\n....code here\n....code here\n-------- dalvik offset: 0x13 @ Check2: invoke-virtual v0_2, v1_3#0x40\n\nDalvik instructions which are optimized away prior to code generation\nare displayed in sqare brackets.  For example:\n\n-------- dalvik offset: 0x16 @ [move-result-object v0_3]--optimized away\n\nFinally, Phi nodes show which incoming block an operand came through.\nIn the following example:\n\n-------- dalvik offset: 0x5 @ Phi v1_2 \u003d (v1_1#0x0:4, v1_2:12, v1_3#0x1:14)\n\nSreg v1_2 is a merge of a constant 0x0 from incoming block 4, a non-const\nvalue from block 12 and a const 0x1 from block 14.\n\nChange-Id: Ib6c19c19ab8a48509d43d8b0e5ed3e8e7ce9fc82\n"
    },
    {
      "commit": "ce4cc0d1818e872c1c7f3c3519a82259afd5c288",
      "tree": "308f2c30e5a842a5e459d96e730ca4432a020f4f",
      "parents": [
        "823b8acdf2c8274ff93b685e50a93ab9afc6af8b"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Nov 18 16:59:53 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Dec 04 11:07:34 2012 -0800"
      },
      "message": "Using gcmap instead of shadow frame.\n\nFix misuse of TBAAJRuntime \u0026 TBAARuntimeInfo. Now, the TBAAJRuntime is\nonly for runtime support function.\n\nUpdate DexPC before lock object and suspend.\n\nChange-Id: I40fa37f4863fe6e127328a8413285ee3c62e8505\n"
    },
    {
      "commit": "823b8acdf2c8274ff93b685e50a93ab9afc6af8b",
      "tree": "fb992f34ed26b0b75169ecc906bdc9b98f3d5e3a",
      "parents": [
        "078fa459fee2d5f26a94fbbe5b8f4feeafb4afb2",
        "ef28b14268ed0f9db0c7bbd571aa514354a360bd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Dec 03 17:41:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 03 17:41:29 2012 -0800"
      },
      "message": "Merge \"Remove some SOA from JNI internal.\" into dalvik-dev"
    },
    {
      "commit": "078fa459fee2d5f26a94fbbe5b8f4feeafb4afb2",
      "tree": "d440d4e3e59ca177cd9ff406a77ce095670c58ef",
      "parents": [
        "609ba32ed9f1655383124f0c4b45c1b23e7aa2e2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 03 15:51:33 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 03 15:51:33 2012 -0800"
      },
      "message": "Quick compiler: improve ClobberSReg comments\n\nIssue 6501474\n\nImprove the comments describing the usage of ClobberSReg().  Also, desk-checked all current\nuses of ClobberSReg() to make sure they are appropriate.\n\nNo code changes - only comments.\n\nChange-Id: Ife8419a7e2c2e51b258df7709a7d903d1fd93a44\n"
    },
    {
      "commit": "609ba32ed9f1655383124f0c4b45c1b23e7aa2e2",
      "tree": "e762d087124c20477309196ea86098409d4d4b29",
      "parents": [
        "07ec8e17c978e3bda0202693e6432b56349a5867"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Dec 02 23:48:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Dec 02 23:48:18 2012 -0800"
      },
      "message": "Fix/add comments in x86 long codegen.\n\nChange-Id: I40826c9468402f621e3890b221b508c96541a4c3\n"
    },
    {
      "commit": "07ec8e17c978e3bda0202693e6432b56349a5867",
      "tree": "112bccd79024ebd831507c42672e01abc13b726e",
      "parents": [
        "cfaa455374aae0a08c8cb28b5bb306b17866d652"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 01 01:26:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 01 11:44:15 2012 -0800"
      },
      "message": "Intrinsic for java.lang.Thread.currentThread.\n\nChange-Id: I056323a74f8759257bf6b6bb032437e576665006\n"
    },
    {
      "commit": "ef28b14268ed0f9db0c7bbd571aa514354a360bd",
      "tree": "6a993310b20f012d9d1d150a85dc4ab97663587c",
      "parents": [
        "cfaa455374aae0a08c8cb28b5bb306b17866d652"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 14:22:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 23:26:19 2012 -0800"
      },
      "message": "Remove some SOA from JNI internal.\n\nRemove or reduce scope of scoped object accesses in JNI internal. Turn a\nPrettyMethod and string compare into a pointer comparison.\n\nChange-Id: I6f8ac8f6a4741916769288c4d6d411c7e0f40ef4\n"
    },
    {
      "commit": "cfaa455374aae0a08c8cb28b5bb306b17866d652",
      "tree": "ca8f25a06f234385b6e62bb774085f1324e5d519",
      "parents": [
        "3676aeb03d5f70933891bb3b21abb8e31a81e36c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 21:00:08 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 16:38:21 2012 -0800"
      },
      "message": "Turn the thread peer_ into a Object*.\n\nDon\u0027t use a JNI global ref for the thread peer_ so that we can\nsupport more threads than we can global refs. This fixes run-test 51.\nFix a race in thread destruction where a thread may be requested to\nsuspend while deleting itself.\n\nChange-Id: Id8756a575becf80d2a0be0a213325034556927f1\n"
    },
    {
      "commit": "3676aeb03d5f70933891bb3b21abb8e31a81e36c",
      "tree": "53733bf87688c4af08f19cea63a2d92a7e1e0143",
      "parents": [
        "760c943b1f7ed0838d5909f49d70584f776add20",
        "7da142fc1cefeeb24d997ae21b34381fdd2c0466"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 30 15:53:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 15:53:12 2012 -0800"
      },
      "message": "Merge \"Quick compiler: tighten null/0/0.0 workaround\" into dalvik-dev"
    },
    {
      "commit": "7da142fc1cefeeb24d997ae21b34381fdd2c0466",
      "tree": "ac0d772535c1c34c7788e56fa0ae2dbc08d27668",
      "parents": [
        "7b9ad926a160034c102dc8c7fad8f5112d57b360"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 29 16:33:42 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 30 15:51:11 2012 -0800"
      },
      "message": "Quick compiler: tighten null/0/0.0 workaround\n\nChange 255389 worked around an issue with the compiler and\ngarbage collector being out of sync regarding the type of a Dalvik\nregister loaded with a constant 0 value.\n\nThe workaround was to detect the case of a constant 0 loaded\ninto a promoted floating point register, and then also store a\nzero in the core/reference identity of that Dalvik vreg.\n\nThis CL tightens the workaround by ensuring that the additional\nstore is only performed in cases in which the promoted-to-float\nDalvik vreg is also used as a reference at some point in the\nmethod.\n\nAdditionally, it improves the code sequence somewhat by reusing\nthe register loaded with zero for the subsequent store.  Further,\nan unrelated enhancement is made to the floating point immediate\nloading code.  For Arm, a few floating point constant values are\nsupported via vmov immediate.  However, 0.0 is not a bit pattern\nthat can be directly generated.  Previously, we would load 0.0 from\nthe method\u0027s literal pool.  In this CL we instead materialize +2\nin a core register, and then emit an vsub reg,reg,reg to convert\nit to +0.0. This saves a few bytes of code space, and avoids a\nmemory reference.\n\nIn the future, we\u0027ll want to have more info about the target\nCPU\u0027s capabilities.  A vector exclusive or would likely be\nbetter here.\n\nChange-Id: Icacd85c86112c5355d35b536e2f7a41c0357682c\n"
    },
    {
      "commit": "760c943b1f7ed0838d5909f49d70584f776add20",
      "tree": "6055abbe3a6e45d52cf3370857d65942d640c190",
      "parents": [
        "076539644368f61e679a9e6afca0b025440ee5b7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 29 16:46:27 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 29 16:50:40 2012 -0800"
      },
      "message": "After ART_USE_FUTEXES was enabled, we need some different gAborting protection\n\nChange-Id: Ic5baa5678317e08d3082d36ebb0a484667f94e13\n"
    },
    {
      "commit": "076539644368f61e679a9e6afca0b025440ee5b7",
      "tree": "5ad9ff7169c909990c5ee73013cc28d24e5d1774",
      "parents": [
        "7b9ad926a160034c102dc8c7fad8f5112d57b360",
        "0dfbb7ead0b6da92911b4bc78114ff0f0f9b4129"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 29 12:01:14 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 12:01:15 2012 -0800"
      },
      "message": "Merge \"Fix some JDWP bugs related to locking and getting statics.\" into dalvik-dev"
    },
    {
      "commit": "0dfbb7ead0b6da92911b4bc78114ff0f0f9b4129",
      "tree": "24d27d299f19ec64478658c30d4f3f2da771abe3",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 28 15:26:03 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 29 11:55:05 2012 -0800"
      },
      "message": "Fix some JDWP bugs related to locking and getting statics.\n\nGave all JDWP locks an explicit level to prevent them from using the\ndefault. Also made sure the class of the field would be passed to\nGetObject instead of NULL for statics. There\u0027s still a number of test\nfailures in JDWP.\n\nChange-Id: I6134be2a99d4a0968f9719f620864a3c176b4a58\n"
    },
    {
      "commit": "7b9ad926a160034c102dc8c7fad8f5112d57b360",
      "tree": "820e9923aa381f3ba17090fee710bdf742ef83fc",
      "parents": [
        "d45f201e9bd43490e30a35710865789b8d70e249",
        "5f61f678d0b61cda8cac954fb176edbfdb1a831e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 22:13:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 22:13:23 2012 -0800"
      },
      "message": "Merge \"Workaround for Issue 7250540\" into dalvik-dev"
    },
    {
      "commit": "5f61f678d0b61cda8cac954fb176edbfdb1a831e",
      "tree": "a508e465a79ee97e00f9a5ff2ab35cd8efb636a6",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 17:22:17 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 17:38:24 2012 -0800"
      },
      "message": "Workaround for Issue 7250540\n\nThere\u0027s a problem (originating with Dalvik\u0027s failure to properly type constants) with\nDalvik vregs that are used in both reference and floating point situations.  In\nparticular, if a constant zero is used in a floating point context, the verifier in\nsome cases will treat it as a null pointer for the purposes generating the GC map.\n\nIf that vreg ends up promoted to a floating point value, the run-time value of that\nvreg will not be found during garbage collection.  As a quick workaround, this\nCL causes the compiler to detect this special case of an immediate zero being loaded\ninto a promoted floating point register and also store a zero in the core/ref identity\nof that vreg.\n\nNote, the CL also excludes references from store elimination.\n\nChange-Id: I72f0a96744823ff9c5a2bd961a5e39ac4bbc707b\n"
    },
    {
      "commit": "d45f201e9bd43490e30a35710865789b8d70e249",
      "tree": "cbd318570af04229cf44fa5ab62d8b240f300b39",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 28 11:46:23 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 28 11:55:23 2012 -0800"
      },
      "message": "Simplify ConditionVariable and avoid potential race.\n\nMake waiters maintain mutex contenders rather than signal/broadcast\n(eliminates awoken count). Avoids race where a spurious Signal wake\ncould remove a Broadcast contender from the mutex.\n\nChange-Id: I5c3e36878c9fa2db09f5dc31d24a0a6222a61731\n"
    },
    {
      "commit": "bc43860b7e5326264ada842c35a840dd4cda8120",
      "tree": "e580a8ebf50ed6e296f79441ce1b539f17806042",
      "parents": [
        "2bfc67361026722e2f83abf06bd3fb364161a2ed",
        "a3a82b219531effb53aef13f48e50db9bf0f9fb5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 05:21:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 05:21:39 2012 -0800"
      },
      "message": "Merge \"Quick compiler: minor cleanup\" into dalvik-dev"
    },
    {
      "commit": "ddde37cfd44ccd49816776236a279e742bc9819d",
      "tree": "9828bc9d0340b97fd911cf2f2608c1493f19d3c6",
      "parents": [
        "df1ce91ba97bc79a0637e5504b39318fb1c9f577",
        "80de7a684be3c320e9e1d3bf8c9d145fe7c2f7c3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:46:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 17:46:54 2012 -0800"
      },
      "message": "Merge \"Fix clear growth limit not working.\" into dalvik-dev"
    },
    {
      "commit": "80de7a684be3c320e9e1d3bf8c9d145fe7c2f7c3",
      "tree": "22d0ab827b1ac05af03feb5b14b13ac033e4e40d",
      "parents": [
        "af1b89281fd1f86efeb791b61f5a3f2031c70312"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 27 17:21:50 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 27 17:24:10 2012 -0800"
      },
      "message": "Fix clear growth limit not working.\n\nFixed clear growth limit not working. I suspect this was causing\nthe amazon app out of memory error. Fixed the out of memory message\nmisattributing the reason for out of memory to being fragmentation.\nAdded more info to the out of memory exception message.\n\nChange-Id: I28ad42968af27468ca43368620232cf22b5f4f13\n"
    },
    {
      "commit": "df1ce91ba97bc79a0637e5504b39318fb1c9f577",
      "tree": "06fee7c60611e94264b3b6b2b318fec899c6e450",
      "parents": [
        "af1b89281fd1f86efeb791b61f5a3f2031c70312"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:07:11 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:19:09 2012 -0800"
      },
      "message": "Add alignment attribute to packed.\n\nMake packed objects 4 byte aligned or else GCC becomes paranoid and\nassumes only byte alignment on whole objects.\nChange CHECK in GetCalleeSaveMethod to DCHECK to encourage inlining.\n\nChange-Id: I79f1a13752492413c919b36f4e207e637647834f\n"
    },
    {
      "commit": "a3a82b219531effb53aef13f48e50db9bf0f9fb5",
      "tree": "841056cc525f4b8547f914ab39bc17e2cea47c39",
      "parents": [
        "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 27 16:09:55 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 27 16:12:37 2012 -0800"
      },
      "message": "Quick compiler: minor cleanup\n\nRemove dead software floating point support.\nMove a common function from target specific to target independent.\n\nChange-Id: Iaf793857f7e0faae02c672b9f1d45a0658143a51\n"
    },
    {
      "commit": "af1b89281fd1f86efeb791b61f5a3f2031c70312",
      "tree": "a4f00e84271f267404a082c954f7416d5bcd3e0e",
      "parents": [
        "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 15:19:57 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 15:37:00 2012 -0800"
      },
      "message": "Prevent hang due to HandleUnexpectedSignal reentry\n\nChange-Id: I0fe6a9b642e8d866aba893906c36bca6f1a4334e\n"
    },
    {
      "commit": "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966",
      "tree": "8dd3499f8aa4e530f2e6c68a66de5c92e3c8d25d",
      "parents": [
        "6a07d3c16402280560835ebd99ec2df8936506c5",
        "e256fe100c2d196762f1f87e030f1d2291e0b744"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:21:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 13:21:33 2012 -0800"
      },
      "message": "Merge \"Avoid direct access to length_.\" into dalvik-dev"
    },
    {
      "commit": "6a07d3c16402280560835ebd99ec2df8936506c5",
      "tree": "acc4bd1e06db8c764835ccedff48248d69fb6905",
      "parents": [
        "725de295024c9e5adf5e316f498c39d48158e19d",
        "5bd97c483c1de1eb97afe76123b1b9ab53095edf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:20:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 13:20:47 2012 -0800"
      },
      "message": "Merge \"Fix and enable ART futexes.\" into dalvik-dev"
    }
  ],
  "next": "e256fe100c2d196762f1f87e030f1d2291e0b744"
}
