)]}'
{
  "log": [
    {
      "commit": "72f6774bf65222b7c93c3e4d706938635cacf050",
      "tree": "e121e3ce1f5b0e5215b7054fb8689e8e4ceded45",
      "parents": [
        "2c029f35eebe7d8b0d00979342d64b2f2dad5a94"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Mar 06 15:48:08 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 24 13:13:42 2019 +0000"
      },
      "message": "Use flattened Runtime APEX contents in ART chroot-based device testing.\n\nCopy the contents of the flattened Debug Runtime Module\ndirectory (`/system/apex/com.android.runtime.debug`) to\n`/apex/com.android.runtime` within the chroot directory on the device.\n\nAvoid generating artifacts that are not expected in the `system`\ndirectory (`TARGET_OUT`) of a \"normal\" build.\n\nAdjust the chroot environment to have it use the system linker\nconfiguration of the built target (\"guest system\") and the linker\nconfiguration of the Runtime APEX, even if the linker configuration\nflavor of the \"guest system\" (e.g. legacy configuration) does not\nmatch the one of the \"host system\" (e.g. full-VNDK configuration).\nThis is done by renaming the configuration file provided by the \"guest\nsystem\" (created according to the build target configuration) within\nthe chroot environment, using the name of the configuration file\nexpected by the linker (governed by system properties of the \"host\nsystem\").\n\nTest: ART chroot-based on-device testing using the master-art branch\nTest: ART chroot-based on-device testing using the master branch (with\n      `TARGET_FLATTEN_APEX` set to `true` before building).\nBug: 124425036\nBug: 121117762\nChange-Id: Ied3f6ee8b2d68c3473fab864d1bbed9e88df59d3\n"
    },
    {
      "commit": "1f3925d4f067438d3689ef2736fd2af063c98668",
      "tree": "4e1ad2f24b73dbf6c2ea99881e6c4cd99193be76",
      "parents": [
        "038cb84f792501ae01561fe5ea4e8144f1918b7e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 07 12:04:20 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 09 10:26:42 2016 -0700"
      },
      "message": "Fix vtable corruption issue\n\nWe were adding duplicate methods to the vtable in some cases where\ndefault methods (and conflict methods) were used. This caused issues\nwhere they were not correctly overridden in subclasses that implement\nthese methods directly. When overridden only one of the vtable entries\nwas updated meaning it was still possible to reach the overridden code\nusing a virtual call.\n\nThis change prevents the duplicate methods from being added to the\nvtable in this circumstance. It also adds a debug check that ensures\nthat the vtable has no duplicates to prevent regressions.\n\nBug: 31280371\n\nTest: mma test-art-host\nTest: mma test-art-host-run-test-960-default-smali\n\nChange-Id: I17d88fb8949c8d5d75b4de3c734fd98660b81e61\n"
    },
    {
      "commit": "d204ba5ac9c5488880d85dc198e7b6aefea2f0bb",
      "tree": "1f700bef3ac4b9dc526d6a192841f264193c3f17",
      "parents": [
        "072cbe0ca5ce75bdb448955aa82257cc05dac610"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 01 14:33:51 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 03 11:47:46 2016 -0800"
      },
      "message": "Move some default-methods tests to Java from Smali.\n\nMove all smali tests for default method behavior in\nnon-source-incompatible contexts to java. Also move some of the\nsimpler tests for source and binary incompatibilities into java as\nwell when possible.\n\nBug: 27310767\n\nChange-Id: I753196f19849494825953c1bf06f15b7132f459b\n"
    },
    {
      "commit": "9139e008abe30b7beaf4afd6533228a1dd9b202c",
      "tree": "506be89287507bd777bd132627ad963729434969",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 09 15:59:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 10 17:20:41 2015 -0800"
      },
      "message": "Correct exception behavior for default methods\n\nDefault methods are defined to throw an IncompatibleClassChangeError\n(ICCE) when they are called and there is no \"best\" implementation.\nPreviously we would simply throw an ICCE during class loading as soon\nas we noticed that this would happen if called. This makes us wait\nuntil we actually attempt to execute the method. Furthermore, this\nallows us to use other, non-conflicting, methods on the object as\nnormal.\n\nFurthermore, this makes us correctly throw AbstractMethodErrors in\ncases where all default implementations of a method are overridden by\nabstract declarations.\n\nAdds 3 tests for this new behavior.\n\nBug: 24618811\n\nChange-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e\n"
    },
    {
      "commit": "8a0e0330c35a92262717b63ed53b7c604b02ea07",
      "tree": "eda0a7ad532545790377013245239865fa140883",
      "parents": [
        "a5ae8f3c5a0fe0ed4e3d9946a6c9d06893359ac7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 26 10:11:58 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 26 11:07:41 2015 -0700"
      },
      "message": "Cleanup some of the run-test system\n\nMake run-test cleaner when using experimental default methods and\nlambdas. Adds a --experimental \u003ctype\u003e flag that adds the required\nexperimental compiler and runtime flags.\n\nChange-Id: Ia9327b44e14597a400bf279fc946a43619f1355c\n"
    },
    {
      "commit": "eb7c144a6aff7da673ba53d501c46f00311d4d7f",
      "tree": "feec33dd2e711800305477b092970500991a3993",
      "parents": [
        "98ae42010a6e6a0e4c5bcc4d6a357805eef3f4ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 31 13:17:42 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 13:09:37 2015 -0700"
      },
      "message": "Add initial default method support to Art\n\nThis commit starts the process of adding default methods and their\nassociated pieces to ART.\n\nThis adds full support for calling default methods using\ninvoke-interface and invoke-virtual on objects implementing the\ninterfaces. Verifier is changed to allow this when the runtime is\nstarted with -Xexperimental:default-methods.\n\nThis also adds support for defining and calling static methods on\ninterface classes with invoke-static.\n\nDirectly calling overridden default methods using invoke-super is not\nyet supported.\n\nThis adds 5 new run-tests for this functionality.\n\nBug: 24618811\n\nChange-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03\n"
    }
  ]
}
