)]}'
{
  "log": [
    {
      "commit": "dfc0de7696a50a9aeee95dcf74dac036e3334314",
      "tree": "20a6edd33cca852f8e65ce8d20a85949b566904c",
      "parents": [
        "9ef308da0ea8d1df2edf65d4957599fafcc56aeb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 01 10:57:55 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 02 07:57:27 2019 +0000"
      },
      "message": "Partially ObjPtr\u003c\u003e-ify Object, fix stale ref in test.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I0c0bc669c0ab8d99185e662a2fec16f32a42a0a2\n"
    },
    {
      "commit": "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
      "tree": "9d137f6e73d2aac0a0403372d4065fd9da0612d6",
      "parents": [
        "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
        "05909d81d322c0b20445e672c338c626e43f650d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "message": "Merge \"Support class lookup for InMemoryDexClassLoader\""
    },
    {
      "commit": "7fbc4a59ba2e60d869313d7961662430df83b2cb",
      "tree": "59520285df8d2075412ddc566a0d4d96d4c7e109",
      "parents": [
        "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:26:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Move to using locks.h instead of mutex.h\n\nWhen only annotating lock requirements, use locks.h.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1608b03254712feff0072ebad012c3af0cc3dda4\n"
    },
    {
      "commit": "05909d81d322c0b20445e672c338c626e43f650d",
      "tree": "3a8edef57fce12fa3d69a783f6b9523b203c85e6",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 16:25:16 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 19:34:02 2018 +0000"
      },
      "message": "Support class lookup for InMemoryDexClassLoader\n\nSetting up InMemoryDexClassLoader with \u0027null\u0027 as parent results in the\nclass loader not being able to load any boot classpath classes. This is\ndue to the fact that InMemoryDexClassLoader inherits class lookup from\nBaseDexClassLoader which delegates it to ART, but ART rejects\nInMemoryDexClassLoader as not supported.\n\nBug: 120603906\nBug: 120613979\nTest: InMemoryDexClassLoaderTest\nChange-Id: I3139b1bb343b5fc722bcf06f89a6f6a21a3c7c54\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "e383d23918db4eede30c3d78589d4639de3ec446",
      "tree": "a103f54ec49fac8d5cd15661f5c2d0cb5dab32e5",
      "parents": [
        "dbf540399a2aaddad00b1233b80808c80dc0d443"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 12:29:51 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 17:09:45 2018 -0700"
      },
      "message": "ART: Mask garbage-memory warnings\n\nAdd invariants or NOLINT to let clang-analyzer understand that\nthere\u0027s no garbage involved.\n\n(The analysis itself is too expensive to force it on for all\n local builds.)\n\nTest: mmma art\nChange-Id: I6148d743321248195abb3a8f646e63941f11f9a9\n"
    },
    {
      "commit": "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018",
      "tree": "7e0e4c7888c2497d86ce96c9574d7c9886721ccf",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:06:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:09 2018 +0100"
      },
      "message": "ART: Move JNI files to runtime/jni/ .\n\nTest: Rely on TreeHugger.\nChange-Id: I9cae11191ef1567ae9453be498882a7767285140\n"
    },
    {
      "commit": "b8e7c370ccfc53cca8c7caeee7535693668f70fe",
      "tree": "df4ddcbc8eca282687cd41a1f8460d454b02d879",
      "parents": [
        "7b414bac4b69309498cb8d0264cf152e4f328db6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 20 18:24:55 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 01 16:30:36 2018 -0800"
      },
      "message": "ART: Refactor known-classloader visits\n\nRefactor visiting dex Elements and DexFiles in known classloaders,\nunifying the walking code.\n\nTest: m test-art-host\nChange-Id: I4203ac4fbb0ee68660aadc0dfbf8affacbc03b8b\n"
    },
    {
      "commit": "57d0accc081c1779edb604ab86e5a4c0cfba16eb",
      "tree": "15af07023c0576e36e4fcfb78dd6e29890edcfd2",
      "parents": [
        "7b0648aa7cb4b7a58e73bf353e031dfe4553d9d7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 11 17:41:30 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 18 11:42:33 2017 -0700"
      },
      "message": "Create a class loader context starting from an existing ClassLoader\n\nExtend ClassLoaderContext to be able to generate a context from an\nexisting class loader.\n\nThis will be used in extending the duplicate class check to cover\nDelegateLastClassLoaders.\n\nMost of the functionality is migrated from OatFileManager with some\ncleanups consisting of extra docs and more conservative checks on the\nintegrity of the class loader chain.\n\nTest: m test-art-host\nBug: 38138251\nChange-Id: If7c18cb75bfc9e6784676f96a666bf13b04c8b8b\n"
    }
  ]
}
