)]}'
{
  "log": [
    {
      "commit": "b682ea4d1f9f88ef41589007f385398033d61b65",
      "tree": "b843077f05e2fe37ce5f566dfc823552f289f562",
      "parents": [
        "77aa6807053a830fe5c951c7cb700813d7e2e27b"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Mon Dec 23 06:59:06 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 08 00:01:36 2020 +0000"
      },
      "message": "Introduce BaseDexClassLoader.computeClassLoaderContextsNative\n\nThis will be used to compute the contexts that should be sent over to\nthe dex load reporter. See associated changes in libcore \u0026\nframeworks/base.\n\nMotivation: At the moment of committing there are two classloader\ncontext encoders- one in ART and one in the package manager. The\nduplicate logic is susceptible to divergences. For example at the moment\nif a package uses shared libraries and has secondary dex files then the\ncontext encoded for secondary dex files will be incorrect[1]. In order to\neliminate this bug and future possible bugs lets centralize where all\nclassloader context computation is done.\n\n[1]: The context will be incorrect because it doesn\u0027t take into account\nthe shared libraries that are loaded at runtime.\n\nTest: m test-art-host-gtest-class_loader_context_test\nTest: m test-art-host-gtest\nTest: ./test/testrunner/testrunner.py --host -b\nTest: Introduced a set of tests for the new API(s)\nTest: See tests in associated libcore \u0026 framework/base commits\n\nBug: 148494302\nChange-Id: Id39293a2e1d3d05194f2864f4febb3e652bce075\n"
    },
    {
      "commit": "a9bbc08daad6d601c870c8493323f57b70373336",
      "tree": "8ca74373cac0fe52aced5f32cc6f6e1f9c3239b5",
      "parents": [
        "56f1332113c3b8b1844c04683b9cb9dc5a0bd346"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 14 14:51:41 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 15 19:17:23 2019 +0000"
      },
      "message": "Implement STL iterators on ObjectArray and add helpers\n\nIterating over an ObjectArray is rather cumbersome, requiring manual\nfor-loops. To improve ergonomics and STL standard-ness this implements\nstd::iterator\u0027s for ObjectArray and converts code to use this (in\nsimple situations). This should allow us to use standard STL functions\nin the future when dealing with ObjectArrays.\n\nAlso adds some helpers such as ZipCount and ZipLeft.\n\nTest: ./test.py --host\nChange-Id: Ifd515b8321775424b3256a6faf47b2ba970177d3\n"
    },
    {
      "commit": "501c3b073e2252f8f5ccb0f9a7aab9bcf8ad297c",
      "tree": "d09085d3dcab7eab57e2c826f8073a7ee4bd8449",
      "parents": [
        "ed42f62df5bb46168334dadecb5d143c38f7a88b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 17 21:54:27 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 18 16:08:27 2019 +0000"
      },
      "message": "Revert^2 \"Fix correctness for fast path class loading\"\n\nThis reverts commit 2e2f9e8c6989dec22e4199a773a1e03954f82365.\n\nBug: 130310316\nBug: 130293184\nBug: 130209120\nBug: 130746382\n\nTest: m test-art-host\nTest: atest vm-tests-tf\n\nChange-Id: I2b6e6be530bb8b6c6222b11b7d93fb1f574d2ea4\n"
    },
    {
      "commit": "2e2f9e8c6989dec22e4199a773a1e03954f82365",
      "tree": "ba9745bcf08b758d71b458929ca9bf35f9aa7a69",
      "parents": [
        "d399f579cf2a8462ef6f1fbea360fe62be174377"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 17 12:35:08 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 17 12:36:07 2019 -0700"
      },
      "message": "Revert \"Fix correctness for fast path class loading\"\n\nBug: 130310316\nBug: 130293184\nBug: 130209120\nBug: 130680590\n\nTest: TH\nThis reverts commit ef04ac6c05fa344428008ffa1eac7316c64a3467.\n\nChange-Id: I2ee8a20419da251eed2620b7feb390053c0cdcb9\n"
    },
    {
      "commit": "ef04ac6c05fa344428008ffa1eac7316c64a3467",
      "tree": "761ffc6c22a32f16dc3a42392f83c91ef23ef03d",
      "parents": [
        "1eb5d8770a533b86269e503a842f6b45591e87cf"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 11 13:37:10 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 16 20:13:01 2019 +0000"
      },
      "message": "Fix correctness for fast path class loading\n\nFor the fast path, we currently remove all exceptions and only return\nClassNotFoundExceptions. This CL preserves exceptions that might occur\nsuch as linkage errors.\n\nThe follow up is to add an additional fast path for faster class not\nfound exception generation.\n\nBug: 130310316\nBug: 130293184\nBug: 130209120\nTest: test-art-host\n\n(cherry picked from commit ca19f9a8547999cb13de06458364d64ab143cb09)\n\nMerged-In: Iae55aaaae2be5b1330e8e54bee36e862cf9e12e0\nChange-Id: I0fff3a748c07b5f3e05f4de24d56678a8b046844\n"
    },
    {
      "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"
    }
  ]
}
