)]}'
{
  "log": [
    {
      "commit": "1e3926ae224c6418c6e1209bb134c28116a2c1fb",
      "tree": "dbd6a5611266133552841fba75a01b3541dfa6d8",
      "parents": [
        "672082ab6edf7c12a1d7b1d9303aa0aa4fcce089"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 07 10:38:06 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 07 14:52:13 2017 -0700"
      },
      "message": "Free unneeded obsolete maps\n\nIn cases where there are no new obsolete methods we can get rid of the\nobsolete maps arrays.\n\nBug: 31455788\n\nTest: ./test.py --host -j40\n\nChange-Id: I4a8cd96b4293439c6e67d9426011b92125cc7b03\n"
    },
    {
      "commit": "2f814aab42591b7b4093d79851d9d2920538a5ef",
      "tree": "7ff34f1d63f8520208dd4689171968bbc59f983b",
      "parents": [
        "a7c04c4fe6623985ba2d0cca942d5e1e584f4358"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 24 15:21:34 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 24 15:27:20 2017 -0700"
      },
      "message": "Revert \"Revert \"Make original dex file be more deduplicated\"\"\n\nThis reverts commit a7c04c4fe6623985ba2d0cca942d5e1e584f4358.\n\nReason for revert: Issue with target buildbots was fixed\n\nTest: m clean \u0026\u0026 ./test.py --target -j8\nBug: 31455788\n\nChange-Id: If00ef9433a9308810a40ea4e0d809987c934cef8\n"
    },
    {
      "commit": "a7c04c4fe6623985ba2d0cca942d5e1e584f4358",
      "tree": "ede1a98db77cfb0a05e3d445b7e1f7aed3d242d3",
      "parents": [
        "9556cb2bfc6788656d53a9ddb2159ca2040f6e38"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:55:08 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:55:08 2017 +0000"
      },
      "message": "Revert \"Make original dex file be more deduplicated\"\n\nBug: 31455788\n\nThis reverts commit 9556cb2bfc6788656d53a9ddb2159ca2040f6e38.\n\nChange-Id: If22f2bd9d1b788c2a784dbe0e7f0c2304d8e4a59\n"
    },
    {
      "commit": "9556cb2bfc6788656d53a9ddb2159ca2040f6e38",
      "tree": "7ff34f1d63f8520208dd4689171968bbc59f983b",
      "parents": [
        "f11cbe1361cc93f07e7a5ab1c9f0af4605552535"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 21 11:21:36 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 22 09:43:30 2017 -0700"
      },
      "message": "Make original dex file be more deduplicated\n\nNow when retransformClasses is called we will use the DexCache from\nthe transformed class to hold the original dex file. This means that\nthere should be fewer redundant copies of dex files lying around from\nclass redefinition.\n\nBug: 31455788\nTest: mma -j40 test-art-host-gtest\nTest: ./test/testrunner/testrunner.py --host -j40\n\nChange-Id: I60150e436d79aabb36da31ec679cb7ec4c820573\n"
    },
    {
      "commit": "4f2e957b07c8b6e48bbd7593bb64f3c5214fa489",
      "tree": "efcfcaaa1efdc567449c406e7107da2e94c127c2",
      "parents": [
        "ed883a11b8cd7f3712bd30fca1e2b0fb641bff63"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 16 13:13:31 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 16 14:23:46 2017 -0700"
      },
      "message": "Ensure the GC visits Obsolete Methods\n\nWe were previously not visiting obsolete methods during GCs. This\ncould lead to the use of stale pointers.\n\nBug: 36335999\nTest: ./test/testrunner/testrunner.py --host --interp-ac --gcstress -j40\n\nChange-Id: I2b5c7c75b29f9037204a860501fcdb78104b5e7a\n"
    },
    {
      "commit": "fa4333dcb481e564f54726b4e6f8153612df835e",
      "tree": "ae597c7587dc214434a180962c4373d3748f51ab",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:10:34 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:44:48 2017 -0800"
      },
      "message": "ART: Add operator \u003d\u003d and !\u003d with nullptr to Handle\n\nGet it in line with ObjPtr and prettify our code.\n\nTest: m\nChange-Id: I1322e2a9bc7a85d7f2441034a19bf4d807b81a0e\n"
    },
    {
      "commit": "a7e38d8aaacfca85b40b5df654f85c0979968672",
      "tree": "34322c79fc328a608fc17303453c8ec1f38b9eaa",
      "parents": [
        "05778764cb11162b6f3ff72386135ed45a07af33"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 19 14:57:28 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 20 11:32:03 2017 -0800"
      },
      "message": "Use original dex file for retransformation.\n\nThe spec requires us to pass the dex file as it appeared before any\nretransformation-capable agents had modified it to the\nClassFileLoadHooks when RetransformClasses is called. We do this by\nsaving the initial dex file bytes into the class as a byte[].\n\nBug: 32369916\nTest: mma -j40 test-art-host\n\nChange-Id: Ic6af3738cd2a831e91ba1144f502fa58b3c333e4\n"
    },
    {
      "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": "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": "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"
    }
  ]
}
