)]}'
{
  "log": [
    {
      "commit": "3a8825cba6db099ecb7050b7b60412740cd737c6",
      "tree": "0f30e278fc448b7243dfe191fbaa746b9b52cfbf",
      "parents": [
        "efdcb1518c21dc3bc7a9beac04a678248e7b27a0",
        "0480523e01102e40a072d266e43a18a0ca4344e4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Dec 03 01:25:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 01:25:08 2016 +0000"
      },
      "message": "Merge \"ART: Clean up ClassLinker\"\nam: 0480523e01\n\nChange-Id: I30752bcdd1d48e3f9a0cc031b2c74255f4973bca\n"
    },
    {
      "commit": "cc1b5357f83f0b787d51fbfde3fe870c8a2fa050",
      "tree": "253d23dba63e1003dc8e953002b994d01c97f181",
      "parents": [
        "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 16:58:38 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 14:00:22 2016 -0800"
      },
      "message": "ART: Clean up ClassLinker\n\nTry to clean up and simplify ClassLinker.\n\nMove dex_lock to Locks. Remove dead code. Move single-use\ncode to user. Hide implementation details from header.\n\nTest: m test-art-host\nChange-Id: I58150fa9c2a9524f8304370270c2197d655cb3a8\n"
    },
    {
      "commit": "769dfba30e65a76bdb84baa794f899cc31c8bff5",
      "tree": "104377b75ed62a969e6516187fde6309c37fe4ee",
      "parents": [
        "041944d5dcb515c8508f96accbec8756a238c55f",
        "141c6f68d47e9312e3c27aa6dcd3ae510e7e19c7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 23:38:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 01 23:38:03 2016 +0000"
      },
      "message": "Merge \"Class Hierarchy Analysis (CHA)\"\nam: 141c6f68d4\n\nChange-Id: I7811780d767d2d3a70584b2fb6f207e1acd52119\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "abbca9f83dfc1ae8e851b69cdb8cf7db75f25602",
      "tree": "37e5155964f5c5cf51a94b0979d692af39e40acc",
      "parents": [
        "9f865c3b8572a345dd0ba81813b64c0a4c77e460",
        "211fd802903c130ed1c47c18d1b87809d290aa69"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 30 18:30:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 18:30:45 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\"\nam: 211fd80290\n\nChange-Id: Ic693797b08729ba2e400657a8106bec1f8c22190\n"
    },
    {
      "commit": "211fd802903c130ed1c47c18d1b87809d290aa69",
      "tree": "e049fbad2dd7fbf244d5163e084be339f02fc8d7",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
        "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\""
    },
    {
      "commit": "efb0481c1c01a1148cb5adff1d629e0e8499c72d",
      "tree": "191d6167d9bb2ac89f1567664ce7457b333d2345",
      "parents": [
        "2aaa2979e684ab7431980e84f87c341f9bc2cf4c",
        "c9e2fc27c57d4c007d26081a8e60b244ecba8665"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 14:02:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 14:02:29 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\"\nam: c9e2fc27c5\n\nChange-Id: I9c05d759e5b14bd6ec26870f3fff7ecd4817bedf\n"
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "e99bce2cae8e4e3fe33f80bef526f839493c0489",
      "tree": "662fb0b183607f5be9ad9f3004e08bbad192a0bb",
      "parents": [
        "2cada4f8c52cd58403f6a4c1a1ac0aae6bd20c5a",
        "ded461e9df57a9e36e82f665d9600f9ea588dd87"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 15:11:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 29 15:11:33 2016 +0000"
      },
      "message": "Merge \"Fix the target Linux builds of ART\"\nam: ded461e9df\n\nChange-Id: I16a851ff3892b8842fd918ff7cbf38a2c7828185\n"
    },
    {
      "commit": "1af0c4ff8b79ad44a4e12d7271a66d4e775ba224",
      "tree": "3e5e2527241d423290df454d551bf6787a052f0d",
      "parents": [
        "71601907b95a3527fc554a3a1724b3c12b872a7a"
      ],
      "author": {
        "name": "Julien Duraj",
        "email": "julien.duraj@linaro.org",
        "time": "Wed Nov 16 14:05:48 2016 +0000"
      },
      "committer": {
        "name": "Julien Duraj",
        "email": "julien.duraj@linaro.org",
        "time": "Wed Nov 23 10:37:31 2016 +0000"
      },
      "message": "Fix the target Linux builds of ART\n\nWhen ART_TARGET_LINUX was set it would hit some pieces of dead code that\nwere using old defines i.e. `__ANDROID__`\n\nTest: export ART_TARGET_LINUX\u003dtrue\nTest: source build/envsetup.sh\nTest: lunch\nTest: cd art \u0026\u0026 mma\n\nChange-Id: I80102750192928606e0884d2b723a87ccb7d7e19\n"
    },
    {
      "commit": "1eaefe8925d55f87317084f4e25e2f47cd7c0122",
      "tree": "63ea56db47fe2d267bb529f4107377ed57ab9399",
      "parents": [
        "b4c63db564550085ec8d4a239fc5c2f490a97b3c",
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:24:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 21 10:24:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\"\nam: dac7ad17c7\n\nChange-Id: Ie713d994800586937fb5fa09b1e21610bf3c3a47\n"
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "81f3e2d8c3af6847bd3115900604f4f87be48c04",
      "tree": "6269202313dbabac8d77a980587c7bbf6dc9967b",
      "parents": [
        "962a861d8c49c47c75a666cfee95c538bc7845b4",
        "9fd470f87342dfe974c8ec8c74239a547e768650"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Nov 20 00:45:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Nov 20 00:45:05 2016 +0000"
      },
      "message": "ART: Extend DumpRecursiveAbort\nam: 9fd470f873\n\nChange-Id: I1ac6cd762b562d95cbd783f2eb0ff3cb81fa4ae3\n"
    },
    {
      "commit": "9fd470f87342dfe974c8ec8c74239a547e768650",
      "tree": "9bacb890f1e8c56bee6db335c046ce9e63b6ad08",
      "parents": [
        "ab07cbe238fc41cc074bd2af87a0b3fcdddedf27"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:21:12 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:42:58 2016 -0800"
      },
      "message": "ART: Extend DumpRecursiveAbort\n\nAccept recursive dump request for deeper recursions. Otherwise,\ntwo or more threads aborting concurrently would ensure that there\nare no dumps.\n\nTest: m test-art-host\nChange-Id: Ib82d64cceba0de89e352d9b15bcd5708db82498c\n"
    },
    {
      "commit": "40d98eb1189ed7ab6070a8d3272fcb60b7bf7187",
      "tree": "a3989d8c448e654fcf1f7e7345e5717f6e939922",
      "parents": [
        "5da6d670959ccadaadc9c377fe986c4eacf2cded",
        "88c4ff69dfed9e8f057a7b854605fc266cb35a5f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 21:09:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 21:09:46 2016 +0000"
      },
      "message": "Merge \"ART: Dump native stack on recursive abort\"\nam: 88c4ff69df\n\nChange-Id: Id4ee3b6dadb4de689858d388ca8171f326dac651\n"
    },
    {
      "commit": "39f68527d7e3f4dfc1ac761df554f5af91461a13",
      "tree": "bc50fc334a4a15aac2ddde0d1bb6d5317764948c",
      "parents": [
        "1995c6b30f091efe8084fe0bc4a86c57e2a01281",
        "8df07aa7fedb252cc9a9f42bb3395b1f30ac856d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 19:39:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 19:39:40 2016 +0000"
      },
      "message": "Merge \"ART: Use cerr in Runtime::Abort on the host\"\nam: 8df07aa7fe\n\nChange-Id: Ibd60bc9c0ef901cc6bd2b51d8a1593943776bb99\n"
    },
    {
      "commit": "7afa45427cc2cef534a3fb68a295fa5a4f305062",
      "tree": "a29899fb5c989229d43cc6eb7b41d6ac8d5d306a",
      "parents": [
        "b67906bb98409911b4ffe7da7fcd5b049ee089fb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "message": "ART: Dump native stack on recursive abort\n\nDump the native stack of the current thread on recursive abort.\nThat is safe to do, as it requires no runtime interaction.\n\nTest: m test-art-host\nChange-Id: I4e052916f1036c74dc9fa82b049b4574626a70bb\n"
    },
    {
      "commit": "b67906bb98409911b4ffe7da7fcd5b049ee089fb",
      "tree": "0c2f55ce03c9af1a0d1d1831de251adee01fdd27",
      "parents": [
        "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:30:08 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:31:11 2016 -0800"
      },
      "message": "ART: Use cerr in Runtime::Abort on the host\n\nUse cerr to immediately write out abort info on the host, in an\neffort to make recursive aborts diagnosable. This is similar\n(but slightly inferior) to the previous INTERNAL_FATAL fastpathing.\n\nTest: m test-art-host\nChange-Id: I7c49874951acd47e58faceeb84a9ba93159ca3b0\n"
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "2af9c7dcee8d1f15b3f6a1caea05f47c5af4d8d3",
      "tree": "6df14bb22c3aa76dbc1ecb9e80fb540738fde260",
      "parents": [
        "efbcf48d7ca0c7ae4fdc106cb319ff54081dc89e",
        "96de579b8cb24e87ad0a0ec33b0507c95765a951"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 22:51:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 16 22:51:32 2016 +0000"
      },
      "message": "Merge \"Ensure CC GC is used for the read barrier config.\"\nam: 96de579b8c\n\nChange-Id: I36400acaa712fc52b4bdd62370b5a1b09d8aef0d\n"
    },
    {
      "commit": "96de579b8cb24e87ad0a0ec33b0507c95765a951",
      "tree": "1437a34fd4fb060222802b1b1b825c45c7ddcc6c",
      "parents": [
        "82d44f1408d0108270f4a305a7fe0123bcc53405",
        "1b0adbf7b14973c3f110976de046d75a7d4ed934"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "message": "Merge \"Ensure CC GC is used for the read barrier config.\""
    },
    {
      "commit": "1b0adbf7b14973c3f110976de046d75a7d4ed934",
      "tree": "35e0e3effe140748982b0ccf295b123c4952dbe8",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 17:35:12 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 12:04:19 2016 -0800"
      },
      "message": "Ensure CC GC is used for the read barrier config.\n\nTo prevent the -Xgc option from causing unsupported GC types to run.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I10b42190c0888342e9127c52e863ddae82e4d7a1\n"
    },
    {
      "commit": "9808c0b690756bd536c97ba9a3dd093eb3b388ca",
      "tree": "526e879978e2af3904e2124a1d33e8bace9181ad",
      "parents": [
        "1d064e92780b15914c9052cc83c6bf0467fe9623",
        "1c80417e03195a39ec21be84d586bfcabd07950a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 18:54:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 15 18:54:26 2016 +0000"
      },
      "message": "Merge \"Add option to force all code to be deoptimizable\"\nam: 1c80417e03\n\nChange-Id: I83204166035b5b71125e4b69b72d51d0638425b1\n"
    },
    {
      "commit": "6b16d891bdf18cabed861cd67407eef9be639efd",
      "tree": "09aaf457c96ec3940e3e78d42a6db9aebed82516",
      "parents": [
        "5a92027262a216614c82ec841adcfc6b4627d07b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 11 11:21:04 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 09:06:06 2016 -0800"
      },
      "message": "Add option to force all code to be deoptimizable\n\nCurrently this can only be passed during runtime startup. We will add\nsupport for doing it from the zygote in the future.\n\nBug: 28769520\nBug: 32369913\n\nTest: m test-art-host\n\nChange-Id: I5eb16887ea14b140217c123b3effd47c5c8b2768\n"
    },
    {
      "commit": "3bb67f773302d8bac1a84977cebb5e6e7647a33f",
      "tree": "5ba5cd2d208f0dbc624d93c9f75a395cdff72d26",
      "parents": [
        "0f8ad8b2d55aa242c3d4b928fb096d58282c09df",
        "81cae78d1853893ff9c3ecea4b5100002a538eb7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:48:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 14 12:48:26 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\nam: 81cae78d18\n\nChange-Id: Icaf0bf548f4d33571e991a36a1b9f5e81652baa6\n"
    },
    {
      "commit": "81cae78d1853893ff9c3ecea4b5100002a538eb7",
      "tree": "d32c8f7e57449381511ffb206f4a335c157ae597",
      "parents": [
        "e8fc2cedb85ce4a6747cddbbf4cf33288e0ba5b9",
        "3395fbc20bcd20948bec8958db91b304c17cacd8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\""
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "9d944cb6c631b7ef02ba52574b30f7bc1128a90c",
      "tree": "efd0b8911671bc1e2dd8488a427dfc09a010fda2",
      "parents": [
        "a65d0c9f1e79b24f13ab7ec5b1208787c26e6a71",
        "4b050e817b929169e57661376793cff4c3ef421a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:19:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 14 09:19:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\"\nam: 4b050e817b\n\nChange-Id: I58d029103296071d91fcf5d1a5d969095aab925c\n"
    },
    {
      "commit": "4b050e817b929169e57661376793cff4c3ef421a",
      "tree": "56ee6c72dd7ed64fe4bcf701a0733c50b0289bc9",
      "parents": [
        "7fad15efba22817e9abb0f35b15aa2dd4715884c",
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:13:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 09:13:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\""
    },
    {
      "commit": "42f94da5a5ab8b5c1b24da7a926df459b94561c0",
      "tree": "d1f9113fa12fcaa13570b95413aaa95037a8a73e",
      "parents": [
        "064a8632cd3a9b0775843201f8ca350280cba2d3",
        "39ce7d2907edb978f1ab6cd75884be48ab11cd77"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:54:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 11 18:54:15 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\"\nam: 39ce7d2907\n\nChange-Id: I9fc7a636864f1c8d8993341dcd0554a65bd6fa59\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "0627abd36c9cc12fb26164a7b4514e5159c3cd5c",
      "tree": "38dc1468d34607ce63298a8650e44a56eff99249",
      "parents": [
        "8f9550806fff06c3549d5db8c6d0d4ceef9ca947",
        "20c56a8cded87092d40097323fcf9eaf50f64e4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:39:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 09 17:39:54 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\"\nam: 20c56a8cde\n\nChange-Id: I94678ba4ca22e9dc051ee83a40964c5b0d97f607\n"
    },
    {
      "commit": "20c56a8cded87092d40097323fcf9eaf50f64e4b",
      "tree": "1dd41fe4afd736aa0cfb8d6ef8ed4835a4dbe4af",
      "parents": [
        "2e7f085990423a706137c1d42673226ee7a7194f",
        "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\""
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "3f06a4ddecd15e3039ecedeea16c2d55207bc26e",
      "tree": "7eb0974f4571c36e3e00e169d6f67c8a29796fa3",
      "parents": [
        "0f9c5a7030ebc194bfd6d722260c8fcc1f9a3dfb",
        "0864c98b10cb8ca306671cabaa9be2a4068a2711"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 10:00:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 09 10:00:08 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\"\nam: 0864c98b10\n\nChange-Id: Ic8d73f221f6d0a9b308dacb3288cccbf807d7886\n"
    },
    {
      "commit": "0864c98b10cb8ca306671cabaa9be2a4068a2711",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "4c45ffaf6329d40e3249894cfb078d3d274ddfd5",
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\""
    },
    {
      "commit": "9af15038bd0ccd0abcd823f5b685d5da4aacfd4f",
      "tree": "7f1e1b708b071f61b48506872959f8bc579cabf5",
      "parents": [
        "004a0cebbd36098bd7f9e1ac34942ba4276bdd54",
        "8bab69aafb3039f1dfe4aad4faf2a99986018abb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 21:28:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 08 21:28:46 2016 +0000"
      },
      "message": "Merge \"ART: Refactor jmethodID handling\"\nam: 8bab69aafb\n\nChange-Id: I5916823995e09bea7842a608767233074523aa5e\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "13b27842e88ccf1a42807c92daeb108e867dc4cd",
      "tree": "d95968f678070058ec084376d561c7ed4f1bcff3",
      "parents": [
        "689a331aded82340d2ab144d0adb9bbbbd4b53ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 16:48:23 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 19:45:48 2016 -0800"
      },
      "message": "ART: Refactor jmethodID handling\n\nArtMethod objects have been native since Marshmallow.\nRemove the dependency on being runnable. Refactor the\ncode into the jni_internal header.\n\nTest: m test-art-host\nChange-Id: I1385fcd4c08981491701da55a87036b447aa2fc2\n"
    },
    {
      "commit": "5e653ef97344e352b2ed35ef213e0981cef74c0d",
      "tree": "c3f83e9096d4a00a68f93b6af9219df9a1ef3791",
      "parents": [
        "8735e8c553b34abf692ceb586f5a91b7bf541226",
        "3e9e3a3761bd3d9f4a9ea6a49b2707abba702f22"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 03 00:10:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 03 00:10:00 2016 +0000"
      },
      "message": "Merge \"Call ClassExt::VisitRoots\"\nam: 3e9e3a3761\n\nChange-Id: Iafabd1715c43e8d851970e870fd9c2a0a0f06067\n"
    },
    {
      "commit": "cec2fd462aaa53918ba28a6a8149b812716ff957",
      "tree": "638da4677cab879105e420c1bfc332b02b461a03",
      "parents": [
        "f7b9a7b92573281316e7f245a9836eccfb212d30"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 16:32:07 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 16:33:20 2016 -0700"
      },
      "message": "Call ClassExt::VisitRoots\n\nWe were missing this call.\n\nTest: ART_DEFAULT_GC_TYPE\u003dGSS mma test-art-host\nChange-Id: I559a64b04dde514888e37a86fafc260e55196f95\n"
    },
    {
      "commit": "962662c42de11189e45ef80cf81d309f8b60e855",
      "tree": "a085753225aa849afccf6073040bfdcfd515b67b",
      "parents": [
        "e29e482dac4e4c4ec8f36500e7fbe5e731e1917e",
        "9be86bb445c3d218af0a48ee30827e89bb71a21b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 01:40:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 01 01:40:22 2016 +0000"
      },
      "message": "Merge \"Move intern table to ObjPtr\"\nam: 9be86bb445\n\nChange-Id: I1fb6cff9ac119f6edc7ee5f9d23405dcea651372\n"
    },
    {
      "commit": "9e868098b4a5d666570e3924518978d7abd3542e",
      "tree": "f4e4ee5bb96e3ba00838fd0bfff96eabe636abcb",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 31 14:58:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 31 16:40:39 2016 -0700"
      },
      "message": "Move intern table to ObjPtr\n\nAlso moved StringLog to use a GcRoot.\n\nAlso removed read barriers from lookup to prevent making weak strings\nstrongly live more often than necessary.\n\nBug: 31113334\n\nTest: clean-oat-host \u0026\u0026 test-art-host CC baker\n\nChange-Id: I05586e125d5dfed8d184890468fd398c79f32619\n"
    },
    {
      "commit": "bde2da0a5de33300bd889dee4ca875a03f222c21",
      "tree": "4b08b221eec55e3b5342a5bf0d33ee22533980f7",
      "parents": [
        "be5842b377945d188b309f56f88612674c4c7eaa",
        "be92d691dd044dfc94a1c8e8793056776d55e826"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 10:35:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 31 10:35:36 2016 +0000"
      },
      "message": "Merge \"method_handles: Complete support for emulated stack frames.\"\nam: be92d691dd\n\nChange-Id: Id651bd3eadd08dcd07e3280bc2cdd632d0be711f\n"
    },
    {
      "commit": "000e1885701c8fdad07a784e3771881fa9be1d8a",
      "tree": "77d11180fb1d93903fa6c6cd58383d91a82affc5",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 24 17:14:25 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 14:11:45 2016 +0100"
      },
      "message": "method_handles: Complete support for emulated stack frames.\n\nMost of this change is a refactor that templatizes the code\nthat performs argument conversions. This allows us to copy arguments\nbetween two shadow frames, or an emulated stack frame and a shadow\nframe.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I23e65735a2dbd28f3c7b7d1ccf9762e77e0cf1f1\n"
    },
    {
      "commit": "b73ab5d7c0d1110492ea4301eea2b0534d5679ac",
      "tree": "7b33284174ba8a95f8a71cc0736c5d679b6dbccd",
      "parents": [
        "3c7c825f829df8bb167fd7f259ebb8aebe654606",
        "f35843dc6a83b50bf09c540e2c49b2953367fe3c"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:53:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 25 19:53:49 2016 +0000"
      },
      "message": "Merge \"Enable agent attaching during live phase\"\nam: f35843dc6a\n\nChange-Id: Ic8c6e3d5c1b3695187767bf31d2839e3395b9740\n"
    },
    {
      "commit": "eb84221ffc00357be6d69e2e461c7a45ee96334a",
      "tree": "00e6a0884a62dfb448e4d617699fe511307db74f",
      "parents": [
        "19c5e5f3e92db92e4a51b354743cbb0edd8e0f48"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Thu Oct 06 17:26:36 2016 -0700"
      },
      "committer": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:46:58 2016 +0000"
      },
      "message": "Enable agent attaching during live phase\n\nThis is the ART part, the plumbing from VMDebug_attachAgent() to\nactually loading the agent into the runtime.\n\nTest: m test-art-host\n\nBug: 31682382\n\nChange-Id: I3ccc67aa050c1f78278882128983686ed44ddec2\n"
    },
    {
      "commit": "11a73ac0c59231183be44458e9d036c4fe53348f",
      "tree": "5cde3050989089aef9dd499ce49d7d0ba6bdfa45",
      "parents": [
        "1c149d66e67092548f67f395e791cf5399c33f5c",
        "77cd3d861fcf723ba0a37833c223eeb08cfd7d8c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 21 15:42:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 21 15:42:44 2016 +0000"
      },
      "message": "Merge \"Remove mutex dependency on art::Runtime\"\nam: 77cd3d861f\n\nChange-Id: Iac764a067e2d6f19a255676ef067d8e1ddda1cb3\n"
    },
    {
      "commit": "f42eb2c7801dbb45a6ba20a372d5ba4712ebefba",
      "tree": "62939df36e0d113aab0307f75ab728de72b80953",
      "parents": [
        "fc5fbfc13fd6873d42fe82c308ee68a685258b4c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Oct 19 13:20:45 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 20 13:40:56 2016 -0700"
      },
      "message": "Remove mutex dependency on art::Runtime\n\nBreaks the cyclic dependency between mutex and the runtime.  This allows\nthe use of mutexes without instantiating a runtime.\n\nBug: 22322814\nTest: test-art\nChange-Id: Ia642e515937068d385e5bb1e10bbd3e50a6e36d2\n"
    },
    {
      "commit": "1c2b4d0f99e62386ef2d7065ebed8f7e5dc91f63",
      "tree": "9e7bbc3dd81bcf83c2bae47054f5d2d6d1fd3dec",
      "parents": [
        "e2c470ceaaa32d5b75576de7438f416173a2cdb9",
        "3bbfcb794f5f81f4aa76ac0fb4c811d260e69d3b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 20 11:58:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 11:58:39 2016 +0000"
      },
      "message": "Merge \"Return error message if IndirectReferenceTable construction fails.\"\nam: 3bbfcb794f\n\nChange-Id: Ib7f88016ae51ce543542ada3dd0c578d0a463c22\n"
    },
    {
      "commit": "da0a69edb24122d3d35ce1483c5ab94de919d714",
      "tree": "7216e6a19b1a9f3ca9da28d61c717ad9086d994e",
      "parents": [
        "278ec18934045477f0340b4aa6564f003a1e190d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 11 15:06:38 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 19 16:37:47 2016 +0100"
      },
      "message": "Return error message if IndirectReferenceTable construction fails.\n\nPreviously if there was an error when constructing the\nIndirectReferenceTable, the error message was lost. Now expose and\ninclude the error message when throwing an exception related to\nfailures to construct the IndirectReferenceTable.\n\nThe error message is propagated through JVMEnvExt, JavaVMExt, and\nRuntime::Init as well.\n\nBug: 32013594\nTest: Added new 151-OpenFileLimit runtest.\nTest: m test-art-host, m test-art-target\n\nChange-Id: I3692f6928c9570358571bce634569d6f14cdeb05\n"
    },
    {
      "commit": "1112203a69f86db7ef0025ed71293d199e8f9324",
      "tree": "edd2555001ca8c445b0b5a7f0545f8277849fbdd",
      "parents": [
        "5a88e28f91b4896144aab79d045e204f60638039",
        "27b88f3a2aaaa2dd3e03706d02590a07a96d8c30"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 22:56:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 17 22:56:56 2016 +0000"
      },
      "message": "Merge \"Remove logging dependency on runtime\"\nam: 27b88f3a2a\n\nChange-Id: Ica477f15e9ee950f4cdf026272e52c0d3749825d\n"
    },
    {
      "commit": "f57589fd40e5b69dad5aff060ccef756507f381a",
      "tree": "62d38e73660d9818b18c4741c6b3cce3306d63d5",
      "parents": [
        "c25dfeab1a66c942ae658fc7cd367f7c1ac502a1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 10:09:33 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 13:50:35 2016 -0700"
      },
      "message": "Remove logging dependency on runtime\n\nMoved the abort backtracing function to runtime, forcing callers to\nsupply the aborter at InitLogging.  This makes runtime properly layer\non top of logging by removing the cyclic dependency.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I8b2e72174e937bb88fe1bddd6d04b564cfb011a9\n"
    },
    {
      "commit": "1db0494e79dd55b55134969d50ad7c8c6d293d9f",
      "tree": "c4b23ab5500cb6b2695458716ce1edb48834bf59",
      "parents": [
        "f0a4206b652ff7465f81f2c49b246300920b2908",
        "498e122d91b441c5d6a4c2572d492028772e2cb8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 15:27:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 17 15:27:27 2016 +0000"
      },
      "message": "Merge \"Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\"\nam: 498e122d91\n\nChange-Id: I81421af3d75d9febeaafbd9256fd30f64534b45b\n"
    },
    {
      "commit": "498e122d91b441c5d6a4c2572d492028772e2cb8",
      "tree": "3a6b55fe477125b935d103712e7c970ff81158e0",
      "parents": [
        "174d17b2f70f009d5fa349bb94b1703297c36ec4",
        "f5b0f2cef8554efaa90adc6a1ae04c2b533970ed"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 15:18:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 17 15:18:09 2016 +0000"
      },
      "message": "Merge \"Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\""
    },
    {
      "commit": "421c04f1d9e07449ce53dedaaaff3b03b5a959c3",
      "tree": "0a3fc69170e65edf5f36f1757b6df80bc7a32bb4",
      "parents": [
        "254e06988b15959f1d7ca30a978dbac8725682be",
        "8c0fee9ca38ea1b4ee6a8ab72c5f9c0ba924761f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 17 12:35:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 17 12:35:45 2016 +0000"
      },
      "message": "Merge \"Do not write empty class table and intern table to image.\"\nam: 8c0fee9ca3\n\nChange-Id: I50675595a41193704e4387c0e069606960278ffd\n"
    },
    {
      "commit": "f5b0f2cef8554efaa90adc6a1ae04c2b533970ed",
      "tree": "431874a41548ba5d18598a5b1b520de042e012a9",
      "parents": [
        "4c91f05a9ad59759760fb8c1543684dfdb9ab7dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 01:04:26 2016 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 14 16:52:42 2016 -0700"
      },
      "message": "Ensure OpenDexFilesFromImage closes file to prevent file descriptor leak\n\n(cherry picked from commit 645e477c2ce7a59ac98bc86463826cf082a13ad8)\n\nTest: m -j32 test-art-host\nBug: 32095919\nChange-Id: I44541edeb403a508e1b9794ee09fb1f55e3f42bf\n"
    },
    {
      "commit": "1a1de67c4923436eb7de7da334c6d77703375dbd",
      "tree": "bf82b30cddfeaa822e14a63c0ad9fedd3886958d",
      "parents": [
        "6e5fa09510c7280168e040382d27dd8b55760d9a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 12:53:15 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 14 11:25:28 2016 +0100"
      },
      "message": "Do not write empty class table and intern table to image.\n\nAnd remove dead ClassLinker and InternTable code that would\nbe erroneously triggered by not writing the tables.\n\nTest: m test-art-host\nChange-Id: I2520daa8d1231e16112d44e364a72d782fa32527\n"
    },
    {
      "commit": "c66eadf597673966eb8eb79de2aaf1f133a0ad7a",
      "tree": "034d68109f3c4dac949c1c810a7ee7abc46752d4",
      "parents": [
        "c4ce243882a352dae1b7a41acf2f4eb9d9971e65",
        "1c83b0886e24340db367713fdd244275bddd4f00"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 07 17:12:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 07 17:12:32 2016 +0000"
      },
      "message": "Merge \"Move mirror::Object setters to ObjPtr\" am: 0d7398fd54 am: 153b83e8da\nam: 1c83b0886e\n\nChange-Id: Ic058da37193c9c232200d7e9569b7467a1baba6b\n"
    },
    {
      "commit": "a058fdf0cf7435a13a6e8cae5e3a9bfa1513828d",
      "tree": "85de1316f29f661372841d5feee16c370375fc16",
      "parents": [
        "c4f3925490a73da8dc74884a1deb965d4ecaf14e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:13:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:53:58 2016 -0700"
      },
      "message": "Move mirror::Object setters to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c4c84645e194c3c435a4a6fd670176b0e98671f\n"
    },
    {
      "commit": "984315b03b0ef71b84ef074ae21445c4463157b3",
      "tree": "edb1ae815d046bc83a8017c1125cbbb0f422b35d",
      "parents": [
        "feb5ac47f31bd51fd9c7a55855a0408984ba19f9",
        "40de4644178cc37abbb59f61175b0d4b19188fe5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 17:10:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 05 17:10:06 2016 +0000"
      },
      "message": "Merge \"Remove #include \"oat_file.h\" from class_linker.h .\" am: 2f61867045 am: 6622934a0a\nam: 40de464417\n\nChange-Id: I6769b1b2c6f28314d096bf9c4fd17fe8987c8dd5\n"
    },
    {
      "commit": "2f61867045ffbd0c38a4ecec5f59632004f7efff",
      "tree": "c7b4393d7cd7cbcd3272ff83d8424be02828251a",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef",
        "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "message": "Merge \"Remove #include \"oat_file.h\" from class_linker.h .\""
    },
    {
      "commit": "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1",
      "tree": "d2f02420f82d76d10dc0d80f431c9f4aba03ac82",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 14:44:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 13:21:44 2016 +0100"
      },
      "message": "Remove #include \"oat_file.h\" from class_linker.h .\n\nRefactor the OatClass and OatMethod related functions from\nClassLinker to OatFile and ArtMethod, respectively. Refactor\nthe remaining ClassLinker dependencies on OatFile to break\nthe #include dependency and reduce incremental build times.\n\nTest: m test-art-host\nChange-Id: Iebc5b9f81b48fbcf79821cc827a5d7c4a0261bf6\n"
    },
    {
      "commit": "d06a009b669ef4ac30d22617d3aace9f511c7f5f",
      "tree": "f94e63f6c15a408e1968b6fddf7ae48dbe40a488",
      "parents": [
        "b80fbbb3cbdedca681454f0290f4c9ecedbb02bf",
        "12238c82cb3bcb3721928970a490c841f8d8bfb7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:47:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 05 00:47:31 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\" am: 556c9a2f18 am: a386275651\nam: 12238c82cb\n\nChange-Id: I46792cbf272f66af03bf4ad64ce8eaf52d0cc8bd\n"
    },
    {
      "commit": "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
      "tree": "ffe6d3711b565330fb883953144ddd7603356804",
      "parents": [
        "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
        "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:39:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:39:08 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\""
    },
    {
      "commit": "b39abbd39d33e89e5c51f97da769c67e6c048bf8",
      "tree": "12be4bfdae08b0c9b9bc4e73609ca9971be099b7",
      "parents": [
        "0296d7f2c6210f8da34a90730f16927bc647a59e",
        "f494d8f68134c1e80fbf8eb18e83e2bf47ddfc6f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 04 19:16:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 04 19:16:11 2016 +0000"
      },
      "message": "ART: Reprint long messages on abort am: 90a32b16fe am: 4d22cfff72\nam: f494d8f681\n\nChange-Id: I6aacb2e73ea0869481e23ce08b1dfbbfdfbb1540\n"
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "90a32b16feb58d4edf932fdcb6a070be3418e365",
      "tree": "dadbf8759551c67cdb54851027459a542d4d10f4",
      "parents": [
        "f1e8630fe8eab89e61e9f0a97135ae7c9d38ce23"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "message": "ART: Reprint long messages on abort\n\nAdd an abort message parameter to Runtime::Abort. In case the message\nis multiline (and will thus not be completely preserved in the\nAndroid abort reason), reprint the message after all threads have\nbeen dumped.\n\nBug: 31893081\nTest: m test-art-host\nChange-Id: I65bc77691fec79f7c868a90d6132805fcc91e473\n"
    },
    {
      "commit": "b00bad7bca406175d939f38af10b75af6eaf589e",
      "tree": "f21d359af59443b13ecc2803c3de2712e74a2565",
      "parents": [
        "ea5d2566534e5ff006dcaae9a73f8e814c47f5bc",
        "1becf77e9216f000b05957a6eba63961156b7127"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 02:42:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 02:42:33 2016 +0000"
      },
      "message": "Merge \"Clean up ScopedThreadStateChange to use ObjPtr\" am: 74a69eda05 am: 039ef51ee7\nam: 1becf77e92\n\nChange-Id: I1e19a8ae4eb3eec0a2c25e072e577f66af0c0010\n"
    },
    {
      "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": "ea5d2566534e5ff006dcaae9a73f8e814c47f5bc",
      "tree": "773d9ef6c3aee65baea073a8e7616a2176e27d3f",
      "parents": [
        "4d0cea6e7eb081889cddb843bbeae9317d5eba12",
        "7a632d262d689f7da5c6a4db73276bb309d53bb7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 14:33:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 29 14:33:12 2016 +0000"
      },
      "message": "Merge \"java.lang.invoke: Add mirror types for MethodHandle / MethodType.\" am: d1224dce59 am: b39ba157aa\nam: 7a632d262d\n\nChange-Id: I8038c5d169ec49e3675f184a621dd0cce59c1970\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": "828cb420af153957e8fb8eaa7529dc9a26f3d246",
      "tree": "1482a363d2fc6caae7d7cdf9fc7ca41bbf12282b",
      "parents": [
        "39a69bdb613381a0c6f0ee5d600c5c488f148f42",
        "faba08d0dd7258607253d61df5d7706383d9d315"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 20:02:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 26 20:02:53 2016 +0000"
      },
      "message": "Merge \"ART: Use libbase logging\" am: a4850b0fa1 am: fb7380297e\nam: faba08d0dd\n\nChange-Id: I28989211b206ac207bae1bd730f39088389bd3ce\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": "fcd065ccb7edc80549e43a5c8bbef05ab212f6a6",
      "tree": "2c2dffcd1f7a745fba8419cb399301ebd4d6fde2",
      "parents": [
        "299ad51d48f9fa4f39407a496641ca6c4bd6219f",
        "7f6fdbdee102a3ae85148097b4f92ac0abb89f90"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 22 22:13:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 22:13:00 2016 +0000"
      },
      "message": "Merge \"Make image test multi image\" am: 764f38f939 am: 935482f629\nam: 7f6fdbdee1\n\nChange-Id: Ie92ad3b420b445a4c67e474c7d4a09098053f245\n"
    },
    {
      "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": "1704f2267a52dd076eccf1fd9e49924c1ad43597",
      "tree": "4d9e6435692df08fc94b3e4279d776b1690f7706",
      "parents": [
        "91dc1a2ad1739c88cfec051cfb7bebf8a5a6e626",
        "086df2f11c749dae5cc2415b516343a624dce368"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 21 16:44:23 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 21 16:44:23 2016 +0000"
      },
      "message": "Collapse ART\u0027s AbstractMethod class into Executable am: 0e8443995a am: 6e562dab98\nam: 086df2f11c\n\nChange-Id: Ic7273615ed8bb3987d48303e36b55d7877356515\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": "7b6fc1410ef1c8509449c6ca3653426591ce87cc",
      "tree": "d5764bf76db13f369a9489e1779b6ea1f3ca8204",
      "parents": [
        "62d6ae4bda2ba062088ccc5ad7897ef8e94b75bf",
        "e98c456c29972f2f43229850d6a28b484ef23234"
      ],
      "author": {
        "name": "Robert Sesek",
        "email": "rsesek@google.com",
        "time": "Fri Sep 16 17:51:23 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 17:51:23 2016 +0000"
      },
      "message": "Move art::Runtime::InitZygote logic from art into frameworks/base. am: b2267032bd am: 8a0e2fd890\nam: e98c456c29\n\nChange-Id: I64e27974072e70e341210d1e8508df9a2dd176d4\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": "7fbbb47054906ea0fefa0538c69797a9a5b8ceb0",
      "tree": "5a9b45b4f8c3ad94bb08ee8710a1d44ab0224e0c",
      "parents": [
        "e8a60b9c7d4695ff7f94528ef341bfffd77e2a6a",
        "204b3909ed70cca363b1bc48c500da16c2fc7b5a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Sep 13 09:13:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 09:13:14 2016 +0000"
      },
      "message": "Merge \"Track libcore Executable.getParameter() changes\" am: c9568796e8 am: 71c69819cb\nam: 204b3909ed\n\nChange-Id: Ib2484de7f01fbfd32b28e36425073ef6da75bdd1\n"
    },
    {
      "commit": "c9568796e8f9957be75a0e669a954902795d7562",
      "tree": "8a6783bb177692c3b8084e0798d8fbf5c4b44789",
      "parents": [
        "9ef68a3ad02eb7e2242a6d7f6a208c7a9b8ac407",
        "60458a072c4f0b24038420b0f1bed0fe94c72965"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Sep 13 09:02:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 09:02:35 2016 +0000"
      },
      "message": "Merge \"Track libcore Executable.getParameter() changes\""
    },
    {
      "commit": "e6e8e0fc75a8e8c17d20b1d53668b9a8534732a5",
      "tree": "08583b0a244c9dbbaf0e3c4b0ec17be5cf22d61e",
      "parents": [
        "d48119e6a05ee1ccb24dbabb77fbd0f587d24848",
        "a877440ad038eeca376eb500a76f80d6dd2e0b61"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 23:32:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 23:32:04 2016 +0000"
      },
      "message": "Merge \"ART: Add generic system-weak holder infrastructure\" am: f9decf915f am: 3f94bdc565\nam: a877440ad0\n\nChange-Id: I3d283e7be1b641dbe16713f0ed6cae3603a9cc28\n"
    },
    {
      "commit": "f9decf915f6fa5b33fceba7c10c119e4cad481e5",
      "tree": "80a2268fa79c4096d9ebddf8ffd66f68f89fcbb2",
      "parents": [
        "e204051d3cc3b1be2e91f26621966c79c82fa74c",
        "fda5714edb368270b7ef639054f4cba1d5f4874c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 23:18:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 23:18:39 2016 +0000"
      },
      "message": "Merge \"ART: Add generic system-weak holder infrastructure\""
    },
    {
      "commit": "fda5714edb368270b7ef639054f4cba1d5f4874c",
      "tree": "154e3575910441f76ba121c72b47b04f2069f3dc",
      "parents": [
        "97750797e1195651228698877724ae8599eb1e44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 08 20:29:18 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 12:52:22 2016 -0700"
      },
      "message": "ART: Add generic system-weak holder infrastructure\n\nAdd an \"interface\" for a generic system-weak holder that is\nintegrated with the well-known instances in Runtime. Add a\nsimple implementation handling synchronization.\n\nAdd a test.\n\nBug: 31385027\nTest: m test-art-host-gtest-system_weak_test\nTest: m ART_USE_READ_BARRIER\u003dtrue test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dGSS test-art-host-gtest-system_weak_test\nChange-Id: I1100e2cbd9ee57860993d0039de73d197681c542\n"
    },
    {
      "commit": "fb73ca5d4fce9cb2dcd97b9c8f37047487051b62",
      "tree": "4484136432ea5b6f49f7ec3a3b6d500a6521ed54",
      "parents": [
        "d9155358968a69c67b0fac6f21facd6b79a4f748",
        "d5a17035f8050d32e5b40d809af0f66bc9e94713"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 18:16:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 18:16:16 2016 +0000"
      },
      "message": "Merge \"Fix run-test after introduction of VDEX\" am: 47b451546d am: 4c0a219483\nam: d5a17035f8\n\nChange-Id: I39ca5e40ce0803fc413d41f5bfa21bba2306c1b7\n"
    },
    {
      "commit": "c93b3be140f6a57a572f2a4cdaf46aba87235a02",
      "tree": "96e0d1d8b53b1eecf66188704ab12036632702e3",
      "parents": [
        "935cf1b7a5e55a8d9aeab7e8955012849f0c1b68"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 18:49:58 2016 +0100"
      },
      "message": "Fix run-test after introduction of VDEX\n\nRun-test 119-noimage-patchoat used to fail due to a codepath in\nOatFile which allows to create an instance of the class from an\nexisting ElfFile instance. This patch updates the codepath to require\nan existing VdexFile as well.\n\nTest: art/test/run-test 119\nBug: 30937355\nChange-Id: I8fd0e47f07921aaee999f73711766ada9c35d214\n"
    },
    {
      "commit": "d4e6f15b7a56aae8659e6e7cf4a353fe8dbbedee",
      "tree": "c7557d45cf49702c7e2ff1ab59b03779cf732027",
      "parents": [
        "b65060c6b2a5de243ba624322039883d61d76583",
        "4eb4eea14b8f0aeb2ba99a30ef7d1fc92a5529f8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 20:19:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 08 20:19:33 2016 +0000"
      },
      "message": "Merge \"Add transactions for string resolve\" am: d7a622279b am: f926eda881\nam: 4eb4eea14b\n\nChange-Id: Ia4ac7e940e799a22a12f5caf5701e6a27f91b902\n"
    },
    {
      "commit": "bb816d66aabb9c2a2e095517d2013041116332db",
      "tree": "1d51444ec1d6febfba8c2d6e9502bf76939261fa",
      "parents": [
        "ddac139d83bfb121d1536fb40ab48c9bee6c25b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 07 10:17:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 11:17:17 2016 -0700"
      },
      "message": "Add transactions for string resolve\n\nFixes a bug where resolved strings can be left in the dex cache after\na transaction is rolled back even though the interned string was\nremoved.\n\nAdded test in transaction_test.\n\nBug: 31239436\n\nTest: test-art-host\n\nChange-Id: I42c67bcefeae8db134cde34c480261f52db4102e\n"
    },
    {
      "commit": "60458a072c4f0b24038420b0f1bed0fe94c72965",
      "tree": "e1e10a29c99f99538695c12da1af914d84ddd4c3",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Sep 01 15:32:44 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 07 11:12:02 2016 +0100"
      },
      "message": "Track libcore Executable.getParameter() changes\n\nExecutable.getParameter() has been added which added\ntwo new fields to java.lang.reflect.Executable,\nimpacting class arrangements and padding.\n\nThe java.lang.reflect.Parameter class has been added\nwhich has some associated native code and support\nmethods in DexFile.\n\nTest: make test-art-host\nBug: 28666126\nChange-Id: I4ff6469388879651a6c9e568eca0b1cd716f0c0d\n"
    },
    {
      "commit": "a0b0085a9a6050cc02d6a01ea57b8f1cafeea155",
      "tree": "ee0c0a001ea2ce479b2c18d615217c124a557ac7",
      "parents": [
        "43cc103cf7f3152b78512ef043ccf232983c122d",
        "b4493234e847d788495dc79d70afab28df5a765e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 05 09:24:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 05 09:24:36 2016 +0000"
      },
      "message": "Merge \"Support for loading classes from DEX files stored in a ByteBuffer.\" am: 38c8fcd78d am: 059a50e9bb\nam: b4493234e8\n\nChange-Id: I0f05d31a79936ee4d3ce90c51e770114afeba5d4\n"
    },
    {
      "commit": "a4c2a054ca946eb14496fe8e9fd6057a59ccf692",
      "tree": "e6ba8afbff39b30775c24d81a05ee255fcc9457b",
      "parents": [
        "79c3e4e558215ffae1601fc6d5f1626e063a4b22"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Aug 17 10:51:42 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 02 11:40:21 2016 +0100"
      },
      "message": "Support for loading classes from DEX files stored in a ByteBuffer.\n\nBug: http://b/26878838\nTest: test-art-target-gtest-dex_file_test\n\nChange-Id: I68845c35784386bde6270102f0079d4f07bc4d03\n"
    },
    {
      "commit": "6ca445af7f99b32f5546358e16a20e8c18e61b55",
      "tree": "38ac60873729433df3183bd7c326687f83f7d1a4",
      "parents": [
        "198a1c467b375bb43d1d37f64d1641ddd443a01c",
        "716e99929ee8674f426769a9407bdea79c9b55d9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 31 18:08:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 18:08:08 2016 +0000"
      },
      "message": "Merge \"ART: SHARED_REQUIRES to REQUIRES_SHARED\" am: 3d08238729 am: e4386ec9b3\nam: 716e99929e\n\nChange-Id: I17ef2f2b444323fdd08fbe9606d69db0e110a8b1\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "10bd045ac06114f56a5542036675ecd2afb9cff4",
      "tree": "76373515af1fa4f10dad5ebd7bd5ad7379222695",
      "parents": [
        "7549509e54cbe3c7971e86e1f27c52b54007c8c3",
        "9a45bff53ba0a720de7acfdb966898d8d931f6ed"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 30 17:24:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 30 17:24:56 2016 +0000"
      },
      "message": "Merge \"Save environment snapshot and use at fork/exec\" am: d7eabc2cc1 am: 2bbfaf15f7\nam: 9a45bff53b\n\nChange-Id: I08c3c9c9586c5769f7c40ea6842d936dfeceb2bd\n"
    },
    {
      "commit": "d106d9f871c957286ccdeb79c1c2a5ed41f859a6",
      "tree": "dc61a7fd80e1289777f6a991102b0fe4a2ef032d",
      "parents": [
        "99fd9f39f2cd74864bdc750a3444ddd776da534c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 16 19:22:57 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 30 09:32:49 2016 -0700"
      },
      "message": "Save environment snapshot and use at fork/exec\n\nSome applications may inadvertently or maliciously set of environment\nvariables such as LD_LIBRARY_PATH before spawning subprocesses.\nTo make this more difficult, save the environment at the time the\nruntime starts and use the saved copy anytime Exec is called.\n\nBUG: 30160149\nTEST: make test-art-{host,target}\n\nChange-Id: I887b78bdb21ab20855636a96da14a74c767bbfef\n"
    }
  ],
  "next": "c4cb917fa44939da4592d2dd8c9fd90b5d66c510"
}
