)]}'
{
  "log": [
    {
      "commit": "e4cdd4dbcbc75e373917d22214cd431643cd3610",
      "tree": "c4b467a9fed50f51fcfbffff85f893d3b1643282",
      "parents": [
        "ab1b1c06a782f18d9594e6a4ff4b2c4b895ecee6",
        "0b772575fcf3b93896a71ceb524329f867899c75"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 05 21:08:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 05 21:08:20 2016 +0000"
      },
      "message": "Merge \"Address comments I missed on a previous CL\""
    },
    {
      "commit": "0b772575fcf3b93896a71ceb524329f867899c75",
      "tree": "90630dac067ed92fe1b2169af627c1d1df44c2b9",
      "parents": [
        "0fd9a7d67878d1d88a74895c0d02c556b5de8e72"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 02 17:27:31 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 05 08:57:54 2016 -0800"
      },
      "message": "Address comments I missed on a previous CL\n\nI accidentally missed some comments on\nandroid-review.googlesource.com/c/305518 when I submitted it. This\naddresses those comments.\n\nTest: mma -j40 test-art-host\nChange-Id: Icd8ff65dee1730d10489f25e75bddbd455c68413\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": "c571e73e21202cff0a8ec3bcfecb7d326e8648ef",
      "tree": "905cb5252b8bc8c335f569c869dfb8529301f40c",
      "parents": [
        "edcd7929e2bf521316fa5305109c330d563d87db",
        "cfa325e4ca65603fdb03a836a6cb394d23ed511f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 02 11:52:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 02 11:52:15 2016 +0000"
      },
      "message": "Merge \"ART: Add verifier support for invoke-polymorphic.\""
    },
    {
      "commit": "cfa325e4ca65603fdb03a836a6cb394d23ed511f",
      "tree": "f14e628cc90f7b03f8f227a30361993f3f594f11",
      "parents": [
        "35b6546b0a4fe423ed6f27d8c5b709d5191e99ef"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Oct 13 10:25:54 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Dec 02 10:09:40 2016 +0000"
      },
      "message": "ART: Add verifier support for invoke-polymorphic.\n\nChange-Id: I1e1860cad80db46320c3ef5a9eaceb7529ea68d7\nBug: 30550796,33099829,33191712\nTest: make test-art-host\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": "0fd9a7d67878d1d88a74895c0d02c556b5de8e72",
      "tree": "1e10e3ad67ae8477db93e7bc9c35aaaa4ee9fa77",
      "parents": [
        "07ab8831ff6025f91f927cc9e60c04801583666c",
        "a01de59eef990c07df9815376cd3c675e3acd481"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 30 23:01:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 23:01:32 2016 +0000"
      },
      "message": "Merge \"Infrastructure for obsolete methods\""
    },
    {
      "commit": "a01de59eef990c07df9815376cd3c675e3acd481",
      "tree": "86f6ef41c13de572dc134956c836dd94c35d9d64",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 10:43:06 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 30 10:23:47 2016 -0800"
      },
      "message": "Infrastructure for obsolete methods\n\nThis adds some of the structures and functions needed to eventually\nsupport obsolete methods. Specifically this adds the code to create\nand iterate through the obsolete dex-cache maps of classes and\nre-organizes the redefinition code to be more sensible and extensible.\n\nBug: 32369913\nTest: ./test/run-test --host 902\nTest: mma -j40 test-art-host\n\nChange-Id: I93d60fa66e7512e8b059cdf42af8a56e93ef4bd7\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": "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": "1c87878ca87b0c5dde08416ef75615632eace7ac",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "5ee771615a7e7752abb8b0d53122ca44137c4286"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 15:46:49 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 17:04:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Method Handles: Add VarargsCollector.\"\"\n\nThis reverts commit 12af7a41c224923fb55699305008214636a1a3da.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\nChange-Id: Ia820093bab919667729daba5b14330de51a63f79\n"
    },
    {
      "commit": "12af7a41c224923fb55699305008214636a1a3da",
      "tree": "a93fcd7a973d0fd2b5dd7619858ca1e84a96408d",
      "parents": [
        "ab52ce1480d9c4701bfe3ff3530596ec0c5760ee"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 14:27:07 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 25 14:27:07 2016 +0000"
      },
      "message": "Revert \"Method Handles: Add VarargsCollector.\"\n\nThis reverts commit ab52ce1480d9c4701bfe3ff3530596ec0c5760ee.\n\nChange-Id: Idc6dd28b58a61cbd2c9ee72e8a0eeb07b2ca0edf\n"
    },
    {
      "commit": "ab52ce1480d9c4701bfe3ff3530596ec0c5760ee",
      "tree": "e1966edd05b7e7ca8e0e90ea2c2b90b3b9d10a32",
      "parents": [
        "bbf33111444f1c7665eb6ad21438f2ca97cd488e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Nov 11 11:11:31 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 23 16:56:15 2016 +0000"
      },
      "message": "Method Handles: Add VarargsCollector.\n\nEnable support for methods with variable arity arguments.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\n\nChange-Id: I205724ddacc6c9840e18093a3984c1ad6e54394a\n"
    },
    {
      "commit": "a598b869b255b4daeaa34d1dd0939222a3a791b7",
      "tree": "5af89e57aaa81cabbee54c924a9319814c39a81d",
      "parents": [
        "b2dc55149665fa288d44136642a6814a3a5a74a4",
        "a5b09a67034e57a6e10231dd4bd92f4cb50b824c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 21:17:32 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::TypeIndex\""
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "cca340b452baae0eb1fe37959063b63256bbef3b",
      "tree": "7fe99930aff2899be156f1dfd7de48ef774ee5be",
      "parents": [
        "f8f36c246ee46522a7446e6f3a155e0fc5c7b859"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:43:05 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 19 14:58:02 2016 -0800"
      },
      "message": "ART: Fix line break in Throwable::Dump\n\nAdd line breaks for missing stack traces.\n\nTest: m test-art-host\nChange-Id: I0624ed19d6d025b7c00d6e6fb55827577bffc7b6\n"
    },
    {
      "commit": "ab39c210072fdb4d22bb11bba354653cdfc58f64",
      "tree": "2b100b05b2f4a2d8c864f110b20f41955ccb8891",
      "parents": [
        "96de579b8cb24e87ad0a0ec33b0507c95765a951",
        "6013f77af69cf6eb81195448777b3a646a3eee1a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 17 00:36:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 17 00:36:45 2016 +0000"
      },
      "message": "Merge \"Address comments from aog/303658.\""
    },
    {
      "commit": "6013f77af69cf6eb81195448777b3a646a3eee1a",
      "tree": "bbcdb4c10901a0b6649fe23a25860e9fd7f9625c",
      "parents": [
        "1b0adbf7b14973c3f110976de046d75a7d4ed934"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 13:30:17 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 13:30:17 2016 -0800"
      },
      "message": "Address comments from aog/303658.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I87a3be336cb1c6b17acc515415c325464ffddc01\n"
    },
    {
      "commit": "6beced4c017826f7c449f12fac7fa42403657f2b",
      "tree": "f53614eeeaa92be9a7398e262d9440f59e3384a5",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 15 15:51:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 16 10:41:40 2016 -0800"
      },
      "message": "Change iftable to never be null\n\nSimplifies code generation by removing a null check. The null case\nis rare.\n\nRitzperf code size: 13107624 -\u003e 13095336\n\nAlso addressed comments from previous CL.\n\nBug: 32577579\n\nTest: test-art-host, run ritzperf both with CC\n\nChange-Id: I2b31e800867112869d7f0643e16c08826296979e\n"
    },
    {
      "commit": "e43b80eda3fca4c99878e123abced1f48010ec7b",
      "tree": "6502dd303e3268ed0a2cf5f6ef2c405b381b2580",
      "parents": [
        "66ceada00fec4b52481a42120fb9d1b89f357390"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 13:42:50 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 13:42:50 2016 -0800"
      },
      "message": "Optimize non-intrinsic object array copy for Baker.\n\nCheck the gray bit per array rather than per element.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I20b44e522e66f0b156644b93a2885a8e7f40f8db\n"
    },
    {
      "commit": "1a06f9f67a4e91610d2a050093b36de264904916",
      "tree": "fc1630bba8730f4ad3fdac447d14a3682fe35c03",
      "parents": [
        "b98115251ea963254fb55c0e48581d8b284c29e9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 09 08:32:42 2016 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 10 19:53:57 2016 +0000"
      },
      "message": "MethodHandles: Enable return value conversions.\n\nEnables return values conversions and simplify the type conversion\nlogic. Ensures check for WrongMethodTypeExceptions before invoking a\nmethod handle.\n\nTest: m test-art-host-run-test-956-methodhandles\nBug: 30550796\n\nChange-Id: I8add3ad0a19b43010946b4fb9f1c0f0949287860\n"
    },
    {
      "commit": "fdaf0f45510374d3a122fdc85d68793e2431175e",
      "tree": "3315c82410fd42612bb501bed150df454dde0dde",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 19:29:53 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 11:08:31 2016 +0000"
      },
      "message": "Change string compression encoding.\n\nEncode the string compression flag as the least significant\nbit of the \"count\" field, with 0 meaning compressed and 1\nmeaning uncompressed.\n\nThe main vdex file is a tiny bit larger (+28B for prebuilt\nboot images, +32 for on-device built images) and the oat\nfile sizes change. Measured on Nexus 9, AOSP ToT, these\nchanges are insignificant when string compression is\ndisabled (-200B for the 32-bit boot*.oat for prebuilt boot\nimage, -4KiB when built on the device attributable to\nrounding, -16B for 64-bit boot*.oat for prebuilt boot image,\nno change when built on device) but with string compression\nenabled we get significant differences:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: -28KiB\n    - 64-bit boot*.oat: -24KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: -32KiB\n    - 64-bit boot.oat: -28KiB\nThe boot image oat file overhead for string compression:\n  prebuilt multi-part boot image:\n    - 32-bit boot*.oat: before: ~80KiB after: ~52KiB\n    - 64-bit boot*.oat: before: ~116KiB after: ~92KiB\n  on-device built single boot image:\n    - 32-bit boot.oat: before: 92KiB after: 60KiB\n    - 64-bit boot.oat: before: 116KiB after: 92KiB\n\nThe differences in the SplitStringBenchmark seem to be lost\nin the noise.\n\nTest: Run ART test suite on host and Nexus 9 with Optimizing.\nTest: Run ART test suite on host and Nexus 9 with interpreter.\nTest: All of the above with string compression enabled.\nBug: 31040547\n\nChange-Id: I7570c2b700f1a31004a2d3c18b1cc30046d35a74\n"
    },
    {
      "commit": "ba28f9f62f9908e04be3097f900db4701dd3d392",
      "tree": "86e4807d97e144812495706f7f9d0d2cfab96540",
      "parents": [
        "689a331aded82340d2ab144d0adb9bbbbd4b53ff"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 26 10:56:25 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 08 06:20:28 2016 +0000"
      },
      "message": "Argument conversions for setter/getter MethodHandles.\n\nTest: m test-art-host-run-test-959-invoke-polymorphic-accessors\nBug: 30550796\n\nChange-Id: I9898605fc9f9f8a80f47f9559f3ccb99b02b07c8\n"
    },
    {
      "commit": "e82809a2c8f26aee1e861724908f0257018cd064",
      "tree": "09eda3b77ebc26c80821778894b38345df85dd35",
      "parents": [
        "d4ede93561597f248cdd5687fcbf41a42ca4f824",
        "0a8485ef5cb81746625fe57acf8adfd8b2bb28c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 04 11:48:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 04 11:48:48 2016 +0000"
      },
      "message": "Merge \"MethodHandles: Implement MethodHandle.asType.\""
    },
    {
      "commit": "38cea84b362a10859580e788e984324f36272817",
      "tree": "cf232431a9139116ea09b451aa9abbc98b8d8462",
      "parents": [
        "47b6bdb2a06cc4c296762c7461281f4390e17c2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 13:06:25 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 14:07:56 2016 -0700"
      },
      "message": "ART: Make Handle trivially-copyable\n\nUse default copy constructor and copy assignment to make Handle\ntrivially copyable. Do the same for MutableHandle.\n\nFix up unused Handle warnings. Add asserts in the HandleScope\ntest.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I151f0bdbeeb131a6fc5c44610f345663ebe96c09\n"
    },
    {
      "commit": "878d1889f7273cbfd48035762b67ce634503d55e",
      "tree": "038df927b17a307596c7336f4b9683d3ca019c31",
      "parents": [
        "877bbedc8decb1236ba208311db75a9f29792eab",
        "0273ad1f702d7094b90ebb62c21c50b6a9568ab0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 03 18:53:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 18:53:38 2016 +0000"
      },
      "message": "Merge \"Remove lock from ClassExt installation procedure.\""
    },
    {
      "commit": "6a3be6d76860532d1a99e54b7d7cf2907680de96",
      "tree": "9422c51510ee89531d91dd6b65db86a08a483340",
      "parents": [
        "6f1b65d3b1f5037620f3d52cb703d20baf6e49dc",
        "12b58b23de974232e991c650405f929f8b0dcc9f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 17:36:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 17:36:24 2016 +0000"
      },
      "message": "Merge \"Clean up the runtime read barrier and fix fake address dependency.\""
    },
    {
      "commit": "0273ad1f702d7094b90ebb62c21c50b6a9568ab0",
      "tree": "759ae8b9f5bad5ee62e9e04d7dd5b35d307f627f",
      "parents": [
        "21b880ce80f63ddeeab7afaffe0de6934e602551"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 11:19:31 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 03 09:17:50 2016 -0700"
      },
      "message": "Remove lock from ClassExt installation procedure.\n\nWe were using a lock on the class to ensure that we avoid races in\nsetting the ext_data_ field of a class object. We replace this with a\nCAS of the field in order to prevent deadlocks.\n\nTest: mma test-art-host\nChange-Id: Ie436ff9526f2c3b38a9af49c5606a7cee6d718f1\n"
    },
    {
      "commit": "0a8485ef5cb81746625fe57acf8adfd8b2bb28c0",
      "tree": "e0d5384ad9b9ffcb549c0332a177d650614a6d3d",
      "parents": [
        "e5eb574f4c5c5afb7deb0c49d7f9eca2062347f5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 18:47:11 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 03 15:13:00 2016 +0000"
      },
      "message": "MethodHandles: Implement MethodHandle.asType.\n\nTracks libcore change 16fa583fb5ee489.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I2457b563f67a183c4eebf94ddbe74cc55f772ee0\n"
    },
    {
      "commit": "2ab98309c0fc7b3c7451205b2371db5c34b05d49",
      "tree": "9ad33fc4e6b165a28eec6a87a61f145765e9023e",
      "parents": [
        "de582c1d00b23afe239a9ed388e1ea0509b69d7f",
        "2cb856c47b884a08485e2f08e6a3ef6a5bbf773a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 03 13:04:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 03 13:04:40 2016 +0000"
      },
      "message": "Merge \"Address review comments from change 000e1885701c8f.\""
    },
    {
      "commit": "12b58b23de974232e991c650405f929f8b0dcc9f",
      "tree": "bc08011e3b9f4c132fc605dc54d1d5f50c932a29",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Nov 01 11:55:29 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 02 16:31:04 2016 -0700"
      },
      "message": "Clean up the runtime read barrier and fix fake address dependency.\n\n- Rename GetReadBarrierPointer to GetReadBarrierState.\n- Change its return type to uint32_t.\n- Fix the runtime fake address dependency for arm/arm64 using inline\n  asm.\n- Drop ReadBarrier::black_ptr_ and some brooks code.\n\nBug: 12687968\nTest: test-art with CC, Ritz EAAC, libartd boot on N9.\nChange-Id: I595970db825db5be2e98ee1fcbd7696d5501af55\n"
    },
    {
      "commit": "d62515891b15e73bc8eebb55cc09cb4dec4fcf21",
      "tree": "20c485231c93fa83384312e428202d8140dfa09d",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 31 11:12:30 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 12:55:10 2016 -0700"
      },
      "message": "Add ClassExt mirror.\n\nWe add the ClassExt type to hold values in Class that are not always\nneeded without making the Class type larger. For the initial change we\nmove the verifyError field into this type. It is expected to grow as\ntime goes on.\n\nTest: mma test-art-host\n\nChange-Id: I1d97df2e1267203841ad47b2effcb66dd76ac12a\n"
    },
    {
      "commit": "2cb856c47b884a08485e2f08e6a3ef6a5bbf773a",
      "tree": "13ba1e1bcab2057670626243c79daef54a20249c",
      "parents": [
        "bcc17bd8bb1e6375e5f39c9ec3df84c7e6b9600e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 12:01:26 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 17:08:33 2016 +0000"
      },
      "message": "Address review comments from change 000e1885701c8f.\n\nStyle fixes, and better OOM handling.\n\nbug: 30550796\nTest: make test-art-host\nChange-Id: I2ab58e25bd08daace6609ba45d860994a354280f\n"
    },
    {
      "commit": "9f54896e96a363a5b1ddb2f1b34b58ad4f32ac10",
      "tree": "5ea316acc6fd641f9b9a70a0e7f83deb3fcd3c9b",
      "parents": [
        "dd7c25e5af5b88a1bc58ed7de076037e593b176d",
        "94bee022594187158e6fb2050d5198f973375336"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 02 09:32:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 02 09:32:17 2016 +0000"
      },
      "message": "Merge \"MethodHandles: Track libcore change cc4ded.\""
    },
    {
      "commit": "8cefb64725f43977c64f7a45483699dce8b7eb8d",
      "tree": "56900580eb5f8bdc45fca206a1dd1d6d2ff29146",
      "parents": [
        "3a8360f0bcbe1547063678e572cc6fe8a55a0ca0",
        "6b4c28734f138a991b34e3292bfe64e729bd081c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 02:54:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 02 02:54:11 2016 +0000"
      },
      "message": "Merge \"Fix read barriers in VisitDexCachePairs\""
    },
    {
      "commit": "3a8360f0bcbe1547063678e572cc6fe8a55a0ca0",
      "tree": "954d949d440fe18e3a58d82bbfeaaeb99ae121f8",
      "parents": [
        "3dbf5c44fb20337e61c6d1e22c372e4b614f1ff3",
        "2ecfd270adb29861b493de51cfb8670e276e0c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 00:55:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 02 00:55:28 2016 +0000"
      },
      "message": "Merge \"Add interface fast path to art_quick_check_cast for X86_64\""
    },
    {
      "commit": "6b4c28734f138a991b34e3292bfe64e729bd081c",
      "tree": "e6664949ddd2a2c37dc2259ab6f9fb0dde93ee9e",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 14:45:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 16:53:13 2016 -0700"
      },
      "message": "Fix read barriers in VisitDexCachePairs\n\nIt was ignoring kReadBarrierOption and marking through the read\nbarrier.\n\nBug: 12687968\n\nTest: test-art-host CC\nChange-Id: I5506acb5efb4b46be115ac899640522683898b47\n"
    },
    {
      "commit": "2ecfd270adb29861b493de51cfb8670e276e0c5e",
      "tree": "6aa5d0062a59f43b2c188fe0b1f11d56aedc588a",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 10:10:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 15:49:51 2016 -0700"
      },
      "message": "Add interface fast path to art_quick_check_cast for X86_64\n\nX86_64 CC ritzperf results from perf:\nart_quick_check_cast: 0.44% -\u003e 0.76%\nartIsAssignableFromCode: 1.78% -\u003e 0.11%\n\nAdded stub test.\n\nBug: 32577579\n\nTest: test-art-host\n\nChange-Id: I5ed5675c4674fac8eed8826eb50527f4876e5f07\n"
    },
    {
      "commit": "94bee022594187158e6fb2050d5198f973375336",
      "tree": "d38d958f197e318ae512117ffd097746191d35ea",
      "parents": [
        "bda454e9a09018cde1ea2ee10f0fdd5bf2ad756b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 01 10:57:15 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 01 12:51:04 2016 +0000"
      },
      "message": "MethodHandles: Track libcore change cc4ded.\n\nTrack increase in vtable size of java.lang.Class, and add additional\ntests for the method that resulted in the increase as well as its\ncaller.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I0ea6cbf8840d45b74f3a50e4c9df2af5397d41e3\n"
    },
    {
      "commit": "ca6a71943230cd91061cfaa2bbd8f2a776a673d9",
      "tree": "e8abfa1165b6131114de6590a99496a91e64c114",
      "parents": [
        "9be86bb445c3d218af0a48ee30827e89bb71a21b",
        "3e0dce0ff7e28f756ec4b8a08259517e5fb3776d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 01 08:59:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 01 08:59:19 2016 +0000"
      },
      "message": "Merge \"MethodHandles: Better detail message for WrongMethodTypeExceptions\""
    },
    {
      "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": "3e0dce0ff7e28f756ec4b8a08259517e5fb3776d",
      "tree": "f27c7249d4319a174f31b95081f6670b6aa8446e",
      "parents": [
        "b24b0268b0f26af9d66ab0f163690d2b2164902b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 13:55:55 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 14:10:53 2016 +0000"
      },
      "message": "MethodHandles: Better detail message for WrongMethodTypeExceptions\n\nWe now include the type of the callee and the callsite.\n\nThis change also fixes a call to ThrowWrongMethodTypeException that\npassed arguments in the wrong order.\n\nTest: make test-art-host\n\nChange-Id: I3ced2e331cb49b616a8374f5a604dafa37330059\n"
    },
    {
      "commit": "bb04c9b9baa620d2664851f58f693e8aec0c0bc0",
      "tree": "7fe7db598e203f73ce0930a62ca23309d2e0daef",
      "parents": [
        "be92d691dd044dfc94a1c8e8793056776d55e826",
        "3d617ac3d87f7fa98793406818e54b057bd701a1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 31 11:42:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 31 11:42:14 2016 +0000"
      },
      "message": "Merge \"Getter/Setter support for invoke-polymorphic of invokeExact().\""
    },
    {
      "commit": "3d617ac3d87f7fa98793406818e54b057bd701a1",
      "tree": "5230ceedfaf2928da0404fd71b64fa7f08439f21",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 19 14:00:46 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 31 09:16:19 2016 +0000"
      },
      "message": "Getter/Setter support for invoke-polymorphic of invokeExact().\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I427a6e0afba88b223655ad1ba30843aaf255182b\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": "269cb43d6df76b52a42c1c7a9436c92bd0dcdad6",
      "tree": "6fb3dec2763ffdacdf1b31e4ed04c3f0c6cc5f81",
      "parents": [
        "d6435da102851e155acd12adc420e7df3db47903"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 10:19:54 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 11:48:49 2016 +0000"
      },
      "message": "class_linker: Change allocation of MethodType dex_cache entries.\n\nWe allocate them regardless of the value of the runtime flag to\navoid needing changes to the compiler etc. The memory hit can be\nmitigated in production systems that don\u0027t use MethodHandles by\nsetting kDexCacheMethodTypeCacheSize to 0.\n\nAlso, add DCHECKS in the interpreter to make sure the runtime\nnever executes an invoke-polymorphic instruction when method handles\nare disabled.\n\nTest: make test-art-host\nBug: 30550796\nChange-Id: Id4b2065d99dc13625a51037b7d1a9f0ac5ff6121\n"
    },
    {
      "commit": "ef41db7a3f322a1feb305fdb457410c4cea94d00",
      "tree": "c03152c091ef62ab70f5be0a2fe3a965b189132c",
      "parents": [
        "1458e0c09fe0a3b9fa5fd7beb9b6077d1fc46b1d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 25 15:08:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 26 15:25:40 2016 -0700"
      },
      "message": "Move interpreter to ObjPtr\n\nMoved most of interpreter, interpreter_common,\ninterpreter_switch_impl, and some of mterp to ObjPtr.\n\nBug: 31113334\n\nTest: test-art-host ART_TEST_INTERPRETER\u003dtrue\nTest: art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I0935d18287e1332205c17c5a018aa167788ab897\n"
    },
    {
      "commit": "d08e39b6f02368aaa668b5aae6b6077b3eb44d9c",
      "tree": "0b2d011f11b6c462512341292f949871a51c8900",
      "parents": [
        "d985a5a81a45595f5cb4d12da81eec760801c92c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 19 14:16:35 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Oct 20 11:02:14 2016 +0100"
      },
      "message": "DexCache: Add support for updating MethodType references during GC.\n\nFixes flakiness in 956-methodhandles\n\nTest: make test-art-host\nbug: 30550796\nChange-Id: Ia5359390d59e65fc6efc16cc55c11bc65029104d\n"
    },
    {
      "commit": "28357fab628bd9b91749988b554977398caf9963",
      "tree": "957fac3c1003713c349e0e216762836138c596a7",
      "parents": [
        "c89f9776a107ca20d0146c16fa881db91c4f8266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 16:27:40 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 19 10:04:37 2016 -0700"
      },
      "message": "Move most of class linker to ObjPtr\n\nReturn values are still mirror pointer. Fix some failing asserts in\ncompiler driver and tests.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4450bf9dfb2541749496b8388616e8aae8488919\n"
    },
    {
      "commit": "c89f9776a107ca20d0146c16fa881db91c4f8266",
      "tree": "f77bd4525e69c4874c52183878ae642fd5a2201c",
      "parents": [
        "58b99c78d0bba093fddebab0dcad45bbcf5c55d9",
        "709b070044354d9f47641f273edacaeeb0240ab7"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Oct 19 16:18:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 19 16:18:51 2016 +0000"
      },
      "message": "Merge \"Remove mirror:: and ArtMethod deps in utils.{h,cc}\""
    },
    {
      "commit": "9c9883bb03de05783d3e24dfc00dee4d03786fe3",
      "tree": "d765d341d46ad88c9bb8effdcfad9493dc9adb27",
      "parents": [
        "fc7798ba8201ae44c5c11384232be7c51afd3727"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 17 14:45:29 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 19 10:47:51 2016 +0100"
      },
      "message": "Fix string compression, add tests.\n\nFix String.compareTo() for interpreter; memcmp() does not\nreturn the required result (only the right sign).\nFix x86-64 stub where the assembler silently accepted and\ngenerated bad code for out-of-range JECXZ.\nAdd extensive tests for String.equals(), String.compareTo()\nand String.indexOf().\n\nBug: 31040547\nTest: Run ART test suite including interpreter tests on host and Nexus 9.\nTest: Ditto with string compression enabled.\nChange-Id: I21b7a74da8a577c8fbaf8d9225f048550236d414\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "d203296000f18dd582702eebe6a6e9c5b0182397",
      "tree": "b90a9213b96d44cb3406994545bce0c10836b1be",
      "parents": [
        "9d7c8a3bc1cbd07baadce8d5fa44599eb0e44def",
        "bc5a795c0d486c84913d987cad5846ded840cea6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 17:40:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 18 17:40:53 2016 +0000"
      },
      "message": "Merge \"Move art/native to ObjPtr\""
    },
    {
      "commit": "3e2e2f1bfb01d9e0066fd737d2a94e1782ed8d2b",
      "tree": "d79fc7d8bbf116a8709b6bb6a755bf46cc9e771f",
      "parents": [
        "9fbeb7e4adc72bfcb5ccd42dd994f8a8be4a549f",
        "7fe56583220d813980f2241e0df13f5aa6627611"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 18 09:23:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 18 09:23:04 2016 +0000"
      },
      "message": "Merge \"Fix handling of dex cache arrays for method types.\""
    },
    {
      "commit": "bc5a795c0d486c84913d987cad5846ded840cea6",
      "tree": "90db29a97a21fa15f4cbc5ffbc1f6dd191add49c",
      "parents": [
        "38a4223fcc0493553d9ad324a1dc145869eb663a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 15:46:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 16:16:50 2016 -0700"
      },
      "message": "Move art/native to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I67eb89cf042c762c6dcd5eb8b008b9a28e9b3319\n"
    },
    {
      "commit": "31e88225b2ef68e7f32f11186acf922c74ddabab",
      "tree": "ca50f60634854056bb652e7c375e5ccca2def5cd",
      "parents": [
        "602142692643d8cd2c48d9aaeece26470f702e3b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 18:43:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 11:36:39 2016 -0700"
      },
      "message": "Move most mirror:: args to ObjPtr\n\nFixed possible moving GC bugs in ClinitImageUpdate class.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I0bf6578553d58b944aaa17665f1350bdf5ed15ec\n"
    },
    {
      "commit": "7fe56583220d813980f2241e0df13f5aa6627611",
      "tree": "3d89b9a43c162cfd613e7538302115d9ca3d08d0",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 14 18:49:12 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 17 16:29:32 2016 +0100"
      },
      "message": "Fix handling of dex cache arrays for method types.\n\n- Add support for relocating method type dex cache arrays.\n- Add missing call to MethodTypeDexCachePair::Initialize in the\n  class_linker.\n- Fix alignment calculation for method_types in\n  DexCacheArraysLayout.\n- Removed unused MethodTypeOffset(uint32_t) method.\n\nFixes tests with --pic.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I2bba7228762b9e9834e7659fe62090be78afdfa8\n"
    },
    {
      "commit": "5d3f73aef1b778d81ba101ece41935adee259cf2",
      "tree": "fec0c2fdbb88df0a366e29b6470d1274aa6e2ec1",
      "parents": [
        "cfdff144f154df876987fefb340058a975c43381"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 14:28:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 14 14:38:43 2016 -0700"
      },
      "message": "Move reference processor and mirror::Reference to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c7c3dfd88ebf12a0de271436f8a7781f997e061\n"
    },
    {
      "commit": "1a5337fff2cc6cb9d563c8b32aca75f485d23373",
      "tree": "03616e90a91c5c4c1bd7ff03c3d193c3b24bf0db",
      "parents": [
        "c8b722b3cebff245d614e95d1849de45ef7bdf06"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 13:48:23 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 17:37:56 2016 -0700"
      },
      "message": "Move mirror::ObjectArray to ObjPtr\n\nAlso reduce calls to ObjPtr::Ptr.\n\nBug: 31113334\n\nTest: test-art-host -j32\n\nChange-Id: I73e1b356972bb079b66332f00f7f07451601044e\n"
    },
    {
      "commit": "6b3d12b3d233734bb6669faccddcba7abeb5ea99",
      "tree": "ce2f3a3188b94e70c880590bf4f99a899ada9119",
      "parents": [
        "b18bfac8e95ffdc6ef20d2602d2e7003021815b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 13:59:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 14:56:51 2016 -0700"
      },
      "message": "Move common throws to ObjPtr\n\nAlso a few other throws. Removed some calls to ObjPtr::Ptr.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I4082d64134a5a8961489f4309522c28a30968a18\n"
    },
    {
      "commit": "28bd2e4f151267b34b8e1eb19c489d8d547bbf5c",
      "tree": "d99ae3fe74ea63b83091898d830d3efe68cd479d",
      "parents": [
        "6e5fa09510c7280168e040382d27dd8b55760d9a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 13:54:57 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 10:59:28 2016 -0700"
      },
      "message": "Move mirror::Class to use ObjPtr\n\nLeave the return types as non ObjPtr for now. Fixed moving GC bugs\nin tests.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I5da1b5ac55dfbc5cc97a64be2c870ba9f512d9b0\n"
    },
    {
      "commit": "51eaa7f5547f9ddea92ce57c6c2df9534d5017b8",
      "tree": "43456ed702c2ee5fe6ca1cbf7e9e53b2a4088109",
      "parents": [
        "c2f1fc70dba4db8751248c4ad15315946f6d13d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 16:08:35 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 17:07:04 2016 -0700"
      },
      "message": "Fix moving GC bug in cloning finalizable objects\n\nIt is not safe to have thread suspension in the PreFenceVisitor. The fix is\nto add the finalizer reference in the caller.\n\nTest: art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nBug: 31113334\n\nChange-Id: I1e4650f8b75408a3d07e2c51ac334ff98552cfb5\n"
    },
    {
      "commit": "9d156d500801accee919b6d51e22d6ddcdcd4a05",
      "tree": "92129562c0ba1673c660297f26444a4a2ad31459",
      "parents": [
        "078483d4dfd049d5b3f192a99e2dfdc355e4754f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 17:44:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 12 09:49:49 2016 -0700"
      },
      "message": "Move Heap parameters to ObjPtr\n\nDeleted some unused object dumping code.\n\nTest: test-art-host\n\nBug: 31113334\n\nChange-Id: I747220caafe6679591fd4b361d7f50383a046164\n"
    },
    {
      "commit": "fec13d4f4e8ad8cc5186696945b9498e1b53b1c9",
      "tree": "bfb5c1fa6c188fe6e556e41be239a6db126af7f6",
      "parents": [
        "f361a29848d3b88a3074e4ca25be62d77dab6a75"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 07 12:59:33 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 10 13:13:46 2016 -0700"
      },
      "message": "Use art::Atomic for CopyObject\n\nJust to be sure it doesn\u0027t get turned into memcpy.\n\nAlso avoid casting ObjectArray to IntArray. This is a strict aliasing\nviolation.\n\nBug: 32012820\n\nTest: test-art-host\n\nChange-Id: Icc5d4a758cb4f4e1686389bb0cb74ac08e554f04\n"
    },
    {
      "commit": "0353698431883d11600e57c9367607a7455b3fb4",
      "tree": "a00d0adfe64c0da40b726a1f8799b774b18514c4",
      "parents": [
        "0d7398fd5407938aba75c50bd323af27e83ccb9f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 07 10:51:53 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 07 10:57:39 2016 -0700"
      },
      "message": "Use word copying for CopyObject\n\nPrevent word tearing.\n\nBug: 32012820\n\nTest: test-art-host\n\nChange-Id: Ie3d5817f3bdf49e0d949caeccd7cd3512d61bdf7\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": "f8ac97f94aad9ce2d324c2c7c21dde3abf13315b",
      "tree": "9359680f07a65531898113dd335020db33b9b6e6",
      "parents": [
        "299958fc681f591fee7ff9ae0d81bd3adfebdd2b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 15:56:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 15:59:57 2016 -0700"
      },
      "message": "ObjPtr misc cleanup\n\nCheck for subtypes in constructor.\n\nRemove various calls to MakeObjPtr and ObjPtr::Ptr.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I8d680d514ea52cd64fc4f7c2e988926bc726174e\n"
    },
    {
      "commit": "7638651be29f117ef651841fbb9ffda76921ae1b",
      "tree": "5354cc999cc64dd2bfe78d60bef994059fcca2ba",
      "parents": [
        "cf42ad62df2dda8b5a39cab50669a9446a880b41",
        "6c60d8420e51fda65ad247ae04b5a823c88c26b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 19:59:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 19:59:09 2016 +0000"
      },
      "message": "Merge \"Initialize dex cache while holding dex_lock\""
    },
    {
      "commit": "6c60d8420e51fda65ad247ae04b5a823c88c26b6",
      "tree": "8c4222eadad97235b5f6d860fb63ab8a749d111a",
      "parents": [
        "c13fbeb2201dc0bf783670d4548a49f03b1cb33e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 10:24:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 09:39:07 2016 -0700"
      },
      "message": "Initialize dex cache while holding dex_lock\n\nFixes multiple threads calling RegisterDexFile occasionally getting\nDCHECK failures due to the arrays not being null since the BSS ones\nis per dex file.\n\nBug: 31369621\n\nTest: test-art-host, no DCHECK failure during debug booting\n\nChange-Id: I7b6e4cd03460dd1213eb4e044bdcf5f6103fd5f9\n"
    },
    {
      "commit": "8ee0b085bed13105c2ecc9caeb025eb758bcb27d",
      "tree": "2e53573d42f50baa32fa63a23734ff4ed662023d",
      "parents": [
        "d3a9ce9d30a59587413310e66ea51c8f7adb0a1d",
        "9823e788ed3368ecf826c44bfa16ccabfcbe32f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 12:19:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 12:19:30 2016 +0000"
      },
      "message": "Merge \"Basic implementation of invoke / invoke-polymorphic.\""
    },
    {
      "commit": "9823e788ed3368ecf826c44bfa16ccabfcbe32f8",
      "tree": "59dee92dfd7518a98905c8313bdcb0a2ca2946cb",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "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": "Wed Oct 05 10:34:59 2016 +0100"
      },
      "message": "Basic implementation of invoke / invoke-polymorphic.\n\nBasic switch interpreter support for invoke-polymorphic. This change\nallows for virtual/interface and static invokes on method handles.\n\nSupport for direct invokes (including constructors) and field\ngetters and setters will be added in follow up changes.\n\nBug: 30550796\nTest: make test-art-host\n\nChange-Id: Ieb3a991d974060d930d56467908d5c7c11d0e38e\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": "b890130a66e167404a9a60cf0893a015538778ca",
      "tree": "e50899e754132f3281c932c31203f8c34c8ca85f",
      "parents": [
        "3398c7874e002beaa6c2b2fadf183e7d1ddad23a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 16:00:55 2016 -0700"
      },
      "message": "Use ObjPtr for ResolvedFieldAccessTest and ResolvedMethodAccessTest\n\nAlso added LookupResolvedType that is guaranteed to not do thread\nsuspension but deals with multidex since GetResolvedType will\nreturn null if the type was resolved in another dex file.\n\nAdded test.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I50493bca7d8ce9760546c3116b717484c62c47a4\n"
    },
    {
      "commit": "3398c7874e002beaa6c2b2fadf183e7d1ddad23a",
      "tree": "7db754b5b0c3a6c68bc1f91d7cb2477f534d2ad3",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 14:06:27 2016 -0700"
      },
      "message": "Move ArtField to ObjPtr\n\nAdded EXPECT_OBJ_PTR_EQ and variants to gtests.\n\nFixed moving GC bugs in:\nClassLinker::CreatePathClassLoader\nClassLinkerTest: StaticFields\n\nObjPtr Decode call sites: 186 -\u003e 181.\n\nSome tests fail due to ResolvedFieldAccessTest, will fix in follow\nup CL.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I8b266ad00f3c20c8cbe7cfdf280d175083df0b88\n"
    },
    {
      "commit": "d295618ac764b334424b0bc7a592337edef19783",
      "tree": "1f3e846a8cf6eef30683dcad63c4dc3ce39c7058",
      "parents": [
        "1ec37ada3566207b0b39a23eeb8f366cecfee77a",
        "23136d1dd1f7c939ebccf22dbb3bf1fcb0ce303a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 13:10:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 13:10:43 2016 +0000"
      },
      "message": "Merge \"DexCachePair : Add an Assign method.\""
    },
    {
      "commit": "23136d1dd1f7c939ebccf22dbb3bf1fcb0ce303a",
      "tree": "0a5c50083dcf263a11deefc18e4f464915d099f4",
      "parents": [
        "ebeee75e46d173d3803ed7740800c508c9c23580"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 16:29:19 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 13:10:17 2016 +0000"
      },
      "message": "DexCachePair : Add an Assign method.\n\nThis prevents the logic for determining a slot from the type ID from\nbeing scattered all over the place.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I4ad6db8b730dc617fa8474a71c3794963b58279b\n"
    },
    {
      "commit": "42b3dd0f94d2da0ec5f42c4cb57eef71dde02c79",
      "tree": "9c39a95d1eeac50379821113888ea78541f0ebc6",
      "parents": [
        "ebeee75e46d173d3803ed7740800c508c9c23580"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 11:33:01 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 11:33:29 2016 +0100"
      },
      "message": "Address review comments for change 25352fc06c84cdab8a2ab.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: Ic689e4c9bee691f03703288c3b12634a26841140\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "268764da8022cafa5661c5b514eaa343c5257e57",
      "tree": "7c4b46847a6dcfac7a1492edd79b434fb1a0d6ea",
      "parents": [
        "f9decf915f6fa5b33fceba7c10c119e4cad481e5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 12:09:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 15:18:29 2016 -0700"
      },
      "message": "Make ScopedAssertNoThreadSuspension no overhead for non-debug\n\nPreviously it required Thread::Current() which may not be free.\nThe plan is to add a lot more ScopedAssertNoThreadSuspension in\nthe codebase.\n\nAlso cleaned up callers.\n\nBug: 31458474\nChange-Id: I5a1621a5435476504d22266cc01a9bf26aab7568\n"
    },
    {
      "commit": "c72b7d3ca97e0d74f3746cbd60dc9fec0c16204b",
      "tree": "dd1249d4cb6dcd67bfffc72c95e1e404daf5d7f2",
      "parents": [
        "2048da5f03a62c87660d981861ce393b8e9ab3c8",
        "7908c8e778487116a55739791d45a717560b336f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 22:14:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 22:14:24 2016 +0000"
      },
      "message": "Merge \"String Compression (interpreter only) bug fix\""
    },
    {
      "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": "7908c8e778487116a55739791d45a717560b336f",
      "tree": "45ed4137097a7e0b4fde6cd2401931d26aa5dbe8",
      "parents": [
        "ed0f9c4028947a1f2d8ffd957c414a524827cf13"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:05:34 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:05:34 2016 -0700"
      },
      "message": "String Compression (interpreter only) bug fix\n\nString with length 0 considered to be compressible,\nso the length should be -2147483648 or -(1 \u003c\u003c 31).\n\nChange-Id: Ie71f17a0e66efe9a65a8a76d4cee776db636550f\n"
    },
    {
      "commit": "279ac5c060a1a642c786730e3f2b05d556c00839",
      "tree": "2c7a4faea98f43828f465f46d77e9b12d6f2f09a",
      "parents": [
        "30a6a8830f6bec346de3e9ad046c8576283e36d8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 17:34:25 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 09 14:16:13 2016 -0700"
      },
      "message": "Don\u0027t assume resolved classes are filled in for ResolvedFieldAccessTest\n\nThe assumption that the dex cache type for class of the field is\nresolved is not correct since FindClass does not fill in the\nresolved type array. This resulted in crashes if dex_access_to \u003d\u003d\nnullptr.\n\nAlso implemented for ResolvedMethodAccessTest\n\nBug: 31277064\n\nTest: test-art-host CC baker, launch ZeroTouch with PGO.\n\n(cherry picked from commit c90450a201707111e33d6b6f37d431b201849a8b)\n\nChange-Id: Id5e71ea0eced1b631a3bd7d297229a66cb190954\n"
    }
  ],
  "next": "bb816d66aabb9c2a2e095517d2013041116332db"
}
