)]}'
{
  "log": [
    {
      "commit": "cccd84f1f972f1a260c3be418c8388a5d30cf59e",
      "tree": "659537150070497c1afea72e67466619301f0bc3",
      "parents": [
        "3325596fbbcc9a0a93937976b5c128fd34851670"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 16:51:54 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 16:51:54 2011 -0800"
      },
      "message": "Implement local setting.\n\nI\u0027ve also worked out how to test CreateString and CreateObject, but\nnot CreateArrayObject yet.\n\nAlso stop saying \"cnt\".\n\nChange-Id: I26569ff6c4fa356fb91e6c22cbf8ced95094fabd\n"
    },
    {
      "commit": "3325596fbbcc9a0a93937976b5c128fd34851670",
      "tree": "22a4c8964feb9e27d040cca83e14a3a2a2857318",
      "parents": [
        "ca9515205010099d006ac2fac244348a1e673dcb",
        "e941e2c44a610bd6451177593a711251b96ca7d2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 05 14:33:45 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 05 14:33:45 2011 -0800"
      },
      "message": "Merge \"Fix basic block construction\" into dalvik-dev"
    },
    {
      "commit": "e941e2c44a610bd6451177593a711251b96ca7d2",
      "tree": "a4f9e5de729562426fe051d47c24f2e2c7f9f9f8",
      "parents": [
        "aed4be94da51b4fbb54c728151f0daf11535f6ab"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 05 12:38:17 2011 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 05 12:47:29 2011 -0800"
      },
      "message": "Fix basic block construction\n\nThere was a bug in the CFG building mechanism that tiggered when\na backwards branch re-entered the current basic block at a point\nother than the head.  In that case, we\u0027d split the original basic block\nin two.  However, the head of the old block then became the head\nof the first of a new two block pair - and we really needed to continue\nprocessing with the second of the pair.\n\nChange-Id: Ieb9fdd5176d86cd0959bb9e91db9ca06075d4f21\n"
    },
    {
      "commit": "ca9515205010099d006ac2fac244348a1e673dcb",
      "tree": "82b48d2a820db8ccdf6fe3f68c370627d1872232",
      "parents": [
        "f0e7ac44d67ddfb17bc8145eb63db95d5413a6a0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 12:01:32 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 12:01:32 2011 -0800"
      },
      "message": "Implement Dbg::LastDebuggerActivity properly.\n\nDon\u0027t know why I hadn\u0027t plumbed these together already.\n\nChange-Id: I4d41dd97d67afdb70d38fb1df7bd0c59136bc0a4\n"
    },
    {
      "commit": "6fa602d614d418f38afebb4d44f42e7dc0b4bd94",
      "tree": "90a8fcbead7ee9b5536916c9750c3889d5aebe3e",
      "parents": [
        "aed4be94da51b4fbb54c728151f0daf11535f6ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 17:54:25 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 17:54:25 2011 -0800"
      },
      "message": "Implement static field getting/setting, and basic Eclipse support.\n\nEclipse uses a few new calls that I hadn\u0027t seen from any of the other\ndebuggers.\n\nChange-Id: Iccb45f226431b6cd30a17f7b5ee8397e0838c1fc\n"
    },
    {
      "commit": "aed4be94da51b4fbb54c728151f0daf11535f6ab",
      "tree": "75b2d9b28862b1aa8529199964bf91a4b3df4c9d",
      "parents": [
        "f03b8f66511a2d8cb78d306f36feb51392232a5e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 16:16:23 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 16:16:23 2011 -0800"
      },
      "message": "Implement field getting and setting.\n\nThis lets you use \"dump\" and \"set \u003cobject\u003e.\u003cfield\u003e \u003d \u003cvalue\u003e\".\n\nChange-Id: I47aee563b26e04f4931ac1cf3de2cd2e38db35a7\n"
    },
    {
      "commit": "f03b8f66511a2d8cb78d306f36feb51392232a5e",
      "tree": "c35ac2c2e05895d1a9eb630c2b9f5eef58959810",
      "parents": [
        "4e235316b4ada4d865c544d9b4ba397139333fa6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 14:26:25 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 14:26:25 2011 -0800"
      },
      "message": "Implement \"SetArrayElements\".\n\nChange-Id: Ied1ac300a8bf9593bcd7c1340262d08f75ebe53f\n"
    },
    {
      "commit": "4e235316b4ada4d865c544d9b4ba397139333fa6",
      "tree": "bb9296420fe8ff9e44f1ddf4e95c8b5be08a1e9f",
      "parents": [
        "1bba14f20039b6e706b719fdd5754eb30088d014"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 11:34:15 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 11:34:15 2011 -0800"
      },
      "message": "Implement \"GetThreadGroupParent\", \"Suspend\", and \"Resume\".\n\nThis is enough to get the GUI jswat working for poking around\nthreads, stacks, and locals.\n\nChange-Id: Ib02d9666cee8d39c09e4a09cf3961cebff1768ac\n"
    },
    {
      "commit": "1bba14f20039b6e706b719fdd5754eb30088d014",
      "tree": "be62972c4ff6a9afca9cf05259b624f4cdadafd9",
      "parents": [
        "c1f143de3d0370a17a4561eb83bf10a5d7908aa3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:00:36 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:41:01 2011 -0800"
      },
      "message": "Implement getting of 64-bit locals (double, long).\n\nAlso implement the JDWP \"GetClassLoader\" request, used by jswat\u0027s \"classes\"\ncommand.\n\nAlso implement the JDWP \"exit\" request, tested with jswat\u0027s \"shutdown\".\n\nChange-Id: Ic8424a332151242211d8a772721deb3199b24682\n"
    },
    {
      "commit": "c1f143de3d0370a17a4561eb83bf10a5d7908aa3",
      "tree": "a4839595b944473d3bd2c06e83dcb276a460de2f",
      "parents": [
        "c5b734a27a64c81590015dd12a7901c396818a99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:31:10 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:31:10 2011 -0800"
      },
      "message": "Remove some lint.\n\nChange-Id: Ieecd7c10e62bce27e2db38f96d5df9782ef0cff6\n"
    },
    {
      "commit": "c5b734a27a64c81590015dd12a7901c396818a99",
      "tree": "d910c888f082e555381f003e19b7055a3ab70dc8",
      "parents": [
        "f8a2df7bbf1021058bc13d1f806a7fec3c89ee62"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:20:58 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 17:20:58 2011 -0800"
      },
      "message": "Fix a dalvik bug in reporting the local variable table.\n\nThis still doesn\u0027t completely fix things; I\u0027ve added a TODO.\n\nChange-Id: I5e4eefeeac1344f3d50532b7c143c6acd3214525\n"
    },
    {
      "commit": "f8a2df7bbf1021058bc13d1f806a7fec3c89ee62",
      "tree": "4ae8df1e0867c6e127e8ca976d7b52f28ed5b46b",
      "parents": [
        "24437995cdac88b42e42b16d9aa121e833330999"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 12:19:54 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 12:19:54 2011 -0800"
      },
      "message": "Fix a couple of JDWP bugs.\n\nFirst, dalvikvm\u0027s behavior of just carrying on if it failed to set up JDWP was\nthe opposite of helpful. It\u0027s wasted loads of my time lately, and I\u0027ve already\nbenefitted in the half hour since making this a hard stop.\n\nSecond, I was accidentally reporting upcall frames. I don\u0027t know why I wasn\u0027t\nalways seeing this -- because we always make an upcall to \u0027main\u0027 -- but it was\nrepeatable if the stack was short enough.\n\nChange-Id: Iee14867f596436bed5ca0546db71e62b62d11f41\n"
    },
    {
      "commit": "24437995cdac88b42e42b16d9aa121e833330999",
      "tree": "3d6cb71a3301541f37c49fe7db3722d91a41ff90",
      "parents": [
        "8c364127225f9b0da8ab0aa817d0b6915145e60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 14:49:33 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 16:37:22 2011 -0800"
      },
      "message": "More JDWP array support.\n\nThis lets you examine array elements in jdb.\n\nChange-Id: I74698496311015b4ba8fc5bdad15a21904106316\n"
    },
    {
      "commit": "8c364127225f9b0da8ab0aa817d0b6915145e60b",
      "tree": "6b2464113c68b233b1a95b7a3310110bb9bc5502",
      "parents": [
        "08ba38069bbc5e59aa0d583919d3aa8604a51aef",
        "392b1248a79ed440014ad77c28411c9f5c52362a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 14:16:10 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 30 14:16:10 2011 -0800"
      },
      "message": "Merge \"Fix \u0027locals\u0027 for methods with arguments that were compiled without -g:locals.\" into dalvik-dev"
    },
    {
      "commit": "392b1248a79ed440014ad77c28411c9f5c52362a",
      "tree": "2c134c3eac6cdc54ac5546f5b20bbe1d9f5f4bce",
      "parents": [
        "6cb58afbc1cb1cec4220f49febda2177b2c0bfce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 13:55:50 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 13:55:50 2011 -0800"
      },
      "message": "Fix \u0027locals\u0027 for methods with arguments that were compiled without -g:locals.\n\nThis was a transcription error from the original libdex code. That code translated\nthe string index anyway and then checked that against NULL, but I think it\u0027s both\nclearer and closer to the .dex format documentation if we check for NO_INDEX instead.\n\nChange-Id: I1f9c4943641468f5fc2b2c5c5f07f95ac6911677\n"
    },
    {
      "commit": "45b9e6eb4f1e4ca3466e6a6b0124817d97e4d959",
      "tree": "46ef746392874d6c36994b9ac513e41a322119b2",
      "parents": [
        "6cb58afbc1cb1cec4220f49febda2177b2c0bfce",
        "1de898bdd39e1c9b9cce195fea924cad9cdde78e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 30 12:13:48 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 30 12:13:48 2011 -0800"
      },
      "message": "Merge \"Disable death test on the host\" into dalvik-dev"
    },
    {
      "commit": "6cb58afbc1cb1cec4220f49febda2177b2c0bfce",
      "tree": "7c2925682bb3eded2cc608a3aa29765587bcab78",
      "parents": [
        "50e537e4ad78897295c77ec21f4ef9cd45c99528",
        "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:41 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 30 12:11:41 2011 -0800"
      },
      "message": "Merge \"Return values for locals, so \"locals\" can show them.\" into dalvik-dev"
    },
    {
      "commit": "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3",
      "tree": "b8982040e6a2fe250b3db127ea0b1dfdba552616",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:22:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:23 2011 -0800"
      },
      "message": "Return values for locals, so \"locals\" can show them.\n\nAlso implement a couple of other JDWP commands so jdb can show the length\nof arrays and the value of strings.\n\nChange-Id: Ib2a4dc2ee784ee10bdb924e91b0150aa8a96845d\n"
    },
    {
      "commit": "1de898bdd39e1c9b9cce195fea924cad9cdde78e",
      "tree": "48b43a9f4f0ff038c459185a5f23c36d024f7d20",
      "parents": [
        "50e537e4ad78897295c77ec21f4ef9cd45c99528"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 30 11:59:44 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 30 12:08:49 2011 -0800"
      },
      "message": "Disable death test on the host\n\nBug: 5690440\nChange-Id: I0867fd4154e4bb0eb8cfe6ca6bdb03adad212dd0\n"
    },
    {
      "commit": "50e537e4ad78897295c77ec21f4ef9cd45c99528",
      "tree": "eb6aef3edc9c8fb5a6bbe318ac629026667639c3",
      "parents": [
        "bb1104b42675e82105df7af53eff39547ccbbf4a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:53:29 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 17:09:48 2011 -0500"
      },
      "message": "Add \u0027const\u0027 to signature in FindConstructorOrMethodInArray\n\nChange-Id: I17e134f6b4b7d920574dbf399f7d6baf2a0737f6\n"
    },
    {
      "commit": "bb1104b42675e82105df7af53eff39547ccbbf4a",
      "tree": "5f1b29762dfa376d3af4811c540fd59305f4dc9d",
      "parents": [
        "ae826983f7903bc0a6bbbe8426bf393fb2f6d747",
        "53494318448f783b89c20d7b42be7a608b168de1"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 13:49:51 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 13:49:51 2011 -0800"
      },
      "message": "Merge \"Move the exception check to after the code that throws the exception.\" into dalvik-dev"
    },
    {
      "commit": "ae826983f7903bc0a6bbbe8426bf393fb2f6d747",
      "tree": "6fb83f2b19a1a50ade3c93cbf10485cd8fbc793f",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 09 01:33:42 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 13:46:50 2011 -0800"
      },
      "message": "Add --image-classes to dex2oat\n\nChange-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67\n"
    },
    {
      "commit": "53494318448f783b89c20d7b42be7a608b168de1",
      "tree": "d89b9e892797868b0393814b62798beae9536e2d",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:43:09 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 29 16:43:09 2011 -0500"
      },
      "message": "Move the exception check to after the code that throws the exception.\n\nI\u0027d mistakenly put the exception check after the method lookup,\nbut the exception was actually thrown by IsVisibleField(). The\ntest passed because this class had multiple fields to initialize.\n\nChange-Id: I7c76abfad5d90cc36cb4fadedeb6628ca51ed433\n"
    },
    {
      "commit": "c4b819fb14ab3fd6e4e5698ab840b8d4132ac991",
      "tree": "9151ec97a82a3886595de82512bc168f6803ab63",
      "parents": [
        "4965b661a6edc7f263b6fef1439b03ca8c95da49",
        "5ead0950c661761e90e04aefd6ea2205532ce874"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 09:57:19 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 09:57:19 2011 -0800"
      },
      "message": "Merge \"Skip classes in app compilation if they are from boot class loader\" into dalvik-dev"
    },
    {
      "commit": "5ead0950c661761e90e04aefd6ea2205532ce874",
      "tree": "3f83ea4c1d0a364c461fba909e7a429435b120d1",
      "parents": [
        "2f6bd951af6ef1e2baedd38fa02908121c5f3d9d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 28 22:55:52 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 29 09:56:38 2011 -0800"
      },
      "message": "Skip classes in app compilation if they are from boot class loader\n\nChange-Id: Iab767d9af6a71b59779e5140b6d7f7dca8f538ff\n"
    },
    {
      "commit": "4965b661a6edc7f263b6fef1439b03ca8c95da49",
      "tree": "8a9feb389cf37293929a329634efac2629be63a5",
      "parents": [
        "2f6bd951af6ef1e2baedd38fa02908121c5f3d9d"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 28 16:06:57 2011 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 28 16:06:57 2011 -0800"
      },
      "message": "Compiler fix for issue #5649968\n\nSee http://b/issue?id\u003d5649968 for details.\n\nAdd definition of lr to resource masks for vldrs and vldrd to\nprevent bad scheduling operation.\n\nChange-Id: Ib108dd1a280d699fd929754ce7ee2dd62a04991e\n"
    },
    {
      "commit": "2f6bd951af6ef1e2baedd38fa02908121c5f3d9d",
      "tree": "99300707c9ef0e76eec234fc1db53d8e694359df",
      "parents": [
        "861dd15be123c9faf4baf4cb7e784afcd1db4e3e",
        "c129a6b44193ac3a872f852a69d336e0e7ed8640"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Sat Nov 26 07:44:37 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 26 07:44:37 2011 -0800"
      },
      "message": "Merge \"Make methods and fields accessible by default in art.\" into dalvik-dev"
    },
    {
      "commit": "c129a6b44193ac3a872f852a69d336e0e7ed8640",
      "tree": "ff5b5503aff4e5173c570b2e471d2df0895b7b2b",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "message": "Make methods and fields accessible by default in art.\n\nThis also fixes a corner-case bug where calling Field.setBoolean()\non a non-boolean field would crash the runtime.\n\nChange-Id: I2f6693e3c3fe3bf23b4761335300506b3fbd3008\n"
    },
    {
      "commit": "861dd15be123c9faf4baf4cb7e784afcd1db4e3e",
      "tree": "0ad72926258cd3b73118f7b6b0f375a13b526c02",
      "parents": [
        "47daf8794bf1ce8eba3f7d185af08f177a003396",
        "4ed21576f4ff58d37c872c4c790823d80d90d249"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 08:37:37 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 24 08:37:37 2011 -0800"
      },
      "message": "Merge \"Fix reflection to throw rather than crash when a type is not loaded.\" into dalvik-dev"
    },
    {
      "commit": "4ed21576f4ff58d37c872c4c790823d80d90d249",
      "tree": "02bd0c4fb08e30c9114292a4cdccd47b9b338b6c",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 13:23:23 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 13:23:23 2011 -0500"
      },
      "message": "Fix reflection to throw rather than crash when a type is not loaded.\n\nThis was caught by MissingClassesTest.\n\nChange-Id: I719649c0efc5aceb1c4594cfa69f6a0d407fcacb\n"
    },
    {
      "commit": "47daf8794bf1ce8eba3f7d185af08f177a003396",
      "tree": "28bca21edf8cc3695c97d2d418ab91910e0bdf85",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 11:42:45 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 23 11:42:45 2011 -0500"
      },
      "message": "Fix the compiler to resolve against the boot class loader first.\n\nI encountered a bug due to vogar including its own ancient copy\nof Kxml. We were using vogar\u0027s Kxml at compile time and the boot\nclass path\u0027s Kxml at runtime, resulting in incorrect behavior.\n\nThis fixes the class linker to use the same parent-first strategy\nin the compiler as in the runtime.\n\nThe result is that compiling vogar with the ancient Kxml will now\ncrash the compiler (fail fast) rather than doing undefined bad\nthings at runtime.\n\nI\u0027ve opened bug http://b/5663506 to fix the compiler to throw\nlinkage errors at runtime rather than crashing.\n\nChange-Id: I60702e8687f1b763b58895e7f75c6abeb32a11a0\n"
    },
    {
      "commit": "434424a3f60f2129aaa1780ac6a5c2618bc789e0",
      "tree": "785df7257b16058bf27d977230ee168d9fbda63e",
      "parents": [
        "30ca23f9ef5e8898c61ff0f6d9320a57933b4254",
        "078f9b06c48900efca8b79856444b2b57579016b"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 16:28:42 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 22 16:28:42 2011 -0800"
      },
      "message": "Merge \"Fail in the right place when we cannot allocate a mark stack.\" into dalvik-dev"
    },
    {
      "commit": "078f9b06c48900efca8b79856444b2b57579016b",
      "tree": "b82cc9773e7011b4cadbdb4ac4f7de559afa59f3",
      "parents": [
        "03181a828cd493545b278e0aa4f150fdaf1e3325"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Nov 18 17:51:47 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 19:21:09 2011 -0500"
      },
      "message": "Fail in the right place when we cannot allocate a mark stack.\n\nPreviously we\u0027d keep going and then crash when dereferencing\nthe mark stack later. I expected dalvikvm to throw an OutOfMemoryError\nin this scenario but it also aborts.\n\nChange-Id: I3cd995113561f40b191fcb51ecfcb1f032bed4ec\n"
    },
    {
      "commit": "30ca23f9ef5e8898c61ff0f6d9320a57933b4254",
      "tree": "74cf7f70a75cd2721795e09ad02e75a5cba64381",
      "parents": [
        "32f8569b58142eb93f6fa88c2cbfc4c619a95ee8",
        "1b2b2f26c4202020d54cc7a5b9c342e6bca5b680"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 10:36:45 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 22 10:36:45 2011 -0800"
      },
      "message": "Merge \"Don\u0027t set the context class loader until it has been created.\" into dalvik-dev"
    },
    {
      "commit": "1b2b2f26c4202020d54cc7a5b9c342e6bca5b680",
      "tree": "7c100a95a820bd3534253dee613588420a42973b",
      "parents": [
        "8ea36f84a1fff2943127ef21ce371c99a7d191af"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:47:44 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:47:44 2011 -0500"
      },
      "message": "Don\u0027t set the context class loader until it has been created.\n\nWe had a bug where we were setting the main thread\u0027s context\nclass loader to null because we hadn\u0027t created it yet. This\nmoves the setting of the context class loader to after it has\nbeen created.\n\nChange-Id: Ib4be1be646ade4c426dda3ced30ae1ba37ddd0f6\n"
    },
    {
      "commit": "32f8569b58142eb93f6fa88c2cbfc4c619a95ee8",
      "tree": "50812f7eaddade06df5875d01cf3e6135666d2b7",
      "parents": [
        "8ea36f84a1fff2943127ef21ce371c99a7d191af"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:00:41 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:00:41 2011 -0500"
      },
      "message": "Don\u0027t crash if the stack state is empty.\n\nThis only happens when throwables override fillInStackTrace().\n\nChange-Id: I4513b53491e293725ba9e914228bdc19526ab874\n"
    },
    {
      "commit": "8ea36f84a1fff2943127ef21ce371c99a7d191af",
      "tree": "1928f6ac2684401f19bc32c49458ecd1e0aa9210",
      "parents": [
        "dbb4079eb1e7d7738c81a97c8dd2550885c1093a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 21 10:35:06 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 21 10:35:06 2011 -0500"
      },
      "message": "Prefer non-synthetic methods in Class.getMethod()\n\nThis fixes four failing tests in MethodOverridesTest.\n\nChange-Id: I758a7b914554ff2b03d8ecce1b5df8d502f0b827\n"
    },
    {
      "commit": "dbb4079eb1e7d7738c81a97c8dd2550885c1093a",
      "tree": "733d5c08027ae65fb89132609d2aec9e6e2d747d",
      "parents": [
        "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:05:22 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:47:00 2011 -0800"
      },
      "message": "Start implementing jdb \"locals\".\n\nThis lets us show the names and types of the locals, but all the values\nwill show up as 0/null. We\u0027re going to have to walk the whole stack and\ntake callee-save frames into account to do that right.\n\nChange-Id: Ic6e115513b6e65ae7ed4b7274e70bc514e83190a\n"
    },
    {
      "commit": "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c",
      "tree": "df67a3a1ee1d3a92d687a051c2cbefdfd9e51936",
      "parents": [
        "03181a828cd493545b278e0aa4f150fdaf1e3325"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Nov 18 15:31:58 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Nov 18 16:29:02 2011 -0500"
      },
      "message": "Be compatible with dalvikvm on calls to env-\u003eNewString(NULL, 0);\n\nThe previous behavior was causing libcore.java.util.OldScannerTest to\nfail with NullPointerExceptions.\n\nChange-Id: I8c9b4e496e6d17a0ad8be10888daa52ac8d178b7\n"
    },
    {
      "commit": "03181a828cd493545b278e0aa4f150fdaf1e3325",
      "tree": "eda89723d770a75c104170b6e1a09feb44053e3d",
      "parents": [
        "499c5133d361e7c659fc38e5ccfeb1280a7996f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:22:21 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:41:59 2011 -0800"
      },
      "message": "Implement debugger support for getting thread stacks.\n\nYou can now \"where all\" in jdb.\n\nChange-Id: Iccff0427f39b2f2ab3786f05b89850d50b87adb2\n"
    },
    {
      "commit": "499c5133d361e7c659fc38e5ccfeb1280a7996f5",
      "tree": "1b7d865502e90b32483f3cf69f7b3217ea821e0f",
      "parents": [
        "a2e54f61453a2072181d5dd7aa2d5e845f5b53f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 14:55:11 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 14:55:11 2011 -0800"
      },
      "message": "Implement debugger support for the \"threads\" command.\n\nChange-Id: I266d28ee00d87fdc7ecb179ddf52634db96e573c\n"
    },
    {
      "commit": "a2e54f61453a2072181d5dd7aa2d5e845f5b53f6",
      "tree": "4ca063dd40b4c246097aa31d4d79ddf14d0420a7",
      "parents": [
        "761928d24e4e7ed7776b52243eaf9095ad35f448"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 13:01:30 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 13:01:30 2011 -0800"
      },
      "message": "More debugger support.\n\nThis lets you attach jdb. Quitting will let your program run to completion.\nThis also fixes the \"class\", \"fields\", and \"methods\" commands.\n\nChange-Id: I6645f52dd8b5847454a553c31c80a2f5bf8f1000\n"
    },
    {
      "commit": "761928d24e4e7ed7776b52243eaf9095ad35f448",
      "tree": "62a9d0c880c5412050e3eabe73c106c5374555dc",
      "parents": [
        "a215526d5c789cbef0f81a1f9aba22541a841cca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 18:33:03 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 09:55:08 2011 -0800"
      },
      "message": "Implement a bit more debugger functionality.\n\nThis fixes the deadlock by making SuspendSelfForDebugger not take the thread\nlist lock, making it more like the equivalent code in dalvikvm.\n\nThere\u0027s also some code cleanup, and a few more of the JDWP calls jdb makes\non startup. By fixing the deadlock, attaching jdb now causes us to hit\nunimplemented code relating to thread stacks. That\u0027s tomorrow\u0027s job...\n\nChange-Id: I7eac1b95946228fa60666587ff8766bcabb28bb1\n"
    },
    {
      "commit": "a215526d5c789cbef0f81a1f9aba22541a841cca",
      "tree": "4d6baa6e24d41027300bd22a7b7746267dd45f23",
      "parents": [
        "254db0ff7ea6509a1c2914b1d9532e2041a0c4c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:26:58 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:56:41 2011 -0800"
      },
      "message": "Implement enough JDWP functionality that we can attach jdb.\n\nYou can also try \"classes\" and \"classpath\", though anything else\ndeadlocks because we\u0027re suspended but jdb thinks we aren\u0027t. I don\u0027t\nthink that\u0027s a new bug with this patch, though, so I\u0027ll look at that\nnext.\n\nChange-Id: I54456b6a7fe72642be696c66aa485dc0c8a7f913\n"
    },
    {
      "commit": "254db0ff7ea6509a1c2914b1d9532e2041a0c4c4",
      "tree": "2b76fd513207c6679a50a91638d95361e9a05ae6",
      "parents": [
        "9b1a4f425711c26d0465d54a1cb95ec4a813322a"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 16 16:44:11 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 16 17:21:45 2011 -0500"
      },
      "message": "Pass the classpath to dex2oat.\n\nThis makes it possible to run applications that have multiple\ndex files on the classpath.\n\nChange-Id: I15264a001a46ddb253e87f2739e6b9644348f1be\n"
    },
    {
      "commit": "9b1a4f425711c26d0465d54a1cb95ec4a813322a",
      "tree": "07a996d94ad42313f100b3912a608aceead6c6b8",
      "parents": [
        "b861dc0077342d5a1d2dd9cade3f6990620778ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 18:35:10 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 18:45:22 2011 -0800"
      },
      "message": "Refactor testing to use dex file find routines.\n\nChange-Id: I0abdbd06c7666f23490241984e4d4340d398e18b\n"
    },
    {
      "commit": "b861dc0077342d5a1d2dd9cade3f6990620778ec",
      "tree": "0a1b245bf33351274d2fb0189c44ed37e83912c9",
      "parents": [
        "0c806e2b89662091c0c073a9c289629a66630245"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 17:00:05 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 17:07:49 2011 -0800"
      },
      "message": "Extra debug info, make dump stack slightly more tolerant of bad input.\n\nChange-Id: I33b0ba5158ff60dcdb94fa8d831c193b4ea124ed\n"
    },
    {
      "commit": "0c806e2b89662091c0c073a9c289629a66630245",
      "tree": "5467b3bfe7a720869358638d48781bfda219a341",
      "parents": [
        "9a6bae896a2f003d7216603bf29771d105c10ca4",
        "a3760aad59f41bb0b1d46733165a2d7219ecca73"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 16:03:32 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 14 16:03:32 2011 -0800"
      },
      "message": "Merge \"Refactor the use of Method by the oat compiler.\" into dalvik-dev"
    },
    {
      "commit": "a3760aad59f41bb0b1d46733165a2d7219ecca73",
      "tree": "28c031bac11cc172f04b8943e189bf1d065acd9c",
      "parents": [
        "169c9a7f46776b235d0a37d5e0ff27682deffe06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 14:32:37 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 15:40:11 2011 -0800"
      },
      "message": "Refactor the use of Method by the oat compiler.\n\nChange-Id: Ib0ee18ed06846f82567f746edc7a5049dc6215df\n"
    },
    {
      "commit": "9a6bae896a2f003d7216603bf29771d105c10ca4",
      "tree": "ccf8c190b8b4daf799e17ec8b04b77edfc5c72ff",
      "parents": [
        "169c9a7f46776b235d0a37d5e0ff27682deffe06"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 14:57:30 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 17:46:40 2011 -0500"
      },
      "message": "Don\u0027t run managed code until the runtime has started.\n\nPreviously we ended up running managed code because JNI was\ntriggering class initializers to run. This was triggered by\nboth Thread::CreatePeer() and InitBoxingMethods().\n\nWhen these initializers were prevented from running, other\ncode broke:\n - Creating the peer for the main thread was relying on\n   ThreadGroup.\u003cclinit\u003e to assign the built-in thread groups.\n - Creating the boxed methods caused class initialization of\n   the primitive wrapper classes; these need to be initialized\n   before Thread.\u003cclinit\u003e is run to avoid a crash in its own\n   initializer.\n\nThis change works around those breaks by splitting thread peer\ncreation into two parts (allocation and running \u003cinit\u003e) and\nby calling InitBoxingMethods() during runtime start.\n\nChange-Id: I44be7170ce08451adf876ee73cba0f1f66d5a59e\n"
    },
    {
      "commit": "169c9a7f46776b235d0a37d5e0ff27682deffe06",
      "tree": "9bd38fe9508e827089d546f04b0b42020eef821e",
      "parents": [
        "0571d357843c53e042f370f5f2c2e9aa3fe803a9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 20:13:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 09:27:23 2011 -0800"
      },
      "message": "Remove the use of Method from jni_compiler\n\nChange-Id: Ibf1c72a806e7f1ba7a2d83960c3d57f41937d336\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "33dc7717cd16592bcc825350bea6305be9eb2ea1",
      "tree": "da0643d598a30d0fb3e63ba036f53cbda1e011fd",
      "parents": [
        "72db0d77d6c476c71c5bbaa14a80ca77f23a47f3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 17:54:24 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Nov 11 10:51:43 2011 -0800"
      },
      "message": "Changed monitor to contain method and return pc values for logging.\n\nThe monitor saves method and return pc for logging, instead of the\nsource filename and line number. This saves it from having to do a\nlookup every time a fat lock is acquired.\n\nChange-Id: I88871abc90626b9e4dffc9677c093fd24937385c\n"
    },
    {
      "commit": "72db0d77d6c476c71c5bbaa14a80ca77f23a47f3",
      "tree": "81fad78f6c916426f4a8374284934e0c00f8623a",
      "parents": [
        "41df06566cdf8b4b01af8225a2c61509aaef57df"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 10 17:58:56 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 10 17:58:56 2011 -0800"
      },
      "message": "Adjust stack size for system_server\n\nChange-Id: I926f07f911fdb78bc5d817ecf9a0820f463c49c8\n"
    },
    {
      "commit": "21f32d704a21bcd67d7b87b149b6314ff92946cb",
      "tree": "5546826bb2f700d88f3561c660b6e74eefc52b7d",
      "parents": [
        "545a064aca775ba801790fced3d713d8a87bfc61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 17:44:13 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 18:21:37 2011 -0800"
      },
      "message": "Fix some DDMS stuff I\u0027d broken, and fix HexDump\u0027s double-spacing.\n\nChange-Id: I6583458a818406197744cc640b0993f73cfd5384\n"
    },
    {
      "commit": "545a064aca775ba801790fced3d713d8a87bfc61",
      "tree": "5c7aefe4e2ec7736f1fc8eea3b99a9df05bbae1c",
      "parents": [
        "3697d2459983c1f0a3d6efaefb2b6a1110af28df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 08 19:10:03 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 15:58:49 2011 -0800"
      },
      "message": "Implement DDMS recent allocation tracking.\n\nChange-Id: I7cec7311ba496f93e147ae17fbce94d4d17b5269\n"
    },
    {
      "commit": "3697d2459983c1f0a3d6efaefb2b6a1110af28df",
      "tree": "26e90768554a852abb68890bb6fc75b0465b87cf",
      "parents": [
        "0c54ac102a3c489d284a8db5d91189da5b455c40",
        "a757fac9b2f37d8789e66749c05bcfd284969f59"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 15:24:19 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 09 15:24:19 2011 -0800"
      },
      "message": "Merge \"Fix for GetCurrentLocation when stack is empty.\" into dalvik-dev"
    },
    {
      "commit": "a757fac9b2f37d8789e66749c05bcfd284969f59",
      "tree": "6ee56e58873766c240266133cb1a8ae1466245c1",
      "parents": [
        "3aa66fd01a2b5ddbb895dd0af983cb2b700fbdc3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 15:09:59 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 15:09:59 2011 -0800"
      },
      "message": "Fix for GetCurrentLocation when stack is empty.\n\nGetCurrentLocation now returns a dummy value and line number when the\nstack is empty. This prevents problems with logging during locking when\na thread tries to join, where its stack would be empty.\n\nChange-Id: Ib49ac6fd86655bce579524bf7f165e95ae829d9a\n"
    },
    {
      "commit": "0c54ac102a3c489d284a8db5d91189da5b455c40",
      "tree": "a76974705e968b92809de7355574261c017eeae7",
      "parents": [
        "0b075f18e69959f5afbe6d815a766df082ec99df"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 09 15:14:05 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 09 15:16:34 2011 -0500"
      },
      "message": "Divide up hprof code by classes.\n\nThis divides the _class, _heap, _output and _string files\namong hprof.cc and hprof_record.cc.\n\nThis removes the use of mutex locks on class and string\ncollections. This does not otherwise change the body of any\nfunctions, just which files they live in.\n\nChange-Id: I88521529dbe3e00bd88ec0030a6105dceda9500d\n"
    },
    {
      "commit": "0b075f18e69959f5afbe6d815a766df082ec99df",
      "tree": "d984a8ca66e45d7522eadd191dc1e4d0962dabcc",
      "parents": [
        "3aa66fd01a2b5ddbb895dd0af983cb2b700fbdc3"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 09 10:57:41 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 09 10:57:41 2011 -0500"
      },
      "message": "Adjust whitespace in hprof.\n\nChange-Id: Ia84f3a13fa240e05fbd701bac64f5a2e95c6a97c\n"
    },
    {
      "commit": "3aa66fd01a2b5ddbb895dd0af983cb2b700fbdc3",
      "tree": "4723ed30ef64776c506fce8c9aed2555a0bd9d46",
      "parents": [
        "fbd8456d22ff7deeaf872df6fc5b82aab39e799c"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 08 20:53:40 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Nov 09 10:14:11 2011 -0500"
      },
      "message": "Hprof code cleanup.\n\nThis replaces a bunch of structs+functions with C++ objects\nand member functions. It shortens names where unambiguous and\nreduces visibility where plausible.\n\nThe main two changes are to create Hprof and HprofRecord classes\n(from the hprof_record_t and hprof_context_t structs) and moves\nfunctions into the classes. It uses stack allocation for the Hprof\nobject, which saves a few allocation-failure checks. And it uses\nconstructors and destructors rather than functions that do those\nthings.\n\nThis change should not alter behavior.\n\nChange-Id: I62ce97fae3c1ba6e2ea89fdfdca915b013072868\n"
    },
    {
      "commit": "fbd8456d22ff7deeaf872df6fc5b82aab39e799c",
      "tree": "a64da1379485c26e34b9b7ea2e3d4de95650bf99",
      "parents": [
        "8218847294600bbfcdc041a46c2b579b6e70cf3b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:56:13 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:56:13 2011 -0800"
      },
      "message": "Fix hprof dumping from DDMS.\n\nHprof needs to use Get32 and Get64 (or handle every single type specially) ---\nyou can\u0027t GetInt on a char[] field, say, like this code used to do.\n\nChange-Id: I37eda049b7f341f8ad3c8326b9bcf2997efd7b04\n"
    },
    {
      "commit": "8218847294600bbfcdc041a46c2b579b6e70cf3b",
      "tree": "4beb913b0a0d3410fb1b6f9b690c63c7aefb53bd",
      "parents": [
        "6c9c06dbb0b16714079afaedbebd3d548aa832b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:11:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:11:48 2011 -0800"
      },
      "message": "Implement thread name change notification for DDMS.\n\nChange-Id: If63d89991951989f27ee267895244e115661dce9\n"
    },
    {
      "commit": "6c9c06dbb0b16714079afaedbebd3d548aa832b2",
      "tree": "9b0ae57d2eb1e977a07f2837ac81397e8b227571",
      "parents": [
        "fb85604748667491610e309c868f80de2b7865c1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 16:43:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 17:02:46 2011 -0800"
      },
      "message": "Use ashmem to name our various anonymous regions.\n\nChange-Id: If64576b831a2fdcb83ffce40e6ec8ece8d902672\n"
    },
    {
      "commit": "fb85604748667491610e309c868f80de2b7865c1",
      "tree": "3c733ec8dd02a3431f3b9f4e01ee577675e44e54",
      "parents": [
        "919b20bbc1220510ee40309dd39cec8bd9435c0a",
        "aaed81d457388161e444486a9c87aa4c57d925e2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 15:48:23 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 15:48:23 2011 -0800"
      },
      "message": "Merge \"Warn if a GC takes \u003e 100ms, even if -verbose:gc isn\u0027t on.\" into dalvik-dev"
    },
    {
      "commit": "aaed81d457388161e444486a9c87aa4c57d925e2",
      "tree": "48aa6e56d965a358ad411d3347526dc7b0f90081",
      "parents": [
        "bbd9d830fe0eb8ce44405d7504dcf9a6fe91ffa1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 15:11:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 15:11:47 2011 -0800"
      },
      "message": "Warn if a GC takes \u003e 100ms, even if -verbose:gc isn\u0027t on.\n\nI haven\u0027t actually seen this in practice, but it does mean we can\nrule GC out if we notice a pause and there\u0027s no GC logging. This might\nalso be useful if we change the launcher so apps aren\u0027t all launched\nwith -verbose:gc, as seems likely to happen eventually.\n\nChange-Id: I06eba14740307eb75f70a4fab1f81443d18ebc3a\n"
    },
    {
      "commit": "919b20bbc1220510ee40309dd39cec8bd9435c0a",
      "tree": "c056e6c2c39039017c67f56937a0ffc839b21846",
      "parents": [
        "bbd9d830fe0eb8ce44405d7504dcf9a6fe91ffa1",
        "1121e0b619d0c9df36c57396b2234a9d570b4923"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 15:05:45 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 15:05:45 2011 -0800"
      },
      "message": "Merge \"Wire up hprof.\" into dalvik-dev"
    },
    {
      "commit": "1121e0b619d0c9df36c57396b2234a9d570b4923",
      "tree": "958c023685f88bcffc7626eb3bc7f8e37db1aa02",
      "parents": [
        "9717051c5c961d7b2d809654adc2a135fca8e6db"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 15:37:42 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 18:03:57 2011 -0500"
      },
      "message": "Wire up hprof.\n\nI tested this with test 074-gc-thrash, which creates a .hprof file\nthat can be read with hat.\n\nChange-Id: Ie75b7a7cf3c2ee32189df47ab0129e99449ebc6c\n"
    },
    {
      "commit": "bbd9d830fe0eb8ce44405d7504dcf9a6fe91ffa1",
      "tree": "211747a79d87a2412c156e42713eea4638bbc340",
      "parents": [
        "c2f8006ede3d07ca53467fa73573bdbfb864a65e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 14:40:00 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 14:40:00 2011 -0800"
      },
      "message": "Fix at least two deadlocks.\n\nPretty much every caller that takes the thread list lock can then go on to\ncause allocation, which requires the heap lock. The GC always takes the heap\nlock first and the thread list lock second (to suspend/resume other threads).\nCue deadlocks.\n\nThis patch is a pretty degenerate fix that basically makes the thread list\nlock irrelevant; we now always take the heap lock first.\n\nChange-Id: I0537cffb0b841bfb5033789817793734d75dfb31\n"
    },
    {
      "commit": "c2f8006ede3d07ca53467fa73573bdbfb864a65e",
      "tree": "80e24f98bbd9653790d468dcb057a6ce0016a80a",
      "parents": [
        "b1f9f22cd16929925b8330c7ee95c8a29a6e554c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 11:57:51 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 11:57:51 2011 -0800"
      },
      "message": "Make sure that SignalCatcher says what\u0027s going on _before_ it can get stuck.\n\nWe regressed here recently. The new code is a bit neater anyway.\n\nChange-Id: I5a786e53fc24043dce56f13357c995da6b239976\n"
    },
    {
      "commit": "b1f9f22cd16929925b8330c7ee95c8a29a6e554c",
      "tree": "5961fb1a07fd079d3b775b95088a9aedeb948903",
      "parents": [
        "9717051c5c961d7b2d809654adc2a135fca8e6db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 04 18:04:00 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 10:56:22 2011 -0800"
      },
      "message": "Fix a TODO regarding flock(2) and TEMP_FAILURE_RETRY.\n\nChange-Id: I8d2a4ac97eedcad52f596b443f987ec942dee59e\n"
    },
    {
      "commit": "9717051c5c961d7b2d809654adc2a135fca8e6db",
      "tree": "3827e7d0008180e718dc53ed56dacd0ed27eaf40",
      "parents": [
        "f6d8ce36932f279ad1a6678c744f810d2f1fa931"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 06 21:06:20 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 06 21:06:20 2011 -0800"
      },
      "message": "Don\u0027t delete oat files when not generating image.\n\nChange-Id: I86159ee7ecaf38c07833e43fd9b805727c884362\n"
    },
    {
      "commit": "f6d8ce36932f279ad1a6678c744f810d2f1fa931",
      "tree": "63bddb1d7aa13d6cbfed13c221be9dfe83f4999e",
      "parents": [
        "39da035d99b6e81e8ca8d9b99da16984f2993dd6",
        "234da578a2d91ed7f2ef47b2ec23fb0033e2746b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 04 17:21:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 04 17:21:18 2011 -0700"
      },
      "message": "Merge \"Basic file locking.\" into dalvik-dev"
    },
    {
      "commit": "234da578a2d91ed7f2ef47b2ec23fb0033e2746b",
      "tree": "f0d92cfd9163ebc00a94d629c9606f523821d2c8",
      "parents": [
        "cac6cc72c3331257fa6437b36a131e5d551e2f3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 22:13:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 04 16:09:39 2011 -0700"
      },
      "message": "Basic file locking.\n\nIf someone\u0027s already doing dex2oat, wait for them to finish rather\nthan duplicate their work.\n\nChange-Id: Id620c75e013cbbcc84f5bf62a7629533a95307df\n"
    },
    {
      "commit": "39da035d99b6e81e8ca8d9b99da16984f2993dd6",
      "tree": "94e5d27a97a241a179659c0fc79b092d6d39f1c0",
      "parents": [
        "cac6cc72c3331257fa6437b36a131e5d551e2f3c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Nov 04 14:58:55 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Nov 04 14:58:55 2011 -0700"
      },
      "message": "Changed card table to use less cards when heap size is limited.\n\nThe card table uses the growth limit of the heap to limit the number of\ncards it makes available for use. This gives it less cards to clean up\nwhile the heap is limited.\n\nChange-Id: Ia6520231d4abeda9604993ba28fd7ee7729a1ecb\n"
    },
    {
      "commit": "cac6cc72c3331257fa6437b36a131e5d551e2f3c",
      "tree": "f2d690a06397d3fceac391802925f48909e999d7",
      "parents": [
        "64155032b391fd7132bdd04ec0669135ae1176a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "message": "More SIGQUIT detail, earlier exit in AttachCurrentThread, handling recursive aborts, and reporting debug/optimized builds.\n\nChange-Id: I932b49a8e92a91e340b4d98b8771dd4a41b61229\n"
    },
    {
      "commit": "64155032b391fd7132bdd04ec0669135ae1176a2",
      "tree": "f5379d9cb293c9f5b370c40fe6c0df19fe24b2a3",
      "parents": [
        "f8a199cb0c53b7a6f0def21ec5b462992d93746b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 17:56:34 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 18:26:34 2011 -0700"
      },
      "message": "Added caching of indexes for annotations.\n\nThis is a multiproject change, along with changes to libcore and\nframeworks/base.\n\nChange-Id: I333ffd264f58667f1ee25845e1de12ca99a8c299\n"
    },
    {
      "commit": "ca3fbfee16977a2190ce6e97bc02841a23a0a5b3",
      "tree": "3d5eecc58d0fa57458414d8556a8b96e9b9819c3",
      "parents": [
        "b2062cfb7266fc52b7f03f00d26f0883f04986ae",
        "36e0a955e48e9357bff1eab783e493107ebfff62"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 02:00:03 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 03 02:00:03 2011 -0700"
      },
      "message": "Merge \"Don\u0027t attach attached threads.\" into dalvik-dev"
    },
    {
      "commit": "36e0a955e48e9357bff1eab783e493107ebfff62",
      "tree": "4716a5f66bc1c50611047dc14876fe3374fef396",
      "parents": [
        "5d4bdc29737a693027daaf6ed3f0792368eb4bae"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 01:54:59 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 01:54:59 2011 -0700"
      },
      "message": "Don\u0027t attach attached threads.\n\nChange-Id: Ibc9836fcd2f1ecd2d7040337433678577c72815e\n"
    },
    {
      "commit": "b2062cfb7266fc52b7f03f00d26f0883f04986ae",
      "tree": "886e0f675c5c9aadd4680b41d73abbd6e8e06163",
      "parents": [
        "5d4bdc29737a693027daaf6ed3f0792368eb4bae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 03 01:24:44 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 03 01:49:40 2011 -0700"
      },
      "message": "Avoid SetResolvedDirectMethod on failure to ResolveMethod\n\nChange-Id: I03b579a43ba4004b6441d5123f1ce402feb77624\n"
    },
    {
      "commit": "5d4bdc29737a693027daaf6ed3f0792368eb4bae",
      "tree": "6f1e9e59c2899488ab018d5cd8279641041f7634",
      "parents": [
        "5e863ddd72a70d33525f7403a695f7bc1c218938"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:15:43 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:56:53 2011 -0700"
      },
      "message": "Various runtime/JNI related fixes.\n\nNewObject returns NULL if exception is thrown in constructor.\nAllocate the peer then call constructor to ensure peer_ field is\ninitialized.\nChange thread state for AddFinalizer and pass current thread through for\nease.\n\nChange-Id: Ib578b6d44b08aef10fde5d8bc27cc6a2acbf6fae\n"
    },
    {
      "commit": "5e863ddd72a70d33525f7403a695f7bc1c218938",
      "tree": "03a66e970a14afbc047af04205cdda6204121f34",
      "parents": [
        "3fe79571ff3507d478a9d447f0d3fb99abadc7a8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 20:00:10 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 20:00:10 2011 -0700"
      },
      "message": "Make dex2oat fail early if it can\u0027t write oat file\n\nChange-Id: I4097110a76b5b5b3729c236d6cc6e47e2519ebe0\n"
    },
    {
      "commit": "3fe79571ff3507d478a9d447f0d3fb99abadc7a8",
      "tree": "e76201e438a51e04314efb067ff094c88b1234da",
      "parents": [
        "0b3a52a3ec75f1a248e040b267776c68d016e940"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 18:24:30 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 18:31:14 2011 -0700"
      },
      "message": "Make dex2oat more chatty with the log.\n\nChange-Id: I91421f210f30aa32d4885823c39c5a9f76740ded\n"
    },
    {
      "commit": "0b3a52a3ec75f1a248e040b267776c68d016e940",
      "tree": "4f639e995a2dc081a9a5f6e2e489d722b122eb69",
      "parents": [
        "ff9146509a092d23f6837525a24831a0e3fb5155",
        "55d249fc84c313aa071a717f53f9164fa49e2a59"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 02 17:12:02 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 17:12:02 2011 -0700"
      },
      "message": "Merge \"Fix monitor stack depth bug, allow unresolved field in put.\" into dalvik-dev"
    },
    {
      "commit": "55d249fc84c313aa071a717f53f9164fa49e2a59",
      "tree": "c9ded0ce67370294bfe7859405098d2d4932c452",
      "parents": [
        "3e49ad8b18c8dcaa842d9bfa503d61af022d8286"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 16:48:09 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 16:48:09 2011 -0700"
      },
      "message": "Fix monitor stack depth bug, allow unresolved field in put.\n\nChange-Id: I9625fc24c49e4d8e453ff545c50b0c64c0f1ae3b\n"
    },
    {
      "commit": "ff9146509a092d23f6837525a24831a0e3fb5155",
      "tree": "75f73f46db05aac2b92327c79345e1715dfa632a",
      "parents": [
        "1d7566c5f4c8a047d0e7444affe1bf7080cdb853",
        "f479dccf294c256181c7ec2884d215424ff5a900"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 02 16:16:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 16:16:14 2011 -0700"
      },
      "message": "Merge \"Changed oat writer deduplication to use pointers to vectors.\" into dalvik-dev"
    },
    {
      "commit": "f479dccf294c256181c7ec2884d215424ff5a900",
      "tree": "d2e7e410741bf2ca66ca5e73748f378270ada550",
      "parents": [
        "55d782146917f9afabc98aedcab4b5874a74e55c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 02 15:54:15 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 02 15:54:15 2011 -0700"
      },
      "message": "Changed oat writer deduplication to use pointers to vectors.\n\nThis will save memory by preventing the maps from having their own copy\nof the code vectors.\n\nChange-Id: I0a17aa97841a96bfb66464a9c7bd6a8c99b88ff2\n"
    },
    {
      "commit": "1d7566c5f4c8a047d0e7444affe1bf7080cdb853",
      "tree": "5ea4f8550a62163c1184f82b640f4fbebcc51811",
      "parents": [
        "3e49ad8b18c8dcaa842d9bfa503d61af022d8286",
        "a50638ba8b983616da3cf1aa941038bea56159e5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 02 15:50:27 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 15:50:27 2011 -0700"
      },
      "message": "Merge \"Register allocation fixes.\" into dalvik-dev"
    },
    {
      "commit": "a50638ba8b983616da3cf1aa941038bea56159e5",
      "tree": "db7d9f0080d264ab3735bc7495da9dd9df929f9e",
      "parents": [
        "5d76c435082332ef79a22962386fa92a0870e378"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 02 15:15:06 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 02 15:15:06 2011 -0700"
      },
      "message": "Register allocation fixes.\n\nThis fixes the calculator button problem, but let\u0027s leave optimization\noff until we\u0027ve passed more tests.\n\nChange-Id: I79b71687a1651e83f16037dead768c43f55d65da\n"
    },
    {
      "commit": "3e49ad8b18c8dcaa842d9bfa503d61af022d8286",
      "tree": "e43799187f85218b5dbd39e49107a2a86271ca6c",
      "parents": [
        "f944a855ded0185d21f29a715e8afbdd5df1262b",
        "f4028cce202a328a99db4014ad096caa4b6f2432"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 15:10:12 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 15:10:12 2011 -0700"
      },
      "message": "Merge \"Support for unresolved fields in the verifier.\" into dalvik-dev"
    },
    {
      "commit": "f4028cce202a328a99db4014ad096caa4b6f2432",
      "tree": "2edd02a303c37d2b06bb34362797f3d794e77837",
      "parents": [
        "f3c1f780145511b234ae50de6e8dbd8c541b7bb0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 14:56:39 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 14:56:39 2011 -0700"
      },
      "message": "Support for unresolved fields in the verifier.\n\nChange-Id: I7bf28786c2610647b9cef6921e9bd162c4707943\n"
    },
    {
      "commit": "f944a855ded0185d21f29a715e8afbdd5df1262b",
      "tree": "45f2a079b0c75cbdcdf481fb9345ea0bd6da503a",
      "parents": [
        "55d782146917f9afabc98aedcab4b5874a74e55c",
        "f3c1f780145511b234ae50de6e8dbd8c541b7bb0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 14:24:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 14:24:35 2011 -0700"
      },
      "message": "Merge \"Allow Object to match as interface class target.\" into dalvik-dev"
    },
    {
      "commit": "f3c1f780145511b234ae50de6e8dbd8c541b7bb0",
      "tree": "8380438846543060b14d8529e7265e57e65cd0f6",
      "parents": [
        "5d76c435082332ef79a22962386fa92a0870e378"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 14:12:15 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 14:12:15 2011 -0700"
      },
      "message": "Allow Object to match as interface class target.\n\nChange-Id: Ie99746c8d13aed63507e5c90dcef922f2caba701\n"
    },
    {
      "commit": "55d782146917f9afabc98aedcab4b5874a74e55c",
      "tree": "6e03f3465d504c4cd33f3f66b3ba0b548ad94368",
      "parents": [
        "5d76c435082332ef79a22962386fa92a0870e378"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 02 11:41:50 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 02 11:41:50 2011 -0700"
      },
      "message": "Added code deduplication to the oat writer.\n\nThe oat writer will reuse indexes if the code, invoke stubs, mapping\ntables, or vmap tables are exactly the same. This reduces the code size\nof the generated oat file.\n\nChange-Id: I926b1eb0a6f3d11bc14f08b0c63c89dd0bd26e2a\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\n"
    },
    {
      "commit": "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15",
      "tree": "8bb8271f997e566a1d4c50994337037cb6ebfa17",
      "parents": [
        "c4824e60fef6cb9fdf0f8442408338f4141e09de"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 15:43:50 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 15:43:50 2011 -0400"
      },
      "message": "Use std::string rather than String* in hprof to avoid managed-heap allocations.\n\nChange-Id: Ia4491aa50f48ab435ca32c1d2b1825bf6553430b\n"
    },
    {
      "commit": "c4824e60fef6cb9fdf0f8442408338f4141e09de",
      "tree": "61a25e09218cfb815875076a54fe351b3a426b10",
      "parents": [
        "387b699e3dc55309023ae2427a76a1ca1d51b0cd"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:39:04 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:53:54 2011 -0400"
      },
      "message": "Add hprof. This code builds but is untested.\n\nChange-Id: Ied6549ef903761447fb3d28cf28b8bbc76e5ef35\n"
    },
    {
      "commit": "387b699e3dc55309023ae2427a76a1ca1d51b0cd",
      "tree": "666cb441033fdbc0d1b19893e47df797ec5dafd1",
      "parents": [
        "43c71a1a99785e1b25374aadb29817d43efba78f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 17:52:37 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 17:53:31 2011 -0700"
      },
      "message": "Don\u0027t fail oat writing for unresolvable classes.\n\nChange-Id: I48f3aa15bed80fbda6285525c0c888b3c07c2b52\n"
    },
    {
      "commit": "43c71a1a99785e1b25374aadb29817d43efba78f",
      "tree": "736b98afc41ab68d31c66ebd7d65e97081a26205",
      "parents": [
        "5f7ee534dd3be2d734f92dd8b76cde2ace864971",
        "6a9967818deb13e31846cce083227e32517edf38"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 17:32:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 17:32:48 2011 -0700"
      },
      "message": "Merge \"Ensure r0/ref isn\u0027t clobbered by call.\" into dalvik-dev"
    },
    {
      "commit": "6a9967818deb13e31846cce083227e32517edf38",
      "tree": "2fda2d77ab6a4e0169c9fff07d2236fa338c7300",
      "parents": [
        "b093c6b27f8ea9bbe2d49c03ebe345203a121199"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 17:06:39 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 17:06:39 2011 -0700"
      },
      "message": "Ensure r0/ref isn\u0027t clobbered by call.\n\nChange-Id: Ic45dac1feb0b45cccfd72589ecee9ea74ee6d869\n"
    }
  ],
  "next": "5f7ee534dd3be2d734f92dd8b76cde2ace864971"
}
