)]}'
{
  "log": [
    {
      "commit": "be031fff278799984166ec866c2dd202447e0f23",
      "tree": "48c60def3d4727cd5d8ba5a83b12ed27092bbb4b",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 08 16:42:37 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 09 17:29:11 2013 -0700"
      },
      "message": "Remove four counter increments out of the allocation path.\n\n- This change removes the four allocation counters (the number of\nbytes allocated, the number of objects allocated, the number of bytes\nallocated ever, the number of objects allocated ever) from the\ndlmalloc space allocation path. Now those counter values are computed\non the fly based on a combination of the two new counters that are\nincremented by the GC side (the number of bytes freed ever and the\nnumber of objects freed ever) and mspace_inspect_all() calls.\n\n- This results in a 1-2% speedup (though with some noise) in Ritz\nMemAllocTest on Nexus 4.\n\nBug: 9986565\nChange-Id: Id9a8e05a745ac1e5ea7a2b5fd9319814a9d4af13\n"
    },
    {
      "commit": "34633b22f74393344987a50b8aaee548a9dadc18",
      "tree": "f4df741c3563b1299781a5bfe32bea844cf619f2",
      "parents": [
        "f1603c2d1c9da70a8e2e4d6af8cf62776ce6b035",
        "5ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 17:43:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 17:43:55 2013 -0700"
      },
      "message": "am 5ce6f04f: am 3057d341: am a6b22c5b: Verifier allows arguments of integral types to be interchangeable.\n\n* commit \u00275ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157\u0027:\n  Verifier allows arguments of integral types to be interchangeable.\n"
    },
    {
      "commit": "5ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157",
      "tree": "b4f99ff0c77989d3da6ed4f34663afc9b8a2fba8",
      "parents": [
        "bf1f0cdc4f4601abf281921d130bd4ff036af985",
        "3057d341c253070621075c9bea8e1ba56c1ccf36"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 17:37:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 17:37:24 2013 -0700"
      },
      "message": "am 3057d341: am a6b22c5b: Verifier allows arguments of integral types to be interchangeable.\n\n* commit \u00273057d341c253070621075c9bea8e1ba56c1ccf36\u0027:\n  Verifier allows arguments of integral types to be interchangeable.\n"
    },
    {
      "commit": "a6b22c5be364a4ea926bfd2d0ea6169b22bdd10b",
      "tree": "cae85ffc74f27444b55ed27a049ad27fb7837010",
      "parents": [
        "756ee4e090bc1e1812b41fb7b4661df601a32ef9"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 14:33:22 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 16:07:13 2013 -0700"
      },
      "message": "Verifier allows arguments of integral types to be interchangeable.\n\nThis fixes a bug where code was passing an int into a method with a\nbyte argument. The RI allows this, but the verifier was rejecting it.\n\nBug: 11033423\nChange-Id: I2a6af3bbbc6e9288fc000f711ae1337ab5786d1a\n"
    },
    {
      "commit": "f1603c2d1c9da70a8e2e4d6af8cf62776ce6b035",
      "tree": "1dad6dd312e9d8fbb87517f5855ef614ed974229",
      "parents": [
        "44d1f9bedd5cc8af795aa3b8a41ef848798622de",
        "bf1f0cdc4f4601abf281921d130bd4ff036af985"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:24 2013 -0700"
      },
      "message": "am bf1f0cdc: am 7ba7936d: am 756ee4e0: Find OatDexFile by DexFile name and checksum, not just checksum\n\n* commit \u0027bf1f0cdc4f4601abf281921d130bd4ff036af985\u0027:\n  Find OatDexFile by DexFile name and checksum, not just checksum\n"
    },
    {
      "commit": "44d1f9bedd5cc8af795aa3b8a41ef848798622de",
      "tree": "dccb7328a49fd71ac3d72d4c14b266ca804ea9f0",
      "parents": [
        "1449f1dbd4174c8bee5a3a1dbdbc256216342fce",
        "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:23 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:23 2013 -0700"
      },
      "message": "am dfb2c8bf: am 9421003a: am eeb98884: Use ElfFile instead of dlopen for Quick\n\n* commit \u0027dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999\u0027:\n  Use ElfFile instead of dlopen for Quick\n"
    },
    {
      "commit": "1449f1dbd4174c8bee5a3a1dbdbc256216342fce",
      "tree": "f7d620c48a52a08bc3f2a9da5abe4e5941b852e2",
      "parents": [
        "a9650dd5e7195aec987a69a6ebbdaf33f73a6b00",
        "80f85137828f3ada45de7beb0acd2888ed7b3b24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "message": "am 80f85137: am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u002780f85137828f3ada45de7beb0acd2888ed7b3b24\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "bf1f0cdc4f4601abf281921d130bd4ff036af985",
      "tree": "44d39aae3cd8f2c05978eef2e5dd5f22d81570b4",
      "parents": [
        "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999",
        "7ba7936d212634eef17120d190dcfdfdf09f365e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:41 2013 -0700"
      },
      "message": "am 7ba7936d: am 756ee4e0: Find OatDexFile by DexFile name and checksum, not just checksum\n\n* commit \u00277ba7936d212634eef17120d190dcfdfdf09f365e\u0027:\n  Find OatDexFile by DexFile name and checksum, not just checksum\n"
    },
    {
      "commit": "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999",
      "tree": "b9235efadb44cc59fdb246aa18e2474c3c53d05c",
      "parents": [
        "80f85137828f3ada45de7beb0acd2888ed7b3b24",
        "9421003ad7284063e31bd8e558c39d9901e4e801"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "message": "am 9421003a: am eeb98884: Use ElfFile instead of dlopen for Quick\n\n* commit \u00279421003ad7284063e31bd8e558c39d9901e4e801\u0027:\n  Use ElfFile instead of dlopen for Quick\n"
    },
    {
      "commit": "80f85137828f3ada45de7beb0acd2888ed7b3b24",
      "tree": "e87734c162a6da19f28edb3bd18ff7620fce747c",
      "parents": [
        "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a",
        "7c79841982c3f3c2fd7fba0d338a52a27c50bc52"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "message": "am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u00277c79841982c3f3c2fd7fba0d338a52a27c50bc52\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "756ee4e090bc1e1812b41fb7b4661df601a32ef9",
      "tree": "b456ca4a582d5e75d20b418ab4c27ed56b46f40d",
      "parents": [
        "eeb9888421b696990f45b89286ad9d0908c70a69"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:46:12 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:14:18 2013 -0700"
      },
      "message": "Find OatDexFile by DexFile name and checksum, not just checksum\n\nBug: 10614658\nChange-Id: Ie0b5a34fd396b6299000c37909108c5e7e6ab80f\n"
    },
    {
      "commit": "eeb9888421b696990f45b89286ad9d0908c70a69",
      "tree": "b5f7c891e2e0a4600a781ea723047717afc0fc3f",
      "parents": [
        "7c3d13aebdd8611cae58a1048bffb13cbdc465cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:53:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:13:32 2013 -0700"
      },
      "message": "Use ElfFile instead of dlopen for Quick\n\nBug: 10614658\nChange-Id: I6a7e2cb0960a5d468a55d220c3fafa80bc239fa9\n"
    },
    {
      "commit": "7c3d13aebdd8611cae58a1048bffb13cbdc465cb",
      "tree": "23f2415bb38e77b0d53c1de06c37a133c7b08e51",
      "parents": [
        "f15242943a7a836966cd521e3095a4b731695c71"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 04 17:15:11 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 17:00:39 2013 -0700"
      },
      "message": "Use file magic to determine file type, not file extension.\n\nBug: 10614658\nChange-Id: I9156dfca78ac8cd1c62fb258825cc791629270a4\n"
    },
    {
      "commit": "9f69b62e6b009b29e6420c49e7444e91466a6a33",
      "tree": "945a8b95c9b32f76aa71b0de951cff2aa52cdc25",
      "parents": [
        "49fddff6f0e9628de419a2d911b5dcc393626f6e",
        "253ea073ec03a0be1e22df98957257594e316a39"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 03 00:46:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 03 00:46:36 2013 +0000"
      },
      "message": "Merge \"Fix an Art debug build boot failure.\" into dalvik-dev"
    },
    {
      "commit": "253ea073ec03a0be1e22df98957257594e316a39",
      "tree": "804fbc5b00ef7d0b399aa70960793ce5b50eb2ae",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 02 12:44:17 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 02 13:34:17 2013 -0700"
      },
      "message": "Fix an Art debug build boot failure.\n\n(The original change is 3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5.)\n\nBug: 11003273\nBug: 9986565\nChange-Id: Iaaf6395f171eb6e6b8c99386c20c4970c53ee00d\n"
    },
    {
      "commit": "49fddff6f0e9628de419a2d911b5dcc393626f6e",
      "tree": "f2f2528acc39c7a52f0161a8c2271d6c8e2cecec",
      "parents": [
        "e8acf91ebd0ebf76535c157500c22d3dfc7a14f3",
        "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 02 10:01:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 10:01:19 2013 -0700"
      },
      "message": "am acab9fa3: am 13f4f408: am f1524294: Merge \"Fix OatFile leak causing dlopen to return stale OatFile contents\" into klp-dev\n\n* commit \u0027acab9fa3b3b45e5cd0d63d06073f6a6008eb720a\u0027:\n  Fix OatFile leak causing dlopen to return stale OatFile contents\n"
    },
    {
      "commit": "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a",
      "tree": "37ac90c9212f941c49395f2dbeedbc157ff8de44",
      "parents": [
        "334d017c2c66731e545a416a76db7fcd621461e3",
        "13f4f4086874d908df417ba338460b601dd9a1be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 02 09:57:20 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 09:57:20 2013 -0700"
      },
      "message": "am 13f4f408: am f1524294: Merge \"Fix OatFile leak causing dlopen to return stale OatFile contents\" into klp-dev\n\n* commit \u002713f4f4086874d908df417ba338460b601dd9a1be\u0027:\n  Fix OatFile leak causing dlopen to return stale OatFile contents\n"
    },
    {
      "commit": "d9c4fc94fa618617f94e1de9af5f034549100753",
      "tree": "1305efbbc3d4bc306c0947bb6d4b01553667f98e",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 01 19:45:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 02 09:31:55 2013 -0700"
      },
      "message": "Inflate contended lock word by suspending owner.\n\nBug 6961405.\nDon\u0027t inflate monitors for Notify and NotifyAll.\nTidy lock word, handle recursive lock case alongside unlocked case and move\nassembly out of line (except for ARM quick). Also handle null in out-of-line\nassembly as the test is quick and the enter/exit code is already a safepoint.\nTo gain ownership of a monitor on behalf of another thread, monitor contenders\nmust not hold the monitor_lock_, so they wait on a condition variable.\nReduce size of per mutex contention log.\nBe consistent in calling thin lock thread ids just thread ids.\nFix potential thread death races caused by the use of FindThreadByThreadId,\nmake it invariant that returned threads are either self or suspended now.\n\nCode size reduction on ARM boot.oat 0.2%.\nOld nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%,\nnexus 4 speedup 2.09% on DeltaBlue.\n\nChange-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a\n"
    },
    {
      "commit": "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2",
      "tree": "fc5642798c75ccb61cba12ec5e5b35432bca44d3",
      "parents": [
        "5b7d0f35e5e884f53fb4a973d13ca5c98e25951a",
        "c67148594b1580c278ae71e3ce5c6fd59bfa6bd3"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 01 08:47:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 08:47:42 2013 +0000"
      },
      "message": "Merge \"Enable thread analysis on template functions.\" into dalvik-dev"
    },
    {
      "commit": "1c82982f4eab8f0e84829fec25e3f899da44e7ce",
      "tree": "56e453806661fd61a0596f9eb5027875465ff371",
      "parents": [
        "a95be97148b2b2c5095cf80edbebaa771202290e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 18:18:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 21:21:23 2013 -0700"
      },
      "message": "Early exit for static fixup if no direct methods.\n\nChange-Id: I401746e48259a98fb0c80144ff5310380889b154\n"
    },
    {
      "commit": "b00309f1aece094de16e0e542cc30cb2e27f2326",
      "tree": "527686184d3f77ca160efd7b88c4a08eb8ed7fc6",
      "parents": [
        "eb1efc4575e93543ed459c7ee5c6c36109e69b5f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:23:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:34:41 2013 -0700"
      },
      "message": "Fix OatFile leak causing dlopen to return stale OatFile contents\n\nBug: 10917637\nChange-Id: If6b7bb8dd9c7aa3d870bd43964f31512385c5d39\n"
    },
    {
      "commit": "6ea12d2011ab8b4abb5b5c06600266098d240825",
      "tree": "44c2a1c05f66d2da42263ac954cf6c04da30fcc7",
      "parents": [
        "9905e740e3eded5d2ff403f7533cb52fdfb46bc1",
        "eb1efc4575e93543ed459c7ee5c6c36109e69b5f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 14:16:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:16:41 2013 -0700"
      },
      "message": "am eb1efc45: MIPS fix.\n\n* commit \u0027eb1efc4575e93543ed459c7ee5c6c36109e69b5f\u0027:\n  MIPS fix.\n"
    },
    {
      "commit": "c67148594b1580c278ae71e3ce5c6fd59bfa6bd3",
      "tree": "4413606a3c8d0d8426c891574047c9256a43abda",
      "parents": [
        "a95be97148b2b2c5095cf80edbebaa771202290e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 16:42:32 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 18:17:05 2013 +0200"
      },
      "message": "Enable thread analysis on template functions.\n\nAll template functions using thread analysis must be explicitly instantiated\nwith the thread analysis attributes to enable thread analysis. We use macros\nto do this since there are many variants of a same function depending the\nnumber of template arguments.\n\nAlso add documentation of these functions.\n\nChange-Id: I3c79acc2f0a6a8dfb5c42924439145292dd68812\n"
    },
    {
      "commit": "a95be97148b2b2c5095cf80edbebaa771202290e",
      "tree": "7470422341b8cee7be9953ad1c6dd4969fef47fb",
      "parents": [
        "003d297a8760c0d00630820fce2c02730601946e",
        "9ace87b47a756d519e8897d6c1f0f4664ed82f86"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 07:18:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 07:18:26 2013 +0000"
      },
      "message": "Merge \"Optimize shadow frame initialization during invoke.\" into dalvik-dev"
    },
    {
      "commit": "9ace87b47a756d519e8897d6c1f0f4664ed82f86",
      "tree": "41e805925e7c338ddc8ae97cbc8c0f82fb316a9d",
      "parents": [
        "c61124bdeaae94f977ffc36ac69535e792c226f2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 27 11:48:09 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 09:17:23 2013 +0200"
      },
      "message": "Optimize shadow frame initialization during invoke.\n\nThis CL improves the initialization of the new shadow frame (callee) from the\ncurrent shadow frame (caller) following invoke format (non-range or range).\n\nThis also removes the use of Instruction::GetArgs for non-range invoke when we\ncan go the fast route (no use of shorty). This avoids decoding arguments into\nthe stack from the instruction and then read these arguments from the stack. We\nnow do both at once. Note the slow path (doing runtime checks) is not modified\nsince it should be rarely used.\n\nPerformance improved by 3% in average on our benchmarks. Good news it is more\nimportant on benchmark doing lots of invokes:\n- Dhrystone: +11%\n- DeltaBlue: +7%\n- CaffeineMark Method: +16%\n\nBug: 10668955\nChange-Id: I5c230777b2388a78dca7b3a88189e007c1c2bb7a\n"
    },
    {
      "commit": "003d297a8760c0d00630820fce2c02730601946e",
      "tree": "ebc098952e6c96603218e1fdf982e8e52663b6de",
      "parents": [
        "65d1b22d0b02fb0111f69013163c8170e68392f1",
        "c61124bdeaae94f977ffc36ac69535e792c226f2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 07:02:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 07:02:33 2013 +0000"
      },
      "message": "Merge \"Cleanup invoke in interpreter.\" into dalvik-dev"
    },
    {
      "commit": "c61124bdeaae94f977ffc36ac69535e792c226f2",
      "tree": "41ba8619a6dea88a8c607836db21531b05a3787a",
      "parents": [
        "7541c745e00b49983f277d6b6b18bc4c174c7e39"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 10 11:44:19 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 08:57:33 2013 +0200"
      },
      "message": "Cleanup invoke in interpreter.\n\nSome cleanup in invocation stuff:\n- Get the number of invoke arguments from instruction (vA) rather than get it\nfrom its code item. This benefits to native invoke since we no longer need to\nparse the method\u0027s shorty. Also pass the low 16 bits of instructions to avoid\nfetching it twice when reading vA.\n- Remove \"is_static\" tests by taking advantage of invoke type template argument\nrather than testing method\u0027s access flags.\n- Ensure Instruction::GetArgs is inlined.\n- Check exception when initializing method\u0027s class when transitioning from\ninterpreter to compiled code (artInterpreterToCompiledCodeBridge).\n- Move UnstartedRuntimeInvoke function to interpreter_common.cc and make it\nstatic as it\u0027s only used by DoInvoke and DoInvokeVirtualQuick functions.\n- Avoid duplicating code in ShadowFrame::Create.\n\nPerformance remains the same according to benchmarks. Hopefully, this should be\naddressed in next CLs, especially by improving new shadow frame initialization.\n\nBug: 10668955\nChange-Id: I514b8f098d0ef3e35921ceb770383aac1a9c7902\n"
    },
    {
      "commit": "eb1efc4575e93543ed459c7ee5c6c36109e69b5f",
      "tree": "4966b4609f0dc5ba8921e32aa80331bf0ecd4108",
      "parents": [
        "deb43702e611d6c75b459ea352a00f5d98fc0aa9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 18:04:16 2013 +0000"
      },
      "message": "MIPS fix.\n\nBug 10094803.\nResolution stub needs to set $t9 to ensure the global pointer is calculated\ncorrectly.\nFix copy-paste error in resolution stub in function being invoked.\n\nChange-Id: I330b3052f87f47c10cbde2f7e6b271664185d7b0\n(cherry picked from commit 65d1b22d0b02fb0111f69013163c8170e68392f1)"
    },
    {
      "commit": "65d1b22d0b02fb0111f69013163c8170e68392f1",
      "tree": "7a031e64179ef59f7254be703a2e086b905528a1",
      "parents": [
        "d91d6d6a80748f277fd938a412211e5af28913b1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "message": "MIPS fix.\n\nBug 10094803.\nResolution stub needs to set $t9 to ensure the global pointer is calculated\ncorrectly.\nFix copy-paste error in resolution stub in function being invoked.\n\nChange-Id: I330b3052f87f47c10cbde2f7e6b271664185d7b0\n"
    },
    {
      "commit": "d91d6d6a80748f277fd938a412211e5af28913b1",
      "tree": "5c45f4ae53aab3f530284a97dc328b4e38ce7c94",
      "parents": [
        "9c11b56296b8cffc94b0b854ce6cff7e014b8d57"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 25 20:26:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 26 21:08:25 2013 -0700"
      },
      "message": "Introduce Signature type to avoid string comparisons.\n\nMethod resolution currently creates strings to then compare with strings formed\nfrom methods in other dex files. The temporary strings are purely created for\nthe sake of comparisons. This change creates a new Signature type that\nrepresents a method signature but not as a string. This type supports\ncomparisons and so can be used when searching for methods in resolution.\n\nWith this change malloc is no longer the hottest method during dex2oat (now its\nmemset) and allocations during verification have been reduced. The verifier is\ncommonly what is populating the dex cache for methods and fields not declared\nin the dex file itself.\n\nChange-Id: I5ef0542823fbcae868aaa4a2457e8da7df0e9dae\n"
    },
    {
      "commit": "9c11b56296b8cffc94b0b854ce6cff7e014b8d57",
      "tree": "aa50c90aba8959732ee44b8ea94d52176904e785",
      "parents": [
        "58ff84450a28966a4d2b1f1f4cec527a6a586905",
        "530825ba92e317822116efffd470577ddfd142d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "message": "Merge \"Make InternalStackTraceToStackTraceElementArray compaction safe.\" into dalvik-dev"
    },
    {
      "commit": "58ff84450a28966a4d2b1f1f4cec527a6a586905",
      "tree": "70217a42f68c8d9d870e291c1d17c6e358b76468",
      "parents": [
        "7287601984059902aebde00ea4e077ead42fb149",
        "07d447bebe6cc358e05ef041db84a5095a69e4f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 22:34:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 26 22:34:08 2013 +0000"
      },
      "message": "Merge \"Make artQuickResolutionTrampoline fix up references after GC points.\" into dalvik-dev"
    },
    {
      "commit": "7287601984059902aebde00ea4e077ead42fb149",
      "tree": "0e447ee15b42954081f02eda7899935d294a41a1",
      "parents": [
        "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 15:14:49 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 15:14:49 2013 -0700"
      },
      "message": "Fix a portable build breakage\n\n  http://android-build/builds/git_dalvik-dev-linux-mysid-userdebug_portable/848398/logs/build.log\n\n due to\n\n  https://googleplex-android.googlesource.com/platform/art/+/3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5\n\nChange-Id: I89ef5f77dfc640efbe3378549e22bb699da3149f\n"
    },
    {
      "commit": "07d447bebe6cc358e05ef041db84a5095a69e4f1",
      "tree": "0ed9d07628e7fe07b49261c9562200a3fd18d6ba",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 11:57:43 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 13:20:37 2013 -0700"
      },
      "message": "Make artQuickResolutionTrampoline fix up references after GC points.\n\nRequired for compaction.\n\nBug: 8981901\nChange-Id: I53a5f942af2a4428fe3548ba1856967632c2df9f\n"
    },
    {
      "commit": "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5",
      "tree": "5298ccd9c1f1f6b329c0cb6cefac6a8df43dd633",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 12 21:33:12 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 25 20:28:49 2013 -0700"
      },
      "message": "Split the allocation path into \u0027instrumented\u0027 and \u0027uninstrumented\u0027\nones.\n\nThe instrumented path is equivalent to the existing allocation path\nthat checks for three instrumentation mechanisms (the debugger\nallocation tracking, the runtime allocation stats collection, and\nvalgrind) for every allocation. The uinstrumented path does not\nperform these checks. We use the uninstrumented path by default and\nenable the instrumented path only when any of the three mechanisms is\nenabled. The uninstrumented version of Heap::AllocObject() is inlined.\n\nThis change improves the Ritz MemAllocTest by ~4% on Nexus 4 and ~3%\non Host/x86.\n\nBug: 9986565\nChange-Id: I3e68dfff6789d77bbdcea98457b694e1b5fcef5f\n"
    },
    {
      "commit": "530825ba92e317822116efffd470577ddfd142d4",
      "tree": "b8b2d8966a21a9ce630dd0e57949326e79a56bfc",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 17:56:49 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 18:01:14 2013 -0700"
      },
      "message": "Make InternalStackTraceToStackTraceElementArray compaction safe.\n\nAdded more SOA decodes.\n\nChange-Id: Idbfd546467582a848be91c358c6926a6e472fbff\n"
    },
    {
      "commit": "f7e090ebcded6d6693894c018d89c4add79253ff",
      "tree": "8a7065bde4a404dfafc5b41a034eeb3f2b62bd3a",
      "parents": [
        "7541c745e00b49983f277d6b6b18bc4c174c7e39",
        "11409ae81a3eaf84d7fd2b3c85b8b06d2bae27f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 21:05:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 25 21:05:13 2013 +0000"
      },
      "message": "Merge \"Refactor and improve mod-union tables.\" into dalvik-dev"
    },
    {
      "commit": "11409ae81a3eaf84d7fd2b3c85b8b06d2bae27f0",
      "tree": "a6f10a6360c4ed8012e5893264e68ac4869fde90",
      "parents": [
        "b605a4f9a8797046ea1aa05f3405a77fb9a80a76"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 23 11:49:36 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 13:55:02 2013 -0700"
      },
      "message": "Refactor and improve mod-union tables.\n\nAllow support for adding more mod union tables, reduces the amount\nof baked in logic. Adds support for updating mod union table references\nfrom compaction (not for ReferenceCache table yet).\n\nChange-Id: I1beeda00839ed86ef0e853beff5ce10d0ab2b9d1\n"
    },
    {
      "commit": "d0fbd85a82a266c21d6b72c61d6dc098ec362de7",
      "tree": "14f431e4bd889b6c7ec6b29322594786828d3bb1",
      "parents": [
        "fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 18:17:04 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 21:17:06 2013 -0700"
      },
      "message": "Reduce memory allocation in verifier.\n\nRemove the use of a map PcToRegisterLineTable for efficiency (matches Dalvik).\nPlace the register line register values inside the RegisterLine, saves a\nsecondary allocation and indirection.\nAvoid the use of a deque in RegisterLine to avoid an allocation.\nSimplify the SirtRef destructor in non-debug builds.\nSaves \u003e100ms from the two threaded compile time of ThinkFree on host.\n\nChange-Id: I2dacba61dbaf284ca02d4c194413e1da221dcb76\n"
    },
    {
      "commit": "9905e740e3eded5d2ff403f7533cb52fdfb46bc1",
      "tree": "56c8479177bf0ff7ead5e04181fbe755f580ec3c",
      "parents": [
        "91f98d8bab30f3d32c71efccd9b791f734b24c2e",
        "b08e3a876366110d0d4214a2cec859c806e86781"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 17:49:30 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 17:49:30 2013 -0700"
      },
      "message": "am b08e3a87: am deb43702: Fix handling of unresolved references in verifier.\n\n* commit \u0027b08e3a876366110d0d4214a2cec859c806e86781\u0027:\n  Fix handling of unresolved references in verifier.\n"
    },
    {
      "commit": "fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f",
      "tree": "5cfbe05084351576e9659cb8f7b66dcb6163a37b",
      "parents": [
        "576fe9d4181c749aa510e32d2521ed4192bdfda0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 23:51:32 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 17:07:24 2013 -0700"
      },
      "message": "StringPiece clean up.\n\nProfile guided clean up.\nTry to avoid creating StringPieces with the contents of a dex file where\nthe length is known.\nTry to avoid RegTypeCache::FromDescriptor when there\u0027s a class available.\nMake ConstantType::ConstantValue inlinable.\nSaving of about 50ms from a 2 threaded ThinkFree compile on host.\n\nChange-Id: I47a12c3c76f46e2c9805be1c3a3e3870fe1f5d85\n"
    },
    {
      "commit": "deb43702e611d6c75b459ea352a00f5d98fc0aa9",
      "tree": "3a85938cf895bbdf3082eb5cf6a235514818a2ec",
      "parents": [
        "abcf7ae8deba4ee81dec44f3d1a2f0ecaf032859"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 03 19:07:00 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 16:26:02 2013 -0700"
      },
      "message": "Fix handling of unresolved references in verifier.\n\nThe verifier should not treat use of unresolved references as a reason to reject\nthe entire class. Instead, the verifier treats the instruction as a throw. If\nthat class is run, the interpreter with extra checks will throw an exception.\n\nBug: 10457426\n\n(cherry picked from commit a3faaf4bece7f42529c013fe87bd41de59798656)\n\nChange-Id: I161bfdbfa116890ffa9e7a593c756229bd939eb4\n"
    },
    {
      "commit": "576fe9d4181c749aa510e32d2521ed4192bdfda0",
      "tree": "482bd8c6db13c3ad6037604dda1afb0baae96026",
      "parents": [
        "2de3587a557b0dcb7ac149b3e01e61dc027e5ed0",
        "a3faaf4bece7f42529c013fe87bd41de59798656"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 22:19:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 24 22:19:43 2013 +0000"
      },
      "message": "Merge \"Fix handling of unresolved references in verifier.\" into dalvik-dev"
    },
    {
      "commit": "a3faaf4bece7f42529c013fe87bd41de59798656",
      "tree": "933e312a4aa4d69b2d7da7eda4d592419cec4729",
      "parents": [
        "a9a624b2be2180e6bd33f02c89fb8521376a2e8c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 03 19:07:00 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 15:18:36 2013 -0700"
      },
      "message": "Fix handling of unresolved references in verifier.\n\nThe verifier should not treat use of unresolved references as a reason to reject\nthe entire class. Instead, the verifier treats the instruction as a throw. If\nthat class is run, the interpreter with extra checks will throw an exception.\n\nBug: 10457426\n\nChange-Id: I3799da843a7ffb3519bbf6dc13a6276519d9cb95\n"
    },
    {
      "commit": "2de3587a557b0dcb7ac149b3e01e61dc027e5ed0",
      "tree": "e8c9554abed3f03e28d65b2ede8e7e79b89dc06a",
      "parents": [
        "4ce9e68bd648551379648df34d2267cd3d75e46c",
        "91f98d8bab30f3d32c71efccd9b791f734b24c2e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 10:29:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:29:37 2013 -0700"
      },
      "message": "am 91f98d8b: am 15ae8191: am abcf7ae8: Fix overly restrictive assert\n\n* commit \u002791f98d8bab30f3d32c71efccd9b791f734b24c2e\u0027:\n  Fix overly restrictive assert\n"
    },
    {
      "commit": "4ce9e68bd648551379648df34d2267cd3d75e46c",
      "tree": "0e7a697e82e941ecde17d2ce57df3cd43a23e97e",
      "parents": [
        "723038d3fa77512c3e77acd648c3af4a91843612",
        "e2ef879534e0eb7365f1997d0935c8eccb9d28fb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 10:29:36 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:29:36 2013 -0700"
      },
      "message": "am e2ef8795: am 4b166f3e: am cb5f5e53: Make sure CompilerDriver actually resolves types\n\n* commit \u0027e2ef879534e0eb7365f1997d0935c8eccb9d28fb\u0027:\n  Make sure CompilerDriver actually resolves types\n"
    },
    {
      "commit": "91f98d8bab30f3d32c71efccd9b791f734b24c2e",
      "tree": "cd6f0319717a176f030a7072534523587ae77b31",
      "parents": [
        "e2ef879534e0eb7365f1997d0935c8eccb9d28fb",
        "15ae819193c8c3f9dcd8428a5835f9b20429149b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 10:26:00 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:26:00 2013 -0700"
      },
      "message": "am 15ae8191: am abcf7ae8: Fix overly restrictive assert\n\n* commit \u002715ae819193c8c3f9dcd8428a5835f9b20429149b\u0027:\n  Fix overly restrictive assert\n"
    },
    {
      "commit": "e2ef879534e0eb7365f1997d0935c8eccb9d28fb",
      "tree": "f85418cf1c3dc4ccc9758c2e12dca232bbbb4903",
      "parents": [
        "57d56089f85b5e4901ebd7e61bc11717ceab7074",
        "4b166f3e6444ca223e2dd0e486619bfd85fa8cc0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 10:26:00 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:26:00 2013 -0700"
      },
      "message": "am 4b166f3e: am cb5f5e53: Make sure CompilerDriver actually resolves types\n\n* commit \u00274b166f3e6444ca223e2dd0e486619bfd85fa8cc0\u0027:\n  Make sure CompilerDriver actually resolves types\n"
    },
    {
      "commit": "57d56089f85b5e4901ebd7e61bc11717ceab7074",
      "tree": "8af119aea2bd8f33ad848b8637d10a25fc07ae80",
      "parents": [
        "2921201dce37ba40c55b89c0deca3c34bf64168e",
        "c493433edf6b686ac367fb910774e8f5b877decd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 10:23:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:23:16 2013 -0700"
      },
      "message": "am c493433e: am ee39a10e: Use class def index from java.lang.Class.\n\n* commit \u0027c493433edf6b686ac367fb910774e8f5b877decd\u0027:\n  Use class def index from java.lang.Class.\n"
    },
    {
      "commit": "a9a624b2be2180e6bd33f02c89fb8521376a2e8c",
      "tree": "c6b993d3a16f1513ca6bde12e5a8b7844f43adf8",
      "parents": [
        "e4ef0953b6a27f00a93b4807cd1ff668f4fbeb22",
        "2921201dce37ba40c55b89c0deca3c34bf64168e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "message": "am 2921201d: Remove some non-const references in utils\n\n* commit \u00272921201dce37ba40c55b89c0deca3c34bf64168e\u0027:\n  Remove some non-const references in utils\n"
    },
    {
      "commit": "e4ef0953b6a27f00a93b4807cd1ff668f4fbeb22",
      "tree": "76f985d763a895c59c4a1e9f70a3f7d58cc6b9a3",
      "parents": [
        "b605a4f9a8797046ea1aa05f3405a77fb9a80a76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 07:31:04 2013 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 07:31:04 2013 +0000"
      },
      "message": "Revert \"Avoid std::string allocations in HasSameNameAndSignature.\"\n\nThis reverts commit b605a4f9a8797046ea1aa05f3405a77fb9a80a76.\n\nChange-Id: I4f185a1ea1e453fcff5325062be8ff1d8af20396\n"
    },
    {
      "commit": "2921201dce37ba40c55b89c0deca3c34bf64168e",
      "tree": "2222b4bf7a53864c1bf514bb68e0053a966da3e5",
      "parents": [
        "bb0140e051e62ca0b51b0870c2386ae3110b0556"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 12 22:18:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:43:29 2013 -0700"
      },
      "message": "Remove some non-const references in utils\n\nChange-Id: Ib2d3c39fadb6a750c68c37b0aa53daab155a65a3\n"
    },
    {
      "commit": "abcf7ae8deba4ee81dec44f3d1a2f0ecaf032859",
      "tree": "4f8145f8c5ba6cf29e151e88ea31dafb2fecdabb",
      "parents": [
        "cb5f5e53b580023fa2c1d8235c2e9aa1ff67d1dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:19:52 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:19:52 2013 -0700"
      },
      "message": "Fix overly restrictive assert\n\nFound by 084-class-init on a clean build.\n\nBug: 10750824\nChange-Id: I7cf1ee190cbddbda98132511527eab36c36da523\n"
    },
    {
      "commit": "cb5f5e53b580023fa2c1d8235c2e9aa1ff67d1dc",
      "tree": "90033a1839d51e8b54a095aa896dc9295ccab959",
      "parents": [
        "ee39a10e45a6a0880e8b829525c40d6055818560"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 17:48:16 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 18:50:52 2013 -0700"
      },
      "message": "Make sure CompilerDriver actually resolves types\n\nBug: 10750824\nChange-Id: Ie61881f24196e851d87822798a7e9abdf9678aa3\n"
    },
    {
      "commit": "b605a4f9a8797046ea1aa05f3405a77fb9a80a76",
      "tree": "1173f9c050d1bae8bdf8ba8950e0995c42fc97ba",
      "parents": [
        "2e2deeb6df3e5a952c194276146706e63ab644a1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 12:57:09 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 12:57:09 2013 -0700"
      },
      "message": "Avoid std::string allocations in HasSameNameAndSignature.\n\nCreating a signature requires a std::string that\u0027s only used for the purpose of\na comparison. Avoid the std::string by comparing the elements of the method\u0027s\nproto_ids.\n\nChange-Id: I4394df2ac20bb5896936954f68937fad7e9f7e91\n"
    },
    {
      "commit": "2e2deeb6df3e5a952c194276146706e63ab644a1",
      "tree": "76f985d763a895c59c4a1e9f70a3f7d58cc6b9a3",
      "parents": [
        "a67249065e4c9b3cf4a7c081d95a78df28291ee9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 11:58:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 11:58:57 2013 -0700"
      },
      "message": "Fix compiler warning in interpreter.\n\nChange-Id: I320a8dbbd27bf7d20cf8b60a3e5d0aaebcda861e\n"
    },
    {
      "commit": "a67249065e4c9b3cf4a7c081d95a78df28291ee9",
      "tree": "8f5b84b886362e9f3bb2e9be6b24c2b61a02f907",
      "parents": [
        "450dcb56ecbf6f729401e753f0a27e4170177ddd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 09:23:37 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 09:25:56 2013 -0700"
      },
      "message": "Move hot utf routines into -inl.h.\n\nChange-Id: I7050d8282a7e5870b2bf671d6867c57625e00ccc\n"
    },
    {
      "commit": "ee39a10e45a6a0880e8b829525c40d6055818560",
      "tree": "88cf2b0765ffc8cc96aa2f895254fbf799d0eb40",
      "parents": [
        "7d690ba929a2a02e2b6344749561d49e2c0d55d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 02:56:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 21 22:00:10 2013 -0700"
      },
      "message": "Use class def index from java.lang.Class.\n\nBug: 10244719\nThis removes the computation of the dex file index, when necessary this is\ncomputed by searching the dex file. Its only necessary in\ndalvik.system.DexFile.defineClassNative and DexFile::FindInClassPath, the\nlatter not showing up significantly in profiling with this change.\n\n(cherry-picked from 8b2c0b9abc3f520495f4387ea040132ba85cae69)\nChange-Id: I20c73a3b17d86286428ab0fd21bc13f51f36c85c\n"
    },
    {
      "commit": "450dcb56ecbf6f729401e753f0a27e4170177ddd",
      "tree": "f596d57c5f6fbdc90b3dc68a2008e38ee48e2882",
      "parents": [
        "810b1d704f2db0d935bf5dddae3545f79cabd435"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 20 17:36:02 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 20 18:47:39 2013 -0700"
      },
      "message": "Improve float to integral conversion.\n\nChange-Id: I1597083cb2c04084ce825fe2e3c753fde8309cd8\n"
    },
    {
      "commit": "810b1d704f2db0d935bf5dddae3545f79cabd435",
      "tree": "baf1ec61b47031244cb1fe2458b136c9f9d54f1f",
      "parents": [
        "5c00e28cdc7da675451869a2e5baa8f1c3244892",
        "bb0140e051e62ca0b51b0870c2386ae3110b0556"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 14:02:02 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 14:02:02 2013 -0700"
      },
      "message": "resolved conflicts for merge of bb0140e0 to dalvik-dev\n\nChange-Id: I31e0c05c5e917cf3275296a7f65bd8b78ec9b78b\n"
    },
    {
      "commit": "5c00e28cdc7da675451869a2e5baa8f1c3244892",
      "tree": "6c90fe3f71638351c230a89c035014802036a60f",
      "parents": [
        "769b0b6c5453c92a049b00eb2525b4136dc2888a",
        "f381419be7cf8df4bf7d217c2e243a63c8ee3736"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Sep 20 12:05:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 12:05:28 2013 -0700"
      },
      "message": "am f381419b: am 3ff0740a: am ded4f460: Merge \"Fix dumpsys meminfo for art\" into klp-dev\n\n* commit \u0027f381419be7cf8df4bf7d217c2e243a63c8ee3736\u0027:\n  Fix dumpsys meminfo for art\n"
    },
    {
      "commit": "769b0b6c5453c92a049b00eb2525b4136dc2888a",
      "tree": "615106000e3f8e9ae013af353b63821834c65798",
      "parents": [
        "72aaacfd30a9d2ad8ffdde038510706d58b0fd68",
        "85c71397de65148370bad0be6ba95cffd4fd5fa8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 20 12:05:27 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 12:05:27 2013 -0700"
      },
      "message": "am 85c71397: am 65cc64fb: am 261d3cda: Merge \"Reconcile differences between zip implementations\" into klp-dev\n\n* commit \u002785c71397de65148370bad0be6ba95cffd4fd5fa8\u0027:\n  Reconcile differences between zip implementations\n"
    },
    {
      "commit": "72aaacfd30a9d2ad8ffdde038510706d58b0fd68",
      "tree": "798b1f8f2d63832caaba5616faf65397151e80fe",
      "parents": [
        "b1ead20d83c7c5eb7f9c73b5fc8da4e99cd22986",
        "50c3e9ca33729b7f7462f53f3d33cab5db88948e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 11:40:40 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 11:40:40 2013 -0700"
      },
      "message": "resolved conflicts for merge of 50c3e9ca to dalvik-dev\n\nChange-Id: Icbb5373de3ca5b7a6110b5ab44f83daa05051f02\n"
    },
    {
      "commit": "bb0140e051e62ca0b51b0870c2386ae3110b0556",
      "tree": "a180a70b7e53a67cca30a93379659e9754c3d74a",
      "parents": [
        "f381419be7cf8df4bf7d217c2e243a63c8ee3736",
        "8ae693027ae56ed19dc5f2e81e9a3a4a37988754"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 11:22:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 11:22:41 2013 -0700"
      },
      "message": "am 8ae69302: am 7d690ba9: Merge \"Re-enable concurrent system weak sweeping.\" into klp-dev\n\n* commit \u00278ae693027ae56ed19dc5f2e81e9a3a4a37988754\u0027:\n  Re-enable concurrent system weak sweeping.\n"
    },
    {
      "commit": "f381419be7cf8df4bf7d217c2e243a63c8ee3736",
      "tree": "abda839c0bdb1e1d5544bcba3f960b5899c8baf6",
      "parents": [
        "85c71397de65148370bad0be6ba95cffd4fd5fa8",
        "3ff0740a7b4e5739ad0500bdc1d15a46d00b606e"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Sep 20 11:20:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 11:20:57 2013 -0700"
      },
      "message": "am 3ff0740a: am ded4f460: Merge \"Fix dumpsys meminfo for art\" into klp-dev\n\n* commit \u00273ff0740a7b4e5739ad0500bdc1d15a46d00b606e\u0027:\n  Fix dumpsys meminfo for art\n"
    },
    {
      "commit": "85c71397de65148370bad0be6ba95cffd4fd5fa8",
      "tree": "2d23dc0c9bc7624bd33e88382af0e8cb30408d3d",
      "parents": [
        "50c3e9ca33729b7f7462f53f3d33cab5db88948e",
        "65cc64fb58c24db239fba2c93689a785ec598912"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 20 11:20:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 11:20:43 2013 -0700"
      },
      "message": "am 65cc64fb: am 261d3cda: Merge \"Reconcile differences between zip implementations\" into klp-dev\n\n* commit \u002765cc64fb58c24db239fba2c93689a785ec598912\u0027:\n  Reconcile differences between zip implementations\n"
    },
    {
      "commit": "50c3e9ca33729b7f7462f53f3d33cab5db88948e",
      "tree": "e2fea442dde653747440dabc61604e84693d3a8d",
      "parents": [
        "e47637cc7c96e654d2c340e6006c232c8078673b",
        "88f774c1cb21081b23eddbabb472af3576d0350b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 11:20:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 11:20:24 2013 -0700"
      },
      "message": "am 88f774c1: am 0f72e413: Improve heap verification.\n\n* commit \u002788f774c1cb21081b23eddbabb472af3576d0350b\u0027:\n  Improve heap verification.\n"
    },
    {
      "commit": "7d690ba929a2a02e2b6344749561d49e2c0d55d2",
      "tree": "0bb9e542b9474d5b0a75cc9346de2fafb71812fa",
      "parents": [
        "ded4f4600d61f2a1c1c02b145d14c715e0605d70",
        "c11d9b8870de5f860b13c84003ade7b3f3125a52"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 18:02:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 18:02:12 2013 +0000"
      },
      "message": "Merge \"Re-enable concurrent system weak sweeping.\" into klp-dev"
    },
    {
      "commit": "c11d9b8870de5f860b13c84003ade7b3f3125a52",
      "tree": "89b0250d35a950774f98fa1abfa9cc296c9d85db",
      "parents": [
        "261d3cda32b28782d894be0244e617f78182ee3b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 19 10:01:59 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 10:36:49 2013 -0700"
      },
      "message": "Re-enable concurrent system weak sweeping.\n\nEnabled by disallowing new system weaks during the pause and\nre-allowing it after the system weaks have been swept. Reduces\nGC pause by ~1ms.\n\nFixes pause regression caused by fix for\nBug: 10626133\n\nChange-Id: If49d33e7ef19cb728ed3cef5187acfa53b9b05d8\n"
    },
    {
      "commit": "ded4f4600d61f2a1c1c02b145d14c715e0605d70",
      "tree": "a390701662d894d26a97c51f752a7b69c0d377dd",
      "parents": [
        "261d3cda32b28782d894be0244e617f78182ee3b",
        "caacdf326cfe09decfca0a15c62ebe10b774e05e"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Sep 20 00:47:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 00:47:48 2013 +0000"
      },
      "message": "Merge \"Fix dumpsys meminfo for art\" into klp-dev"
    },
    {
      "commit": "caacdf326cfe09decfca0a15c62ebe10b774e05e",
      "tree": "d1f0fe587a4d19ba613226fdbde8c3b9f87d70b4",
      "parents": [
        "0f72e4136aecaf6976fdb55916bbd7b6d5c9c77b"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Sep 19 17:29:21 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Sep 19 17:34:13 2013 -0700"
      },
      "message": "Fix dumpsys meminfo for art\n\nBUG:10112253\nChange-Id: I2a34cc0841bdcf922c4ab4eadda360313858a0d6\n"
    },
    {
      "commit": "b1ead20d83c7c5eb7f9c73b5fc8da4e99cd22986",
      "tree": "3c76fe9b581f695b04d6a0205aca640d1fbebeca",
      "parents": [
        "7c748a2f0c04a088471eff7cd311c024cbbdc04e",
        "8b2c0b9abc3f520495f4387ea040132ba85cae69"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 20 00:10:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 00:10:53 2013 +0000"
      },
      "message": "Merge \"Use class def index from java.lang.Class.\" into dalvik-dev"
    },
    {
      "commit": "261d3cda32b28782d894be0244e617f78182ee3b",
      "tree": "4e85dfadf2e0075c46f2d641312954226a1810e8",
      "parents": [
        "0f72e4136aecaf6976fdb55916bbd7b6d5c9c77b",
        "72fcca2477e02da2d3970aefc75465ba1f20ce9c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 20 00:05:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 00:05:16 2013 +0000"
      },
      "message": "Merge \"Reconcile differences between zip implementations\" into klp-dev"
    },
    {
      "commit": "7c748a2f0c04a088471eff7cd311c024cbbdc04e",
      "tree": "6fa0e7cabd5889de547e3a4977ca9eb6d52a1f19",
      "parents": [
        "5712d5d04640925970db9c98938ffaf806b3962c",
        "e47637cc7c96e654d2c340e6006c232c8078673b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 19 16:08:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 19 16:08:57 2013 -0700"
      },
      "message": "am e47637cc: 4-byte align 64-bit values in Get/Set Double/Long for GCC 4.8.\n\n* commit \u0027e47637cc7c96e654d2c340e6006c232c8078673b\u0027:\n  4-byte align 64-bit values in Get/Set Double/Long for GCC 4.8.\n"
    },
    {
      "commit": "72fcca2477e02da2d3970aefc75465ba1f20ce9c",
      "tree": "3ad90394d1483839cdaaf263afd90af95a516813",
      "parents": [
        "ab482f5eff21af748c906857f529a3c17df35964"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 19 09:25:34 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Sep 19 15:49:23 2013 -0700"
      },
      "message": "Reconcile differences between zip implementations\n\nCopy new behavior of ZipFileRO to art\u0027s zip_archive.cc\n\nBug: 10424836\nChange-Id: I0ec81425ab372d0884c684eab299449834c35e82\n"
    },
    {
      "commit": "e47637cc7c96e654d2c340e6006c232c8078673b",
      "tree": "4e49c4d7bccbb7903b6de186b8676a77d7c157bc",
      "parents": [
        "f466553d7f2f941765adaa657c340ff31b55d891"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 19 15:13:16 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 19 15:37:02 2013 -0700"
      },
      "message": "4-byte align 64-bit values in Get/Set Double/Long for GCC 4.8.\n\nBug: 10837416\nChange-Id: Ibb562407d81c2085666ae8824e7570f22e56eaa7\n"
    },
    {
      "commit": "8b2c0b9abc3f520495f4387ea040132ba85cae69",
      "tree": "13ea7e5c4e3d1804ec8d420d36f7ea5ab18f6ac0",
      "parents": [
        "5712d5d04640925970db9c98938ffaf806b3962c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 02:56:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 15:17:12 2013 -0700"
      },
      "message": "Use class def index from java.lang.Class.\n\nBug: 10244719\nDepends on:\nhttps://googleplex-android-review.git.corp.google.com/362363\nThis removes the computation of the dex file index, when necessary this is\ncomputed by searching the dex file. Its only necessary in\ndalvik.system.DexFile.defineClassNative and DexFile::FindInClassPath, the\nlatter not showing up significantly in profiling with this change.\n\nChange-Id: I20c73a3b17d86286428ab0fd21bc13f51f36c85c\n"
    },
    {
      "commit": "0f72e4136aecaf6976fdb55916bbd7b6d5c9c77b",
      "tree": "f66e033a77c0e9bfb39bde51305f8d155b2a73a3",
      "parents": [
        "9e452d1d097bc0f29a24e13ced5477fa3c9463f9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 06 16:40:01 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 19 09:47:39 2013 -0700"
      },
      "message": "Improve heap verification.\n\nRe-enabled checking the allocation stack for heap verification.\n\nAdded tracking of recent frees in DlMallocSpace if debug spaces is\nenabled. This is useful when you have heap corruption caused by a\nlive object referencing a recently freed object.\n\nAdded various other sanity checks in the GC.\n\nBug: 10626133\n\nChange-Id: I5ada11966336ae9a06615b16f4b933f05b5d0c32\n"
    },
    {
      "commit": "5712d5d04640925970db9c98938ffaf806b3962c",
      "tree": "d1a8da088f4b62369aa6418a5c36449a5e6cdc1c",
      "parents": [
        "8aa003fcb06c3473a9e58d2071f2518aa53077f8",
        "f466553d7f2f941765adaa657c340ff31b55d891"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 17:59:36 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 18:05:34 2013 -0700"
      },
      "message": "resolved conflicts for merge of f466553d to dalvik-dev\n\nChange-Id: I1205b5c5da3a02e410fff760a8b0dda41cb7249f\n"
    },
    {
      "commit": "9e452d1d097bc0f29a24e13ced5477fa3c9463f9",
      "tree": "3386b2ba7a3187bb0cea4cc1a990eb7c4e7578d8",
      "parents": [
        "3c60d13761e245b74f862987b3eae7bd5fdda5f3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 16:35:15 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 17:09:42 2013 -0700"
      },
      "message": "Fix system weak sweeping race.\n\nThere was a race related to sweeping the intern table with mutators\nunpaused. The race occurred when an unused intern was seen as not\nreferenced by the GC but another thread attempted to create intern\nthis same string before we swept the system weaks. This caused the\nthread to get a pointer to the stale string which was shortly going\nto be reclaimed.\n\nThe fix moves sweeping the system weaks inside of the pause. This is\na temporary solution since it adds \u003c 1ms of pause time.\n\nBug: 10626133\n\nChange-Id: Ibf669ae5237ddb2ab44a9efd72e207bd06b53147\n"
    },
    {
      "commit": "8aa003fcb06c3473a9e58d2071f2518aa53077f8",
      "tree": "4d0dc3977747fd55a43ee7410b46328e498aeabe",
      "parents": [
        "ba3fc30c8e5ca233fd9a4d71397461cf15d75c7c",
        "b5a80a1eb89f621950aa9a93c0c6655a24c7cc96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 14:29:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 14:29:58 2013 -0700"
      },
      "message": "am b5a80a1e: am ba5c7a7e: am 3c60d137: Merge \"Fix soft reference clearing issue.\" into klp-dev\n\n* commit \u0027b5a80a1eb89f621950aa9a93c0c6655a24c7cc96\u0027:\n  Fix soft reference clearing issue.\n"
    },
    {
      "commit": "3c60d13761e245b74f862987b3eae7bd5fdda5f3",
      "tree": "765ee57ad4bad6cf675c315c75e9a206e6ee2e24",
      "parents": [
        "ab482f5eff21af748c906857f529a3c17df35964",
        "b4ea4de2d6b63a3855968f2748878018a27af106"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 21:22:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 21:22:09 2013 +0000"
      },
      "message": "Merge \"Fix soft reference clearing issue.\" into klp-dev"
    },
    {
      "commit": "b4ea4de2d6b63a3855968f2748878018a27af106",
      "tree": "9f27a9eef32d9aa0147abee75fbbd36d1ffe8281",
      "parents": [
        "c4621985bdfc2b27494087e5dee65a6d0cc5a632"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 09:58:29 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 14:11:30 2013 -0700"
      },
      "message": "Fix soft reference clearing issue.\n\nThere was a bug where we would check that the pending next field was\nnon null before enqueueing up cleared references. This was causing\nreferences to not get queued up during ProcessReferences.\n\nBug: 10626133\n\nChange-Id: Ic1e00e42045092280b4abb3d41f1c58f7adbc3de\n"
    },
    {
      "commit": "d7d7f6e6916d4cdba89a28670440ec3a59d1a862",
      "tree": "9a8cc16516e84bbb6cdf92567d801d67eb6c2a7e",
      "parents": [
        "dab23d0f0433d42a6c508741d61aba522a5e6230"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 18 12:00:45 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 18 12:00:45 2013 -0700"
      },
      "message": "Add JNI tests missing from 4ffdc6bd962c37bca407267c0858b37bb18a9857.\n\nChange-Id: I4fa61246b5e92936698e1c608189d51768da456f\n"
    },
    {
      "commit": "dab23d0f0433d42a6c508741d61aba522a5e6230",
      "tree": "de729a2f3b66ba3a77570b4eb7b2a17591d45845",
      "parents": [
        "b60df31f4c7a1642ef8b3bad1cbdba4d471d4e55",
        "5b0daf5ce04f58e08a5bc38a85480b816e3812b2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 18 10:19:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 10:19:16 2013 -0700"
      },
      "message": "am 5b0daf5c: am ff6cff9e: am ab482f5e: Merge \"Allow traversal into /storage paths.\" into klp-dev\n\n* commit \u00275b0daf5ce04f58e08a5bc38a85480b816e3812b2\u0027:\n  Allow traversal into /storage paths.\n"
    },
    {
      "commit": "ab482f5eff21af748c906857f529a3c17df35964",
      "tree": "dea612debd0e7aa4451d1e74c2e1073fe2fe5783",
      "parents": [
        "c4621985bdfc2b27494087e5dee65a6d0cc5a632",
        "52cd1e8f2f0622a174f883e24151ab873170787f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 18 17:10:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 17:10:43 2013 +0000"
      },
      "message": "Merge \"Allow traversal into /storage paths.\" into klp-dev"
    },
    {
      "commit": "3b588e09eac6fb2aff64595e2232e479703850fc",
      "tree": "6a6608e3fa027631715e3da671859daed222c6f2",
      "parents": [
        "3523909c99a27729d9a0d6fe3624f09dfadf351c"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Sep 11 14:33:18 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Sep 18 09:24:45 2013 +0200"
      },
      "message": "Optimize instruction data fetch in interpreter.\n\nThe computed goto implementation prevents the compiler from detecting we are\nloading the first 16 bits of instruction twice: first one to get the opcode and\nsecond one to fetch first instruction\u0027s operand(s) like vA and vB.\n\nWe now load the 16 bits into a local variable and decode opcode and operands\nfrom this variable. And do the same in the switch-based implementation for\nconsistency.\n\nThe performance improvement is 5% in average on benchmark applications suite.\n\nAlso remove unused \"Thread* self\" parameter from DoIGetQuick and DoIPutQuick.\n\nBug: 10703860\nChange-Id: I83026ed6e78f642ac3dcdc6edbb6056fe012005f\n"
    },
    {
      "commit": "3523909c99a27729d9a0d6fe3624f09dfadf351c",
      "tree": "610a5acc4d2e78d43a551380527304270d841f73",
      "parents": [
        "8c7ec8cd8e39809ed31cb62bc3b068430042bd76",
        "947ff080753c786a74f1cd7aeb09f717bb7074bd"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Sep 18 07:10:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 07:10:55 2013 +0000"
      },
      "message": "Merge \"Load shadow frame\u0027s this object only upon instrumentation.\" into dalvik-dev"
    },
    {
      "commit": "8c7ec8cd8e39809ed31cb62bc3b068430042bd76",
      "tree": "0ef55b9099fab8a4216e06ce67655d38f7a43940",
      "parents": [
        "b307052d619ec757478951fc026e6230c92e3b36",
        "6aa3df965395566ed6a4fec4af37c2b7577992e9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 18 00:33:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 00:33:01 2013 +0000"
      },
      "message": "Merge \"Refactor system weak sweeping, add support for modification.\" into dalvik-dev"
    },
    {
      "commit": "52cd1e8f2f0622a174f883e24151ab873170787f",
      "tree": "01aab8fb4ccd930e7b11bb353f1d344170f30acf",
      "parents": [
        "5666afd6854b5634ae741dc8a3a633fc47d52168"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 17 16:25:12 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 17 17:21:48 2013 -0700"
      },
      "message": "Allow traversal into /storage paths.\n\nApps are no longer required to have sdcard_r or sdcard_rw to access\nsome parts of external storage.  Relax the mount parameters to allow\neveryone to traverse.\n\nBug: 10577808\nChange-Id: Ife3c6fb18028f7093ff853459c1ca1e0ec7a6d01\n"
    },
    {
      "commit": "6aa3df965395566ed6a4fec4af37c2b7577992e9",
      "tree": "c17406cf6cbea16165ad05130609450ff0e1e204",
      "parents": [
        "cb135ad769a5368f6ceb8caf25105a95580cbd6a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 15:17:28 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 16:31:24 2013 -0700"
      },
      "message": "Refactor system weak sweeping, add support for modification.\n\nRequired for moving collectors.\n\nChange-Id: Ib97ba4a05af1139f8d388077a15e62bcb9534855\n"
    },
    {
      "commit": "b307052d619ec757478951fc026e6230c92e3b36",
      "tree": "7fee60cf62ec02fab20f70f111b5925be8a772fa",
      "parents": [
        "cb135ad769a5368f6ceb8caf25105a95580cbd6a",
        "613eae4a6f75282c0737a84850418afcab54d4e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 14:18:21 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 14:18:21 2013 -0700"
      },
      "message": "resolved conflicts for merge of 613eae4a to dalvik-dev\n\nChange-Id: I61734cbf585decf9a50ba23f008b341d025339ff\n"
    },
    {
      "commit": "c4621985bdfc2b27494087e5dee65a6d0cc5a632",
      "tree": "d8165f5b8d337e73942ee29d66fb40585dc7caf1",
      "parents": [
        "5666afd6854b5634ae741dc8a3a633fc47d52168"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 16 19:43:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 10:03:00 2013 -0700"
      },
      "message": "Fix race in root marking.\n\nThere was a race which caused the class linker / intern table to not\nbecome dirty after adding a root. We now guard the is dirty flag by\nthe corresponding locks to prevent this from occuring. This was\ncausing roots to be occasionally missed.\n\nAlso fixes the bug where we occasionally scan more cards than\nneeded.\n\nBug: 10626133\n\nChange-Id: I0f6e72d92035ff463954d66988ef610ea0df61be\n"
    },
    {
      "commit": "947ff080753c786a74f1cd7aeb09f717bb7074bd",
      "tree": "ae8d4ceb42602b19b62b61205a5bcb70e6ef6ab3",
      "parents": [
        "ad5f8731448f03c59d5fc8d9b5b25ee91d351ba9"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 17 14:10:13 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 17 15:28:37 2013 +0200"
      },
      "message": "Load shadow frame\u0027s this object only upon instrumentation.\n\nWe used to load the shadow frame\u0027s this object when entering the interpreter\nand push it into thread\u0027s SIRT to make it visible to garbage collector. But\nit is only used by instrumentation listeners.\n\nWe now move this load at each place an instrumentation listener is called. This\navoids loading it when instrumentation is disabled. This also allows to remove\nthe SIRT reference and the push/pop management it implies when entering/exiting\nthe interpreter.\n\nThe performance improvement is 6% in average on our benchmarks suite.\n\nThis CL also makes method Instrumentation::ExceptionCaughtEvent const so we can\nuse a \"const instrumentation::Instrumentation*\" object in interpreter.\n\nChange-Id: I2caccba9a906f244c8057b24031250f9824cc711\n"
    },
    {
      "commit": "775c85e5b18b83d3402f4075d7ae1b982a1b3982",
      "tree": "999dd030ce30b3dd63daa1f8704b234ad994307f",
      "parents": [
        "ad5f8731448f03c59d5fc8d9b5b25ee91d351ba9",
        "423d2a3dcbb260b020efb5da59f784c9f02accbf"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 17:54:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 13 17:54:46 2013 +0000"
      },
      "message": "Merge \"Add support for changing roots through the root visitor callback.\" into dalvik-dev"
    },
    {
      "commit": "423d2a3dcbb260b020efb5da59f784c9f02accbf",
      "tree": "79ed739e6072f8308c1cd880f9420a1c63539c95",
      "parents": [
        "b048dd2b662c19644361f4396a1e8d6213445ee8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 17:33:56 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 10:30:24 2013 -0700"
      },
      "message": "Add support for changing roots through the root visitor callback.\n\nNeeded for copying collectors.\n\nChange-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877\n"
    },
    {
      "commit": "ad5f8731448f03c59d5fc8d9b5b25ee91d351ba9",
      "tree": "c59834b97b28fbe84ed92b5675c2da57b3a70a61",
      "parents": [
        "109c333eb339f187df3274afe54b994e2a87308d",
        "cdf2d4cbbb1d0cf3e9f80d3dca609a3435c74427"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 13 16:02:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 13 16:02:27 2013 +0000"
      },
      "message": "Merge \"Update interpreter handler table after invoke.\" into dalvik-dev"
    },
    {
      "commit": "cdf2d4cbbb1d0cf3e9f80d3dca609a3435c74427",
      "tree": "8c528f54d745d2ba166e749f81c9d1ca78987d4b",
      "parents": [
        "174e9192843002a98e2d2ed26031e83f944645d1"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 13 14:57:51 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 13 18:00:02 2013 +0200"
      },
      "message": "Update interpreter handler table after invoke.\n\nAnd introduce UPDATE_HANDLER_TABLE macro to reduce copy \u0026 paste.\n\nChange-Id: I9ea7565df0db2b44581d0e6bcefb5f104e76ed01\n"
    },
    {
      "commit": "75165d015cc737f951d4264f8c55012298abdb18",
      "tree": "7456a0d7ae25f17172791637aecca68728723429",
      "parents": [
        "ab280c02ab94734c38415164ba880881e104ae38"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 14:00:31 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 14:10:46 2013 -0700"
      },
      "message": "Add valgrind support to compiler arena allocator.\n\nChange-Id: Id9974301d3810bfac968ee562b01a11098e402c2\n"
    },
    {
      "commit": "967a0adf8b93a23d2a8fef82e06bd913db94ac19",
      "tree": "35b7fbf6eb1899736213e57e11c85d16c1b4853e",
      "parents": [
        "af3994db1b42929666b6a50c3c4b237a25c99951"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 10 16:24:21 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 11 15:38:23 2013 -0700"
      },
      "message": "More allocation code optimizations.\n\n- Inline Class::AllocObject() and Array::Alloc().\n- Inline some short Mutex functions and add LIKELY/UNLIKELY to some\n  Mutex functions.\n- This change improves the Ritz MemAllocTest by ~6% on Nexus 4 and\n  ~10% on host.\n\nBug: 9986565\nChange-Id: I1606c74ddb21676cbc1de1a40e9b076fc23eaea4\n"
    }
  ],
  "next": "291ddd01a679808cc7e27b70c2a53c83edc980c8"
}
