)]}'
{
  "log": [
    {
      "commit": "db698f1add0bfe5e482b837b8dcf805ee957d694",
      "tree": "00071a455b8fe88cf0eeb4dd31f5e2f36a10861a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 25 17:52:22 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 29 15:53:18 2016 -0700"
      },
      "message": "Fix for interpreter crash on new instance of class\n\nRationale:\nFuzz testing found divergences between the compiler and interpreter\nwhich turned out to be caused by calling instance on java.lang.Class\n(this worked for compiler but crashed interpeter). Since RI does not\nallow this construct, solution is to force interpreter in this\nunlikely case and throw run time exception like RI. This fixes\ntwo cases found with fuzz testing. CL also includes\nfail-before/pass-after test.\n\nTest: 600-verifier-fails\n\nBUG\u003d29758098\n\nChange-Id: Ie80f7758def44e6655d28fec4c10c34ffa0fd60b\n"
    },
    {
      "commit": "2a1b7ac77446d12befceb9946dc418d15119bc05",
      "tree": "085d819d474dcb9383908d3b6fd82843a9512516",
      "parents": [
        "5be510d8feeb3640e3e4f6a257a775194fcb5097"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 29 14:54:26 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 29 14:54:26 2016 -0700"
      },
      "message": "Fix divergence between interpreter and compiler.\n\nRationale:\nAccess checks on a method invocation should be performed\nprior to checking null pointer for non-static method calls.\n\nTest: 600-verifier-fails\n\nBUG\u003d29068831\n\nChange-Id: I21874d96ff83e7e6c6cf7c239e65ce1b515b9729\n"
    },
    {
      "commit": "29f8b6f6d6dd33bcd7ae19396e6f6dec94206b7c",
      "tree": "9f8be44788ef2e70cc877d15a8bd7b5cf664ae24",
      "parents": [
        "4a85ad8b802ba74b26ed4a5d7c31aadd9046ae96"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 08 14:49:28 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 08 14:49:28 2016 -0700"
      },
      "message": "Temporarily disable test E\n\nRationale:\nInterpreter does not seem to perform access checks\nprior to null check, a feature that was just fixed\nin the AOT compiler. Disabling the test until we\nfigure out who is right.....\n\nBUG\u003d29068831\n\nChange-Id: I2cdce568727e631f48648f401806e7ecd6985038\n"
    },
    {
      "commit": "296fbb4c3a629ec99149e512ddb66d7b4d7854fe",
      "tree": "efdf1998a9bd2aa55a0962d01300412c366c0042",
      "parents": [
        "88b970c24162c0b223f724e664a6da08ae6bfc5c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jun 07 13:49:12 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 08 09:41:33 2016 -0700"
      },
      "message": "Do not place null check on unresolved method calls.\n\nRationale:\nThese invokes drop through the runtime anyway where various\nchecks are done, including null check. A few of these\nchecks need to occur before the null check.\n\nWith fail-before/pass-after smali test.\n\nBUG\u003d29068831\n\nChange-Id: I260715e742365433a323598d97f7fdab321e8512\n"
    },
    {
      "commit": "31883646547a036f58b9fa0894eb0fac0bcf05a1",
      "tree": "2b78c3b85254464f9f73826c26054ccefddd44e4",
      "parents": [
        "6b631dc9662d39ca0f89ee4653d911f1f5291913"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jun 06 15:02:44 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jun 07 10:09:26 2016 -0700"
      },
      "message": "Do not hide instance field hard failure with soft failure\n\nRationale:\nYet another verifier inaccuracy found with fuzz testing.\nInstance field verification should proceed testing instance\nfield access after soft failures in cases where hard failures\ncould still follow. Failure to do so resulted in a compiler\ncrash (now made bit friendly with DCHECK as well).\n\nWith crash-before/pass-after test.\n\nBUG\u003d29126870\n\nChange-Id: I8674d6171158eaa2aeb0492b35dfafea76416cac\n"
    },
    {
      "commit": "1415413bddb3a9cd9432de3381ef27e5181e58cc",
      "tree": "c3f6e6593cbd93ee4f04683548bcf7e014ee1dcc",
      "parents": [
        "3f432d5a7c184b7580bd5aba27158c1455c328ff"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jun 02 17:53:58 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jun 03 14:32:49 2016 -0700"
      },
      "message": "Do not place null check from unresolved field access.\n\nRationale:\nThese accesses go though the runtime anyway where various\nchecks are done, including null check. Since particular\nchecks, like access checks, need to occur prior to the\nnull check (to ensure link errors are not masked by\na null reference), the explicit null check should not\noccur in the HIR.\n\nBUG\u003d29068831\n\nChange-Id: I30fc9cb8cf4993e4176e235ceba3a38aef98d503\n"
    },
    {
      "commit": "b05263225f6df798db565df0ef9a539f272603ed",
      "tree": "12acac3488144071b6a06ce31a0c3951d59f40d3",
      "parents": [
        "bbfa42aa4c4b5cbc2ed2d8bdea6ff76da615a8aa"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 01 14:06:00 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 01 14:39:19 2016 -0700"
      },
      "message": "Fix bug in verifier: hard fail allowed following softfail\n\nRationale:\nDexfuzzing found a situation where a hard fail (not calling\nsuper in constructor) did not immediately bail, allowing\na soft fail to follow, causing a FATAL message later on.\n\nWith crash-before/pass after test.\n\nBUG\u003d29070461\n\nChange-Id: I46bd7a7457b9d408b254400aadac122539f2279c\n"
    },
    {
      "commit": "c2bc26513ea7c5e2dd9f3b102fb23fd207e4ce63",
      "tree": "cabc7c8d7fc27ea901d1d80548d7daaec3b2efd4",
      "parents": [
        "1e5dda549c11d02aff51f132760dd693e351ce85"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon May 23 14:58:49 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 24 09:48:21 2016 -0700"
      },
      "message": "Fix bug in verifier: soft fail was hiding hard fail.\n\nRationale:\nDexfuzzing found a situation where a soft fail (modifying\na final field) was hiding a hard fail (type error on that\nfield), which caused a crash in the compiler later on.\nAlso added a crash-before/pass-after regression test,\nso we don\u0027t add the return by accident later.\n\nBUG\u003d28908555\n\nChange-Id: I0cdc400be22a2d9eb00db8c8c6b25a85fbdac993\n"
    }
  ]
}
