)]}'
{
  "log": [
    {
      "commit": "25352fc06c84cdab8a2ab6d173b0514066ade2b9",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 09:48:50 2016 +0100"
      },
      "message": "class_linker: Add support for resolving method types.\n\n- Add a new fixed size dex cache array for resolved method types.\n  The size of this array is set to 1024.\n- Also introduces a new runtime flag that controls this feature.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I147b33398d71ee21f2e91b418d3700d4630801ff\n"
    },
    {
      "commit": "e89e1b5fa28c38e4bcb508ef2fff5e1ab6572df9",
      "tree": "a09441ed36a407ab0d5d552fdff531f94462df17",
      "parents": [
        "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
        "0576575d075e97a227010b4adf74ad5c8a920bde"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "message": "Merge \"String Compression for ARM and ARM64\""
    },
    {
      "commit": "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
      "tree": "6299d747f758840c0270ceb00f103ecdd03725f5",
      "parents": [
        "6fa67a0261ba920614b3b262b2fa6173a885e6ef",
        "4877b7986c9ba5c69be8f80692c260b4952f69be"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "message": "Merge \"String compression on intrinsics x86 and x86_64\""
    },
    {
      "commit": "0576575d075e97a227010b4adf74ad5c8a920bde",
      "tree": "c31eb030933e74d6d103979bcf0d1226e769eb5b",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:01:32 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 10:51:50 2016 -0700"
      },
      "message": "String Compression for ARM and ARM64\n\nChanges on intrinsics and Code Generation on ARM and ARM64\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for ARM before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.60% and boot.art decreased by 9.38%.\n\nMeanwhile for ARM64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.48% and boot.art decreased by 6.58%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-target\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nBug: 31040547\nChange-Id: I24e86b99391df33ba27df747779b648c5a820649\n"
    },
    {
      "commit": "4f0cabfe1324fd42190df29245f33897510b74fd",
      "tree": "4cc06a02c10935dba86ebf7c7d196933c42890ae",
      "parents": [
        "523b51537f87991d79818690f1fa2ef08f09e145",
        "9642b1b698c1239cb13c8774936fd990c1a6a6c6"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 30 17:37:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 17:37:57 2016 +0000"
      },
      "message": "Merge \"Remove dependency on libcutils\""
    },
    {
      "commit": "4877b7986c9ba5c69be8f80692c260b4952f69be",
      "tree": "96b7076efea6d0d95322382a76b4759ff92ed8d5",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Thu Sep 08 19:49:13 2016 -0700"
      },
      "committer": {
        "name": "Jessica Handojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 17:10:48 2016 +0000"
      },
      "message": "String compression on intrinsics x86 and x86_64\n\nChanges on intrinsics and Code Generation (x86 and x86_64)\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for x86 before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.83% and boot.art decreased by 19.32%.\n\nMeanwhile for x86_64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.87% and boot.art decreased by 6.59%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-host\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nThe jni_internal_test changed to assert an empty string length\nto be equal -(1 \u003c\u003c 31) as it is compressed.\n\nBug: 31040547\nChange-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "9642b1b698c1239cb13c8774936fd990c1a6a6c6",
      "tree": "179a8916660a0de5ee8c923c080dfd7af0fa3147",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 28 02:44:00 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 30 08:16:18 2016 -0700"
      },
      "message": "Remove dependency on libcutils\n\nUse liblog for liblog (instead of libcutils)\nReplace calls to property_get with libbase\nGetProperty()\n\nBug: http://b/31289077\nBug: http://b/27171986\nTest: remove liblog from libcutils and recompile\nTest: make test-art-target -j4\nChange-Id: I2a2913af8f521131558e9dd672d3973a64a410d3\n"
    },
    {
      "commit": "428792553e59452d0b6fdbf2460072d697c966db",
      "tree": "c4d3c14944e772cd98f2fd76e4f41c2fbc3f6acf",
      "parents": [
        "ce157a6864bd346152bef1b66d050cfb144f56b5",
        "63dccbbefef3014c99c22748d18befcc7bcb3b41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "message": "Merge \"Store resolved Strings for AOT code in .bss.\""
    },
    {
      "commit": "ce157a6864bd346152bef1b66d050cfb144f56b5",
      "tree": "680e63bce75f85faf6519d72b74c1712d54e141d",
      "parents": [
        "394b8b23dff716daaf64c79684d13575f6ff2d05",
        "762869dee6e0eadab5be1c606792d6693bbabf4e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 11:38:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 11:38:56 2016 +0000"
      },
      "message": "Merge \"Simplify our intrinsic recognizer.\""
    },
    {
      "commit": "394b8b23dff716daaf64c79684d13575f6ff2d05",
      "tree": "b79c2b911ca9267efa0770872f3f8598ab4fef01",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb",
        "9d07414a255cd53f9582497cbc918b7df698c1e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 10:47:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 10:47:24 2016 +0000"
      },
      "message": "Merge \"Move two dangling mirror objects into handles.\""
    },
    {
      "commit": "762869dee6e0eadab5be1c606792d6693bbabf4e",
      "tree": "8c986c621e8a5f3cf4e4e3b2cc13b400401ad89b",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 15 15:28:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:44:31 2016 +0100"
      },
      "message": "Simplify our intrinsic recognizer.\n\n- Use the modifiers for storing the intrinsic kind.\n- Delete dex_file_method_inliner and its associated map.\n\nThis work was also motivated by the fact that the inline\nmethod analyzer leaks intrinsic tables, and even worse, might re-use\na table from one dex file to another unrelated dex file in the presence\nof class unloading and the unlikely event of the dex files getting\nthe same address.\n\ntest: m test-art-host m test-art-target\n\nChange-Id: Ia653d2c72df13889dc85dd8c84997582c034ea4b\n"
    },
    {
      "commit": "9d07414a255cd53f9582497cbc918b7df698c1e4",
      "tree": "757ebcdd5420f564ab51b0369d0f17292efbb84c",
      "parents": [
        "74a69eda053486e2d563f888a689586c5cfa7217"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 09:51:32 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:09:08 2016 +0100"
      },
      "message": "Move two dangling mirror objects into handles.\n\ntest: libcore.java.lang.reflect.MissingClassesTest#testGetFieldFails\ntest: ./art/tools/run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: Ib708e914cac6abe4d4fc7cb88e258da83a8219ab\n"
    },
    {
      "commit": "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb",
      "tree": "b5f5d310edebdb8563c32af8e9b7f9e02c2e8268",
      "parents": [
        "74a69eda053486e2d563f888a689586c5cfa7217",
        "c38a6f8e8d18b85113d1a585235e997779583c80"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 08:52:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 08:52:28 2016 +0000"
      },
      "message": "Merge \"dex_cache: rewrite StringDexCachePair as DexCachePair\u003cT\u003e\""
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "c38a6f8e8d18b85113d1a585235e997779583c80",
      "tree": "ce04e813a10e1edfdd0ad1bad520fc5f3f8b06f2",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 17:07:20 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 18:31:22 2016 +0100"
      },
      "message": "dex_cache: rewrite StringDexCachePair as DexCachePair\u003cT\u003e\n\n.. with [T \u003d mirror::String]. This is in preparation for introducing\na dex cache array for MethodTypes, which will be treated the same way.\n\nTest: make test-art-host\nbug: 30550796\nChange-Id: Ief4455b4c6e4c9dd897f2c40b14b843a57b1dc8e\n"
    },
    {
      "commit": "63dccbbefef3014c99c22748d18befcc7bcb3b41",
      "tree": "60a498041bebff43bc1f43d438e3bc34a30887f7",
      "parents": [
        "6bee25976782a063d6b44f7718a6302761bf6403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 21 13:51:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 29 15:58:43 2016 +0100"
      },
      "message": "Store resolved Strings for AOT code in .bss.\n\nAnd do some related refactorings.\n\nBug: 20323084\nBug: 30627598\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e\n"
    },
    {
      "commit": "afa48270228832ecd7df4506915354d1a41f374a",
      "tree": "7d63c5bde346eb129f3159b07b2a66dfa86aeb41",
      "parents": [
        "72795d0a3368a7f921ce2f470917131cd946b717"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 13:15:32 2016 +0100"
      },
      "message": "java.lang.invoke: Add mirror types for MethodHandle / MethodType.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I096160464bc6e84f7e5ad021306a7e462cf3b0c5\n"
    },
    {
      "commit": "dd2b8a5d78a2515f10ab7bbb0a18f42b4e7fa23f",
      "tree": "2a9b8dc9b00001d89650ec7f3066211eaf942f19",
      "parents": [
        "73dac6e3668e91ddd3123a8c5ddb08c76b178fca",
        "77d9dd75d5d4a22ad1235f9a08d2cfbf2f0ae6fa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 28 23:57:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 23:57:11 2016 +0000"
      },
      "message": "Merge \"Update oat file version to 089\""
    },
    {
      "commit": "77d9dd75d5d4a22ad1235f9a08d2cfbf2f0ae6fa",
      "tree": "86f0f1c650a43f629ccd12c0947c9832af5a6adb",
      "parents": [
        "1c3ca75e63c67c1ab080ede937f21eb1f1184076"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 28 15:04:03 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 28 15:18:40 2016 -0700"
      },
      "message": "Update oat file version to 089\n\nIn order to ensure that the 088 oat version used in an internal branch\nis not repeated in any other versions we are skipping it and moving\nthe oat version to 089.\n\nBug: 31789675\nTest: mma test-art-host\nChange-Id: Iaa2ba972caa223f8c747cc739aa4daa11eec3e33\n"
    },
    {
      "commit": "4d46970b8a2719fefc2e8ca5ee52eeb6c3ce49f0",
      "tree": "6ba332eccdcd0adc5975a4ea8f24b685da520a4b",
      "parents": [
        "1c3ca75e63c67c1ab080ede937f21eb1f1184076",
        "a59d9b228b1eda3bf71a81b6201ec64e26086c23"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 28 22:04:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 22:04:14 2016 +0000"
      },
      "message": "Merge \"Use ObjPtr for reflection.cc/h/inl\""
    },
    {
      "commit": "d30e51ac25c6512a6a974c7955389b61a7ee20a2",
      "tree": "a8865a10654985a50c091a82e55c50cba6b5290b",
      "parents": [
        "7f7fb9c0dcb5fc0ed251b3f9bb775de5278534a7",
        "a3bbf8bf436fd7567097b8ca0d7bd24fdf5ae08b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 28 18:01:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 18:01:40 2016 +0000"
      },
      "message": "Merge \"ART: Dump referenced type in IRT overflows\""
    },
    {
      "commit": "7f7fb9c0dcb5fc0ed251b3f9bb775de5278534a7",
      "tree": "f47ebd7b366af0e976cdb361677eb7720fe615b7",
      "parents": [
        "1b6cf7fbca0fd90ae58938e4a16a77b79a83408e",
        "75a7db67f0e56bc0ccc63df4a6a1bb04ab3e86b1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 28 17:41:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 17:41:06 2016 +0000"
      },
      "message": "Merge \"ART: Factor out IMT from ArtMethod\""
    },
    {
      "commit": "a3bbf8bf436fd7567097b8ca0d7bd24fdf5ae08b",
      "tree": "e01c088615fe1b8354099033e25cf68e5801234d",
      "parents": [
        "1b6cf7fbca0fd90ae58938e4a16a77b79a83408e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 27 18:45:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 28 09:56:41 2016 -0700"
      },
      "message": "ART: Dump referenced type in IRT overflows\n\nWhen the runtime dumps a reference table, e.g., when aborting for\nan overflow, dump the type of stored referents for reference types\nto aid in debugging leaks.\n\nBug: 31600693\nTest: m test-art-host-gtest-reference_table_test\nChange-Id: Ia892dc84ca8827dd93a8b75d6f571c392f94859c\n(cherry picked from commit 280f32b095f55f24dc557f9a9067d223901214ce)\n"
    },
    {
      "commit": "75a7db67f0e56bc0ccc63df4a6a1bb04ab3e86b1",
      "tree": "2d426df6f2807606811c45ae22597e2098dd8a2f",
      "parents": [
        "fd8339e58e3c09097165feeed7a2d70482d40130"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 12:04:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 28 09:00:08 2016 -0700"
      },
      "message": "ART: Factor out IMT from ArtMethod\n\nMove IMT Conflict Table to its own file. Move IMT index computation to\nImTable.\n\nIn preparation for code using this independent of specific ArtMethods.\n\nBug: 31594153\nTest: m test-art-host\nChange-Id: Ifd6e304bb86724c5284984c4655c43d3af357f84\n"
    },
    {
      "commit": "1b6cf7fbca0fd90ae58938e4a16a77b79a83408e",
      "tree": "2133501ea65ed0318e879f2cdeb19625ba02f72f",
      "parents": [
        "fd8339e58e3c09097165feeed7a2d70482d40130",
        "79a21e798abde263afdb5c8d1c191c84748fe06e"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 28 12:29:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 12:29:53 2016 +0000"
      },
      "message": "Merge \"Add support for Executable.getParameters() metadata\""
    },
    {
      "commit": "79a21e798abde263afdb5c8d1c191c84748fe06e",
      "tree": "f8a0b129dfdafba1f3520930b49f16fbde2eea8a",
      "parents": [
        "38e1882858d90ba147511af2df144c606fbf7c7c"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Sep 09 14:24:51 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 28 11:19:29 2016 +0100"
      },
      "message": "Add support for Executable.getParameters() metadata\n\njava.lang.reflect.Executable native code to create Parameter\nobjects and supporting code for obtaining the system annotations\nthat hold the parameter metadata.\n\nBug: 30391692\nTest: test-art-host and CtsLibcoreTestCases\nChange-Id: I23d7e36014716967ce189fba5955cc5e064fe8d0\n"
    },
    {
      "commit": "b737745c79cbfa4fb3f9dfcb4560c5179f94851b",
      "tree": "28470f0ac6af58402ea1c43070cded51a27ed58e",
      "parents": [
        "05ce52b406dcf6b9a24287d14f0e611211e0db3d",
        "15af34cc172d9ae652da35a864190585cb6717a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 27 23:53:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 27 23:53:08 2016 +0000"
      },
      "message": "Merge \"Fix a CC deadlock in 129-ThreadGetId.\""
    },
    {
      "commit": "a59d9b228b1eda3bf71a81b6201ec64e26086c23",
      "tree": "91adf9f0e282eec50ccb28aa2dbc432a5e28d13f",
      "parents": [
        "05ce52b406dcf6b9a24287d14f0e611211e0db3d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 26 18:13:17 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 16:10:35 2016 -0700"
      },
      "message": "Use ObjPtr for reflection.cc/h/inl\n\nChanged Pretty helpers to use this to reduce usage of Decode. The\neventual goal is not have almost any calls to ObjPtr::Decode.\n\nMoved ObjPtr out of mirror namespace for convenience. Added more\nPoisonObjectPointers calls in class linker, thread suspension.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I44d08db5143d95ed1b65e2f00f9749ef5cf379f7\n"
    },
    {
      "commit": "83b13b32f356f20875e82c10d15fe2b0bad51fe9",
      "tree": "4167c58fb2ca76b8c5d55f37a5131c03ef7a5ba2",
      "parents": [
        "38e1882858d90ba147511af2df144c606fbf7c7c",
        "3f7f03ce9a102a23961753753b5aa500226b0581"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:17:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 27 18:17:00 2016 +0000"
      },
      "message": "Merge \"Add basic support for object pointer poisoning\""
    },
    {
      "commit": "15af34cc172d9ae652da35a864190585cb6717a6",
      "tree": "bdf02e7dc6f0edaafff3c4164e2b1bdf2791d08a",
      "parents": [
        "35505bfe62f667cc84549b4ded81818d5ea2447e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 26 16:56:24 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 27 10:19:12 2016 -0700"
      },
      "message": "Fix a CC deadlock in 129-ThreadGetId.\n\nGC should consider a thread as \"waiting for GC thread flip\" or\n\"transitioning to runnable\" only if its suspend count is 1.\n\nSee 31683379#7 for the deadlock scenario.\n\nBug: 31683379\nBug: 12687968\nTest: test-art with CC and gcstress, N9 libartd boot, Ritz EAAC.\nChange-Id: Icd2548bd6d9a4f8d7b54ed20150a4801af9e26a3\n"
    },
    {
      "commit": "38e1882858d90ba147511af2df144c606fbf7c7c",
      "tree": "374e6aee950cbf9241a172a3df2a30952ec10c77",
      "parents": [
        "adc4e8297c9659125ae2a3d1a4b089312c2e2dd8",
        "6e17410d3655f2b98b4336454bfc20a565dd549b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 27 15:10:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 27 15:10:57 2016 +0000"
      },
      "message": "Merge \"ART: Fix dependencies\""
    },
    {
      "commit": "adc4e8297c9659125ae2a3d1a4b089312c2e2dd8",
      "tree": "7b28b33461294ec46df64af8bdd7a648c4f5de0d",
      "parents": [
        "fc916a6c9a2c0d3b63005cf7ae26cbf08bd89c7d",
        "da079bba8403733cac9bb7415b038ffd77e62403"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 27 09:31:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 27 09:31:33 2016 +0000"
      },
      "message": "Merge \"Cleanup String.\u003cinit\u003e handling.\""
    },
    {
      "commit": "da079bba8403733cac9bb7415b038ffd77e62403",
      "tree": "3bfed6ea39483bda20c0059763c30aee2e6e5791",
      "parents": [
        "a1d66b9050aeecd7e698c51155f0dbc0198a6822"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 26 17:56:07 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 27 10:30:34 2016 +0100"
      },
      "message": "Cleanup String.\u003cinit\u003e handling.\n\nMove everything to one place (currently well_known_classes.cc, but\nno strong preference) and define a macro to easily handle the list\nof affected methods.\n\ntest: m test-art-host\ntest: m test-art-target\nChange-Id: Ib8372d130d5458516a1f1ae31014afc76037fc34\n"
    },
    {
      "commit": "6e17410d3655f2b98b4336454bfc20a565dd549b",
      "tree": "e29ff34168a2b6d9180bf8fe101c7ffbd7c6157d",
      "parents": [
        "2ac59375f80f1b3071f4836f57f9b82ee4e8a99e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 20:17:42 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 20:18:49 2016 -0700"
      },
      "message": "ART: Fix dependencies\n\nAdd libbase to libart-simulator.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I956465f8d380e856cddf7f53c5aae358847b52ed\n"
    },
    {
      "commit": "3f7f03ce9a102a23961753753b5aa500226b0581",
      "tree": "9ff7596cab02c78fc78c95129d12f836cb262531",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 26 11:39:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 26 16:30:40 2016 -0700"
      },
      "message": "Add basic support for object pointer poisoning\n\nObjPtr is a pointer that checks for heap corruption and is meant\nto replace mirror::Object* in places where a mirror::Object* is a\nlocal variable. Whenever there is a possible suspend point, the\ncurrent thread\u0027s object pointers are all invalidated. This is done\nby storing a cookie in the object pointer associated with what thread\ncreated it.\n\nAdded test case in object_test.\n\nExample failure:\nobject_test F 25379 25379 object_pointer.h:70] Check failed:\nIsValid() Invalid cookie, expected 0 but got 2\n\nBug: 31113334\n\nTest: test-art-host-gtest-object_test\n\nChange-Id: I9fa80ccaf2f0448621942935af702a243a3e1ee6\n"
    },
    {
      "commit": "42c49d236c2dc02c4d3ce8ddd890a48d3812f70e",
      "tree": "0a9ff4247ae3ee3468f6c636dbdc9f38f64c7e34",
      "parents": [
        "cda79e87e0e12ad0b413dd3df3ba4662a3b4b1cb",
        "58246a13ded36d5256c6fcd3cc60bae5705a73bd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 26 23:00:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 26 23:00:02 2016 +0000"
      },
      "message": "Merge \"ART: Revert base/logging conditional hacks\""
    },
    {
      "commit": "d6e54bbc09595465309aa7909b7a3965defe4419",
      "tree": "9c12c8a0192119725e8659f593704bc416b222e0",
      "parents": [
        "a4850b0fa18c8b92dd5c20c166856cfe87aec72f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 14:07:57 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 14:07:57 2016 -0700"
      },
      "message": "ART: Fix nits\n\nFollow-up to commit 3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: Ia50f450bef144167b946224c26242c529302996e\n"
    },
    {
      "commit": "58246a13ded36d5256c6fcd3cc60bae5705a73bd",
      "tree": "c541e811079bd74d506db3a1b906c5f32ed7684e",
      "parents": [
        "a4850b0fa18c8b92dd5c20c166856cfe87aec72f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 12:51:53 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 12:55:11 2016 -0700"
      },
      "message": "ART: Revert base/logging conditional hacks\n\nThis partially reverts commit bda1d606f2d31086874b68edd9254e3817d8049c.\nART was switched to libbase logging.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I1a2f90d1ddb67d45ebe28d970b3ee7fd2d16a730\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "0cfe19af3b7395658210ea6044a65c9811962a7a",
      "tree": "87908d9f7ef7dde54da49c7695542ba9aa5b5856",
      "parents": [
        "3cc69a894444ccd2450b100ae41fd2a932a38749",
        "9fddd3657ba500fdd761ec13ffe4f0c3cbab9097"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 26 14:34:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 26 14:34:49 2016 +0000"
      },
      "message": "Merge \"Fix CTS crash from DexFile refactoring\""
    },
    {
      "commit": "ad1f0ad512cac82e5db05aa8237608ba8424c130",
      "tree": "bea96bcd2d27d15708d41153a81e02789602884a",
      "parents": [
        "48ec36f8a081ee36851a352b8fbbea88fb9233f2",
        "1d3038f45782d5e71b1415d0660d43cc7645fc86"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 24 01:31:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 24 01:31:25 2016 +0000"
      },
      "message": "Merge \"Use liblog for liblog (instead of libcutils)\""
    },
    {
      "commit": "48ec36f8a081ee36851a352b8fbbea88fb9233f2",
      "tree": "79a8ee93ea125f23d3318302648d29effab4df10",
      "parents": [
        "c16672a0262a0269af9c91b5c2b67e485bbef59b",
        "496577fb4d6d7baea9c093d35d17e208c831bbca"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 24 00:37:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 24 00:37:51 2016 +0000"
      },
      "message": "Merge \"Smarter image layout\""
    },
    {
      "commit": "1d3038f45782d5e71b1415d0660d43cc7645fc86",
      "tree": "2ed38789a55cc909cb986cd2f79e37eafeb388f8",
      "parents": [
        "c16672a0262a0269af9c91b5c2b67e485bbef59b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 23 16:52:05 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 23 16:52:05 2016 -0700"
      },
      "message": "Use liblog for liblog (instead of libcutils)\n\nBecause one wouldn\u0027t use libcutils if there is a liblog.\n\nBug: http://b/31289077\nBug: http://b/27171986\nTest: remove liblog from libcutils and make\nChange-Id: I5e7eb3a67a483835933e1b5587d43b697e39ceac\n"
    },
    {
      "commit": "496577fb4d6d7baea9c093d35d17e208c831bbca",
      "tree": "1da9976883a8fea0dc05a58ec9bbd347b010fc19",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 20 15:33:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 23 15:27:26 2016 -0700"
      },
      "message": "Smarter image layout\n\nPut strings in the dex file that resolves them.\n\nDepth first traversal with overrides for class and dex cache. The\nwork list keeps track of what oat_index with each pushed item. This\nmeans the static fields of a class will usually be in the same image.\n\nAdded layout test to image_test to make sure things are somewhat\nreasonably attributed.\n\nBug: 28640955\n\nTest: test-art-host\n\n(cherry picked from commit 4e9c4e746617bad6a012d799d2f5cf9e01d24ea2)\n\nChange-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559\n"
    },
    {
      "commit": "9fddd3657ba500fdd761ec13ffe4f0c3cbab9097",
      "tree": "c1678ed0cd5e23f6663661cb3a1f6739ac0cf376",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Sep 22 14:05:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Sep 23 11:04:06 2016 -0700"
      },
      "message": "Fix CTS crash from DexFile refactoring\n\nAvoid path to nullptr access introduced by the previous refactoring.\n\nBug: 22322814\nChange-Id: Id8874b26c072a11b0494e8126f8b0602a7c5b9e8\nTest: m test-art-host, cts-tradefed run cts --skip-preconditions --skip-device-info --module vm-tests-tf\n"
    },
    {
      "commit": "c16672a0262a0269af9c91b5c2b67e485bbef59b",
      "tree": "58af5ca1c3319adbef58b932856f6a8f5401f283",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97",
        "bfa1f8dcfe2a6172709928768143299ddb7627eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 23 17:05:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 23 17:05:41 2016 +0000"
      },
      "message": "Merge \"Add CanWriteToDalvikCache() check before writing a boot marker or image cache.\""
    },
    {
      "commit": "764f38f9398ccb7748a5bf1378839a44ed72c071",
      "tree": "bdffcd0e4762f137b4331ed1b6b893e74f1b190e",
      "parents": [
        "4b55b4b39a09ffb6850ed8ba7c5782dea07b5b83",
        "866d874c4fca90385251a1df28eed0eb6e1b88e2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 03:43:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 03:43:56 2016 +0000"
      },
      "message": "Merge \"Make image test multi image\""
    },
    {
      "commit": "866d874c4fca90385251a1df28eed0eb6e1b88e2",
      "tree": "ae853738fe345523af56be0a021f46bc90e0d2ed",
      "parents": [
        "be0f728348139a9185b08d4d5c5adfa806bee00b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 15:24:18 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 18:43:45 2016 -0700"
      },
      "message": "Make image test multi image\n\nRequired for testing multi image layout in future CLs.\n\nBug: 28640955\n\nTest: clean-oat-host, test-art-host, device booting\n\n(cherry picked from commit 25adcfb7dc81131add3a0a681ae18bced6f7a0e0)\n\nChange-Id: I14809f56e711b4a87e01056c327eddbbd087f4ee\n"
    },
    {
      "commit": "4b55b4b39a09ffb6850ed8ba7c5782dea07b5b83",
      "tree": "80b7913b16477d197be4b301bafa5667e380c162",
      "parents": [
        "524dfe8086e5e6ea86f5106bab800e5390a28aed",
        "9c20a14103f87a8a7ad53f7d3e863887ea4e800a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 01:06:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 01:06:27 2016 +0000"
      },
      "message": "Merge \"Get a basic modification of dex file working\""
    },
    {
      "commit": "524dfe8086e5e6ea86f5106bab800e5390a28aed",
      "tree": "5b0d1f99acd67d1d77896b879f0e65e4b3603a5e",
      "parents": [
        "16cb669007859ebc986c5459fc302f62b0aa89db",
        "06a04e0e776875303577c2d871b53a53c78da1b5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 00:37:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 00:37:07 2016 +0000"
      },
      "message": "Merge \"jni: Implement generic JNI support for @CriticalNative/@FastNative\""
    },
    {
      "commit": "9c20a14103f87a8a7ad53f7d3e863887ea4e800a",
      "tree": "1fd4b123bae008f670f806024c88d3dc404da24b",
      "parents": [
        "a51a135f114f6f0dbf7c4afd336f68b4a0d1bb7d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 23 15:05:12 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 21 15:47:06 2016 -0700"
      },
      "message": "Get a basic modification of dex file working\n\nThis allows the modification of a single classes methods through\ntransformation. One must ensure that the provided dex file only\ncontains one function and does not add or remove any methods or fields\nand does not change the inheritance hierarchy in any way. The provided\ndex file must verify and there must be no frames of the old code\npresent on any thread. These constraints are not checked or verified.\nBreaking them might cause undefined behavior in all parts of the\nruntime. Code that has been inlined in any way might not be replaced.\nThis feature is extremely experimental.\n\nBug: 31455788\nTest: ./test/run-test --host 902-hello-transformation\n\nChange-Id: I35133d24f6cdafdd2af9dc9863e15ba8493fc50e\n"
    },
    {
      "commit": "06a04e0e776875303577c2d871b53a53c78da1b5",
      "tree": "6f8b38fa918f49cc502b573c96d9a6338ad343df",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Sep 13 15:57:37 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 21 13:32:00 2016 -0700"
      },
      "message": "jni: Implement generic JNI support for @CriticalNative/@FastNative\n\nAlso:\n* Extend existing test cases to check generic JNI for the above.\n* Re-enable previously blacklisted @CriticalNative JNI run-tests.\n\nBug: 31400248\nChange-Id: I436ed00c8b8880e936a0c3483bc0dc251f0c0ce2\n"
    },
    {
      "commit": "ce092d0e374107fc7416416848d3f232233f84ee",
      "tree": "70a60a9c54cc8c4b9b0282f511910411be73efd4",
      "parents": [
        "85bf9def7f1711fa402cd1e5bf02a6566870f9a7",
        "733ddb2af025aca54582fef95fb714e0df422c78"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 21 16:53:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 16:53:26 2016 +0000"
      },
      "message": "Merge \"Refactor Dex open methods\""
    },
    {
      "commit": "85bf9def7f1711fa402cd1e5bf02a6566870f9a7",
      "tree": "cb411c9060ec40d0391d749f51b78bb0ca24c66f",
      "parents": [
        "d26a0a64d0e68746be74859aed520a590d79995f",
        "5d5a36bddbc008cd52a3207aa2b31177c47f9a49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 21 16:51:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 16:51:58 2016 +0000"
      },
      "message": "Merge \"Write VerifierDeps into VDEX.\""
    },
    {
      "commit": "5d5a36bddbc008cd52a3207aa2b31177c47f9a49",
      "tree": "e847cf69c78cddb1d9a4bc273626827d170a524c",
      "parents": [
        "834582c4b023b5cea5775bef238ca1854a3425c4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 15:34:10 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:17:53 2016 +0100"
      },
      "message": "Write VerifierDeps into VDEX.\n\nThis patch serializes VerifierDeps data and writes them into VDEX.\nIt also extends the VDEX header with sizes of the DEX and verifier\ndependencies sections.\n\nBug: 30937355\nChange-Id: I5aa5fc5eb8678533117138e445b757fa771973fb\n"
    },
    {
      "commit": "bfa1f8dcfe2a6172709928768143299ddb7627eb",
      "tree": "e2be8a78edb83b0da34f77697405aa53f9962e32",
      "parents": [
        "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Mon Aug 15 15:21:09 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Wed Sep 21 11:17:38 2016 -0400"
      },
      "message": "Add CanWriteToDalvikCache() check before writing a boot marker or image cache.\n\nA new zygote process, the webview_zygote, will spawn isolated_app children,\nbut the process itself does not run as root and cannot write to the dalvik\ncache. In order to not print SELinux avc errors, check for file-write\npermission when testing to see if a boot marker or cache image or should be\nwritten.\n\nTest: m test-art\nTest: angler boots\n\nBug: 21643067\nChange-Id: I9f797fe7332a21ef4c6b83d2210b1673af09de1b\n"
    },
    {
      "commit": "733ddb2af025aca54582fef95fb714e0df422c78",
      "tree": "e728e115a21e395b8d1d68f95f2552897e85e1f5",
      "parents": [
        "c4cb3d532db8a500c1a15e8a0052895960259209"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 19 15:02:18 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 21 08:15:26 2016 -0700"
      },
      "message": "Refactor Dex open methods\n\nConsolidate dex opening around a simpler single interface in DexFile.\nMaking this change prior to moving all but the simplest interface out of\ndex_file.{cc,h}.\n\nBug: 22322814\nChange-Id: I4c55019912a19a1c90f9022c20f5b8b954fc7a47\nTest: test-art-{host,target}\n"
    },
    {
      "commit": "0e8443995af602bcc2e70dcef1d20ee48acec934",
      "tree": "2d81b8db23bea139e40e33e4e9b8c69027fb1e56",
      "parents": [
        "c4cb3d532db8a500c1a15e8a0052895960259209"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Sep 08 13:43:31 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 21 11:42:21 2016 +0100"
      },
      "message": "Collapse ART\u0027s AbstractMethod class into Executable\n\nAfter the OpenJDK 8 pull there is now a common base class\nfor Method and Constructor that can be used instead.\n\nMethods that are abstract on Executable but on Android\nwere implemented in AbstractMethod are now consistently\nrenamed to \"{method}Internal\", declared final and\ngiven package-protected access.\n\nFor consistency with all other private, natively\nimplemented methods, the method getDeclaredAnnotations()\nhas been renamed getDeclaredAnnotationsNative().\n\nBug: 28666126\nBug: 31052885\nTest: make test-art-host and cts run of CtsLibcoreTestCases\nChange-Id: Ibfe6af6a47fe0cfffd0859ffbe58980aeb84e053\n"
    },
    {
      "commit": "692cc743146ff14b8e6f97945e9069ef66d15dbd",
      "tree": "ddc1742df9bfd3684bd9e0ed7bc91fb0507b2b27",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af",
        "804b03ffb9b9dc6cc3153e004c2cd38667508b13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 19:00:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 20 19:00:27 2016 +0000"
      },
      "message": "Merge \"Change remaining slow path throw entrypoints to save everything.\""
    },
    {
      "commit": "48d10ee126838f060aa6dcd304fc161b57bc14af",
      "tree": "90e5cbf706d6507769d365b2e4004306ed4e9b67",
      "parents": [
        "901669c8ff7a88d6772ce478da317054ab5d509b",
        "b20be21233c63b44fab51a63ac724b9c13ef333d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 16:43:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 20 16:43:36 2016 +0000"
      },
      "message": "Merge changes Id749f453,Ie3ce9dd8\n\n* changes:\n  Always run oatdumps tests\n  Disable oatdumps device build\n"
    },
    {
      "commit": "804b03ffb9b9dc6cc3153e004c2cd38667508b13",
      "tree": "91c7fd54b5000e041bf9d3d5b233dabce1fad614",
      "parents": [
        "80eb0bc2757274816a014a2997848d288c9ee553"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 16:26:36 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 14:55:44 2016 +0100"
      },
      "message": "Change remaining slow path throw entrypoints to save everything.\n\nChange DivZeroCheck, BoundsCheck and explicit NullCheck\nslow path entrypoints to conform to kSaveEverything.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -12KiB (-0.04%)\n    - 64-bit boot.oat: -24KiB (-0.06%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -8KiB (-0.03%)\n    - 64-bit boot.oat: -16KiB (-0.04%)\n\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Manually disable implicit null checks and test as above.\nChange-Id: If82a8082ea9ae571c5d03b5e545e67fcefafb163\n"
    },
    {
      "commit": "02cd28b4e7d8bc3d80ce21bfffe51d008a7bdaab",
      "tree": "833e57ffa08410c84e3cb48c2e91392a8c723a35",
      "parents": [
        "0186b64cfcf36d07cbdcb6eb1e8031086ab0dc1a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 10:18:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 10:30:26 2016 +0100"
      },
      "message": "ARM: Remove extra argument from RUNTIME_CURRENT uses.\n\nMissed this in\n    https://android-review.googlesource.com/238842\n\nTest: Manually invoke clang as specified in bug 31607479.\nTest: Rely on TreeHugger for the rest.\nBug: 31607479\nBug: 29259539\nChange-Id: I540f7dcfffec5acb33b91e2bb4e0bb64708378e0\n"
    },
    {
      "commit": "b20be21233c63b44fab51a63ac724b9c13ef333d",
      "tree": "46f27f60a1ea78195c5946f595fb69f741135ac6",
      "parents": [
        "d2c20805396fa6f424ed85546602bb84659fcca8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 13:02:47 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 15:04:12 2016 -0700"
      },
      "message": "Always run oatdumps tests\n\nART_BUILD_HOST_STATIC is meaningless now, the static tools are always\navailable.  Add oatdumpds as a dependency of the host oatdump tests, and\nalways enable the oatdump static tests.\n\nTest: m -j test-art-host-gtest-oatdump_test\nChange-Id: Id749f453f82489dc81a2c9042d3cc3120ea3d308\n"
    },
    {
      "commit": "9aec85619fad798ba142051311f32817798e710c",
      "tree": "4d430cbe2799a68d9453eb0a94a5e63e176584ca",
      "parents": [
        "6a40fc9bbb9421f78ffd7a9cce7f9acff3aa7d0d",
        "583f31966825d439d7b4e1053368c74aad5e4b1f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 19 18:28:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 18:28:08 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"test: Remove icu cleanup hack\"\"\""
    },
    {
      "commit": "6a40fc9bbb9421f78ffd7a9cce7f9acff3aa7d0d",
      "tree": "e220e76191de3ad74c4a6b65309475589e3a4524",
      "parents": [
        "904614f008fa03b4443f1a0abdac1a1966805696",
        "de19a25625823496bcf8f92352f709c7a3924bfa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 19 17:34:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 17:34:42 2016 +0000"
      },
      "message": "Merge \"Ensure class is initialized when reading its fields from debugger.\""
    },
    {
      "commit": "904614f008fa03b4443f1a0abdac1a1966805696",
      "tree": "4fb2578a78dcf514bccc6df9ad24674623bdf8c4",
      "parents": [
        "ec88abde5944eaa94e1299cc2ec040b51977b1f4",
        "afd3c9ea7f238afebd5073c1143d3c832ab10a71"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "message": "Merge \"Convert art runtests to Android.bp\""
    },
    {
      "commit": "afd3c9ea7f238afebd5073c1143d3c832ab10a71",
      "tree": "ea95e66ac119b6f86f637ebbeba22e956d3a4c4e",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:47:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:10:42 2016 -0700"
      },
      "message": "Convert art runtests to Android.bp\n\nBuild the art runtest libraries with Android.bp.  The host test\nlibraries move from out/host/linux-x86/lib[64] to\nout/host/linux-x86/nativetest[64], and the device test libraires from\n/data/artest/${TARGET_ARCH} to /data/nativetest[64]/art/${TARGET_ARCH},\nwhich requires adding nativetest to the library search path, and fixing\nsome tests to support multiple entries in library search paths.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: I2118a3292f22f275954ddd7cdd4e12287fe47808\n"
    },
    {
      "commit": "ec88abde5944eaa94e1299cc2ec040b51977b1f4",
      "tree": "c3692184a4999b97ee36decf88c688786640e598",
      "parents": [
        "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17",
        "91a6516103b8bf8bb75c3a2840cbdec7521e74a7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 19 16:59:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 16:59:15 2016 +0000"
      },
      "message": "Merge \"Remove the `CanTriggerGC` side-effects on a few instructions.\""
    },
    {
      "commit": "583f31966825d439d7b4e1053368c74aad5e4b1f",
      "tree": "a4e02b1b187693bdac03b20b1f9fd4e2109a6d6f",
      "parents": [
        "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 19 16:12:22 2016 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 19 16:45:32 2016 +0000"
      },
      "message": "Revert \"Revert \"test: Remove icu cleanup hack\"\"\n\nThis reverts commit 3c73829dbd9993b821171cdfe604d69a8330a20b.\n\nChange-Id: Ib911f65456f522d0d8ac732aa3fa646217f126ca\n"
    },
    {
      "commit": "91a6516103b8bf8bb75c3a2840cbdec7521e74a7",
      "tree": "d93043f578bfa5b8d76e8c175e6441b378c4a7b2",
      "parents": [
        "6a4abc633fa8580b06056ec6f80ced8ce7511277"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "message": "Remove the `CanTriggerGC` side-effects on a few instructions.\n\nThe side-effect was specified for these instructions as they call\nruntime. We now have a list of entrypoints that we know cannot trigger\nGC. We can avoid requiring the side-effect for those.\n\nTest: Run ART test suite on Nexus 5X and host.\n\nChange-Id: I0e0e6a4d701ce6c75aff486cb0d1bc7fe2e8dda4\n"
    },
    {
      "commit": "3c73829dbd9993b821171cdfe604d69a8330a20b",
      "tree": "6b9ae1b248abc5088e554d7694ea0a009497d799",
      "parents": [
        "6a4abc633fa8580b06056ec6f80ced8ce7511277"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Sep 17 17:27:24 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Sep 17 18:03:51 2016 -0700"
      },
      "message": "Revert \"test: Remove icu cleanup hack\"\n\nThis reverts commit d4b294c14bd4e1654b276b931ee035b895b8e6cd.\nWithout this hack, the gCommonICUDataArray seems to\nnon-deterministically accumulate entries, and sometimes overflows,\ncausing test failures.\n\nBug: 31469648\nTest: gdb /data/nativetest64/art/arm64/art_runtime_compiler_tests/reflection_test\nChange-Id: Ie5a5b7b957de79758a227bfd2919b4cd0155cde8\n"
    },
    {
      "commit": "9aa352e92b6ca0f2250cb7f54dfbf4b1be714c19",
      "tree": "647b9274daa64b3497c202da4327be26fe4e494b",
      "parents": [
        "47c22ff721503c0eb325508450663adacf0bd377"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Sep 15 18:13:52 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Sep 16 16:31:19 2016 -0700"
      },
      "message": "Remove TypeLookupTable from DexFile.\n\nOne more step towards removing runtime dependencies from the DexFile\nAPI.  This severs the ties to OatFile.  Work remains to move MemMap out\nof DexFile.\n\nBug: 22322814\nChange-Id: I29e7ad8fd292c7919ed2689dc754b958b88d6819\nTest: test-art-host\n"
    },
    {
      "commit": "be3a3ee02f148345ba6e1a0361532a3f7e8c0002",
      "tree": "b8235dcb24ceffe2c77ebb38c73486ad6a368094",
      "parents": [
        "c6eced06a8592e2077cf7c894c8e05702571bf4d",
        "febd0cf9b5070ecc54ba433b951b65e14a54ccde"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 17:59:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 17:59:10 2016 +0000"
      },
      "message": "Merge \"Fix a deadlock in the CC collector.\""
    },
    {
      "commit": "c6eced06a8592e2077cf7c894c8e05702571bf4d",
      "tree": "657dd5b41e0c50cb5df37a3e373bb5f691e0fbd8",
      "parents": [
        "22a99ff1905718316e0615a60b1b5ab57a55bb02",
        "b2267032bd852c5566462057135967b24fdfe076"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 17:23:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 17:23:42 2016 +0000"
      },
      "message": "Merge \"Move art::Runtime::InitZygote logic from art into frameworks/base.\""
    },
    {
      "commit": "6f82fbddf69388180e4dca9bcb5ce2e183e42bfa",
      "tree": "bc8f00f030d7e26cf958c820e795e48626d5d574",
      "parents": [
        "ca3c8c33501bf199d6fd0a5db30a27d8e010cb23"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 11:55:26 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 10:08:18 2016 +0100"
      },
      "message": "Implement VerifierDeps encoding/decoding\n\nThis patch implements serialization and deserialization of the data\nrecorded by VerifierDeps.\n\nTest: m test-art-host-gtest-verifier_deps_test\nBug: 30937355\nChange-Id: I19320b8e70d5c5128653d09a5cdb5b6f677a2f2d\n"
    },
    {
      "commit": "ca3c8c33501bf199d6fd0a5db30a27d8e010cb23",
      "tree": "12a6c3a4266bd17c6b9fe7066fd0b25cb8d9b2d6",
      "parents": [
        "0764877e21f1230e718923d5b84b048cd4346afa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 06 14:04:48 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 10:08:18 2016 +0100"
      },
      "message": "Collect verifier dependencies\n\nMethodVerifier tests whether a DEX method is valid w.r.t. the classes\nin class path. Since the APK does not change across OTA updates, it\nis not necessary to analyze the bytecode again with MethodVerifier,\nas long as its dependencies on the class path (which may have changed)\nare satisfied.\n\nThis patch introduces VerifierDeps, a class path dependency collector,\nand adds hooks into MethodVerifier where classes/methods/fields are\nresolved and where assignability of types is tested.\n\nTest: m test-art-host-gtest-verifier_deps_test\nBug: 30937355\nChange-Id: Iee0b321d772a5c7d1cb471aaa6e13918310b7e2f\n"
    },
    {
      "commit": "0764877e21f1230e718923d5b84b048cd4346afa",
      "tree": "418789bcea2716d4b4a0cc75a126a8f44d936872",
      "parents": [
        "2c92bf2340206eb952db0fb6d41f9b39f80ed8ea",
        "d4b294c14bd4e1654b276b931ee035b895b8e6cd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 08:04:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 08:04:16 2016 +0000"
      },
      "message": "Merge \"test: Remove icu cleanup hack\""
    },
    {
      "commit": "de19a25625823496bcf8f92352f709c7a3924bfa",
      "tree": "4742efe941270c72a8e966c0bdb788b87f6e5b1d",
      "parents": [
        "fad6f4dbf914418e7b16fc78a77578edfa618b72"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 14 15:56:35 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 15 18:11:37 2016 -0700"
      },
      "message": "Ensure class is initialized when reading its fields from debugger.\n\nBug: 31016523\nTest: mm run-jdwp-tests-ri \u0026 mm run-jdwp-tests-host\nChange-Id: I6bccf8464de7ec1e0c1fdac862cbacf890abede6\n"
    },
    {
      "commit": "febd0cf9b5070ecc54ba433b951b65e14a54ccde",
      "tree": "75d96af58e255b442a45e2fa611e62851a1dc0ce",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 14 19:31:25 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 15 18:00:09 2016 -0700"
      },
      "message": "Fix a deadlock in the CC collector.\n\nFix a deadlock between CC GC disabling system weaks and thread attach.\n\nSee 31500969#2 for more details.\n\nBug: 31500969\nBug: 12687968\nTest: test-art-host with CC. N9 libartd boot. Ritz EAAC.\nChange-Id: Ic9a8bfb1c636643a03f4580b811fe890273576b6\n"
    },
    {
      "commit": "c8651471abc69b9e147a6f81516bbad1b00f294e",
      "tree": "9937d12847dea505405c64f70b4da8ca2cd2c324",
      "parents": [
        "7d26164308e9eab5c596a19b841e4ab1c27828a8",
        "d818adbd958219655cee380a3a1f6049d78bbcde"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 23:41:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 23:41:18 2016 +0000"
      },
      "message": "Merge \"Avoid using memcpy for object header in ConcurrentCopying::Copy\""
    },
    {
      "commit": "d818adbd958219655cee380a3a1f6049d78bbcde",
      "tree": "da86923519a5b8ae9727fe3b8755b14254ae0e4c",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 13:12:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 14:52:41 2016 -0700"
      },
      "message": "Avoid using memcpy for object header in ConcurrentCopying::Copy\n\nMemcpy can do per byte copy, this occasionally caused tearing in\nthe lockword when read from the source resulting in incorrect\nvalues.\n\nTest: test-art-host CC baker\n\nBug: 31423258\nChange-Id: I13f856835125a3aa331530fb1f16db45d1955c8a\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "6b22aa5106e60545119b9eeaceaa9f87ee597305",
      "tree": "ab26f42ac9fb9fff52c6f0683561c0bcdebd9569",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 14:35:39 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:24:25 2016 -0700"
      },
      "message": "Convert libart-gtest to Android.bp\n\nChange-Id: Ibea17e3e002e6ad3f82158cd3c69d087fa9b15c9\n"
    },
    {
      "commit": "6b4d988feb18559204f7175914851baf28febd8c",
      "tree": "b8bb9bf3e2bcc3a2219ec5385aa003058cb717e9",
      "parents": [
        "5a7c611d7e9ab5d01eca58010b5dfc22d7ca720e",
        "a5931185c97c7b17981a9fc5016834a0bdd9480b"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 18:16:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 18:16:44 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in art.\""
    },
    {
      "commit": "5a7c611d7e9ab5d01eca58010b5dfc22d7ca720e",
      "tree": "2d03b79224b79e5f4947e8751b6bec2fe8ec1651",
      "parents": [
        "514e346dd7da0533e27f671ed1a1c0b1557ef7a5",
        "be08cf5782c04d876d38be8b8d1caf1b4c3fbe55"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 17:53:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 17:53:13 2016 +0000"
      },
      "message": "Merge \"Fix moving GC bugs in entrypoints\""
    },
    {
      "commit": "a5931185c97c7b17981a9fc5016834a0bdd9480b",
      "tree": "22f1a57647d7113c7c5aa5e0f0db5937380f2739",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 01 15:08:13 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 09:09:35 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in art.\n\n* Add explicit keyword to conversion constructors,\n  or NOLINT for implicit converters.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I1e1ee2661812944904fedadeff97b620506db47d\n"
    },
    {
      "commit": "fce42f486d9a607fb4fb472ec142a82ceccb6b5f",
      "tree": "393cd58ff2c57f136abf245f2c1d10e6421ba2e0",
      "parents": [
        "6f41ec68d3a3fae7bcd9ebd70b39b60e954449f3",
        "b76bc78ed20629966f4358b2031e75897d616d53"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 15 11:42:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 11:42:30 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\"\""
    },
    {
      "commit": "b76bc78ed20629966f4358b2031e75897d616d53",
      "tree": "7d78d94551dfb83f2d5c0aaca5f451392892c7a4",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 14 12:33:34 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 15 10:55:08 2016 +0100"
      },
      "message": "Revert \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\"\n\nThis reverts commit 8522758c5ef6050e355613630ff81c2b49373b44.\n\nChange-Id: Ie18417bd3d528673e3da39d92f43f20b853facda\n"
    },
    {
      "commit": "755bebaa1922436e6a9568042e975cec8a23bf66",
      "tree": "ea8e42919b9a99b2df19a7477dd182d2c6a1347b",
      "parents": [
        "602700c3051c0b7721b622b1c94772208cc598ea",
        "d9c90373d640a5e08072cf469c372e24a8c0fc35"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 15 09:14:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 09:14:49 2016 +0000"
      },
      "message": "Merge \"Move ArrayRef to runtime/base\""
    },
    {
      "commit": "be08cf5782c04d876d38be8b8d1caf1b4c3fbe55",
      "tree": "3efb73eb12ccb967003157d30670c5a283ddc8b4",
      "parents": [
        "32772cbdbcb35f5475b01f31314a3c7289bdb589"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 13:41:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:53:11 2016 -0700"
      },
      "message": "Fix moving GC bugs in entrypoints\n\nIn FindMethodFromCode, there was missing handles for objects used\nafter a suspend point (ResolveType).\n\nFor check_jni, JniMethodEndWithReferenceHandleResult did not\nhandlarize the return value when calling CheckReferenceResult.\n\nFor CheckReferenceResult, the argument was not in a handle.\n\nBug: 31458474\nChange-Id: I06617fc63f1fb63d7c13ad4245223a8c54fa4b98\n"
    },
    {
      "commit": "d9c90373d640a5e08072cf469c372e24a8c0fc35",
      "tree": "35615699aa6c12b21d9c0de7d11ccf0f088ba0d8",
      "parents": [
        "b180b893b5acb5c55251522465f9d20ed45c3b5a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 16:53:55 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 19:57:21 2016 +0100"
      },
      "message": "Move ArrayRef to runtime/base\n\nWill be used in upcoming CLs regarding VDEX and VerifierDeps.\n\nTest: m test-art-host\nChange-Id: I68e611a4a52246c2bdf45eab7c61f3212908afd4\n"
    },
    {
      "commit": "b2267032bd852c5566462057135967b24fdfe076",
      "tree": "5d39b18fa9cd864b78e24517e4c1e8885f126a31",
      "parents": [
        "52a8da639e161905122191ddf9c30caabb214ef1"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Tue Sep 13 19:12:57 2016 -0400"
      },
      "committer": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Wed Sep 14 14:28:35 2016 -0400"
      },
      "message": "Move art::Runtime::InitZygote logic from art into frameworks/base.\n\nTest: m test-art\nTest: m\nTest: aosp_angler-eng boots\nChange-Id: I119cdd74e5909137365ce723fca1a003ef3c5f95\n"
    },
    {
      "commit": "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59",
      "tree": "2ce1b047f54bfb4287483de8eaf79cd12f6058b6",
      "parents": [
        "79f6d706185714dccf80aca20d9f3261337473ae",
        "268764da8022cafa5661c5b514eaa343c5257e57"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "message": "Merge \"Make ScopedAssertNoThreadSuspension no overhead for non-debug\""
    },
    {
      "commit": "52a8da639e161905122191ddf9c30caabb214ef1",
      "tree": "5556709ba63d4566d9d59c5eb325b534dbd4d7dc",
      "parents": [
        "088efb4cf1d1d8a1c933668764217a6148e40fbc",
        "908eb22e49edc9fe070afe5ab44a5d07299dc976"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 14 16:36:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:36:35 2016 +0000"
      },
      "message": "Merge \"ARM/ARM64: Fix throwing entrypoints to call runtime handlers.\""
    },
    {
      "commit": "9323e6e44060545d6c4f925139572868f65b7fe3",
      "tree": "65f3f380605d75f34d49aec49fca494bec26ef5b",
      "parents": [
        "58735fbfbb2da0c0a19b3239da07c2353c40767d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 13 08:58:35 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 14 08:01:39 2016 -0700"
      },
      "message": "Separate annotations from dexfile reading.\n\nBug: 22322814\nChange-Id: I867d66da407dd80394a10d19903ebbc1ec3986ff\nTest: test-art\n"
    },
    {
      "commit": "908eb22e49edc9fe070afe5ab44a5d07299dc976",
      "tree": "dd699fa39f0bf0edc93e138aa301472bbb0ea61d",
      "parents": [
        "58735fbfbb2da0c0a19b3239da07c2353c40767d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 10:29:18 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 15:54:17 2016 +0100"
      },
      "message": "ARM/ARM64: Fix throwing entrypoints to call runtime handlers.\n\nTest: Run ART test suite including gcstress on Nexus 9.\nBug: 31468464\nChange-Id: I2521675125d243be3168a2e87b70185791322b42\n"
    },
    {
      "commit": "05846475c8d48ce191dcd333c76d5ccc17aea9dd",
      "tree": "bfbcbba324eda45fae27b31ce0ce589c5f472474",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:49:57 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:55:09 2016 +0100"
      },
      "message": "Remove ThrowNoSuchMethod entrypoint.\n\nRun ART test suite on host and Nexus 6.\nBug: 31464666\nChange-Id: I5aa737726031adae0b132f759cf802a93d581a7f\n"
    },
    {
      "commit": "e305eaf2c08a203e3e046c3a8608b90b9dc5a080",
      "tree": "3272622ab8e419ddb1aef3c01c89d0251a6c6c91",
      "parents": [
        "5cfaafbda5d2de57e311cfc9051f8d817091e950",
        "3b7537bfc5a6b7ccb18b3970d8edf14b72464af7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 14 11:16:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 11:16:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use implicit null checks inside try blocks.\"\"\""
    },
    {
      "commit": "3b7537bfc5a6b7ccb18b3970d8edf14b72464af7",
      "tree": "49996e22e36a64ea862e7b173e9626d862a4d595",
      "parents": [
        "c11d1b42828475ea1e7319fc3eb9402edc5b1c13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 13 11:56:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 10:42:08 2016 +0100"
      },
      "message": "Revert \"Revert \"Use implicit null checks inside try blocks.\"\"\n\nFix implicit checks in try blocks to emit stack maps.\nFix arm64 null expection from signal entrypoint to call\nthe runtime handler instead or simply jumping there.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -448KiB (-1.3%)\n    - 64-bit boot.oat: -528KiB (-1.2%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -448KiB (-1.4%)\n    - 64-bit boot.oat: -528KiB (-1.3%)\nNote that the oat files no longer contain dex files which\nhave been moved to vdex, so the percentages are not directly\ncomparable with the those reported in the original commit.\n\nTest: Run ART test suite including gc-stress on host and Nexus 9.\nBug: 30212852\nBug: 31468464\n\nThis reverts commit 0719b5b9b458cb3eb9f0823f0dacdfe1a71214dd.\n\nChange-Id: If8a9da8c11adf2aad203e93b6684ce16ed776285\n"
    }
  ],
  "next": "d4b294c14bd4e1654b276b931ee035b895b8e6cd"
}
