)]}'
{
  "log": [
    {
      "commit": "b7c273cb44fcbdab3c17ec69124fe4bbea2696b1",
      "tree": "11242e0bd24427183dd630780825214737ccbda1",
      "parents": [
        "27f5fefeb4a7e87e9537fbdd0ed392d5c1de59df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 18:07:56 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 18:07:56 2017 -0800"
      },
      "message": "Add ClassDataItemIterator::HasNextMethod\n\nReturns true if there are either static of virtual methods remaining,\nchanged most places to use this where possible.\n\nSlight behavioral change for duplicate method checking, we not\npersist the method index across the static method / virtual method\nboundary.\n\nMotivation: Generic cleanup to remove copy paste.\n\nTest: test-art-host\nChange-Id: I7a1b507e681b2c40452f8a9913b53a96b181e171\n"
    },
    {
      "commit": "733bd4d85ccebe7a4e78aa6c8c4c691fde47843b",
      "tree": "d94bb13c8eea14d00c180c618bf54f6cd9a2aea6",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 26 10:39:15 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 27 08:53:41 2017 -0700"
      },
      "message": "Separate MemMap from DexFile completely\n\nCreate a container class for holding ownership of MemMap and segregate\nthat functionality to dex_file_loader.  This removes the dependency\nbetween dex_file.cc and mem_map.cc.\n\nBug: 22322814\nTest: make test-art-host\nChange-Id: I96db6fd10cdbad774c2f1f85c249418a154fbd52\n"
    },
    {
      "commit": "095c6c96236476b605b3ac672f6d2b8c151e9479",
      "tree": "fe04b7fe93e65efadd3f019dd1ecba4c2c40df18",
      "parents": [
        "b277aa1385f7f4593c9978d8106669142d158f4f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 19 13:59:55 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 20 14:22:52 2017 +0100"
      },
      "message": "Pass the verify flag to DexFileLoader utilities.\n\nRefactoring-only change.\n\nAlso remove unused DexFilerLoader::OpenMemory.\n\nbug: 30972906\nbug: 63920015\n\nTest: build.\n\nChange-Id: I7cd4b5787565ab1a3457ce2be6bb14657229c550\n"
    },
    {
      "commit": "292567ee71a20bfc59513c6af290495e4b92b2cb",
      "tree": "6f2fb5ed3caec12b2193b179864dcd87578d2f52",
      "parents": [
        "b95f45e67a3e4a14aab63b19f101547658d7514b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 12 13:24:38 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 12 13:48:31 2017 -0700"
      },
      "message": "Rename NativeDexFile -\u003e StandardDexFile\n\nMotivation: The new name is cleaner.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I0e52015dbd929fe247305070cef03d86bcdeb54b\n"
    },
    {
      "commit": "79c87da9d4698ec58ece65af0065eebd55a1cfe0",
      "tree": "399797f37712da9d20829d5b5059b6c84943cb02",
      "parents": [
        "656e97f949df4081fba908113406b32915174502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 10 11:54:29 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 11 14:47:06 2017 -0700"
      },
      "message": "Add DexFileLoader class\n\nAdded DexFileLoader class, moved functionality from DexFile there:\n- Multidex loading logic\n- DexFile opening logic for Zip and etc\n- Some other helpers\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: Ic3dfa458947d4b69912dea5cdd836e7e8f55061c\n"
    },
    {
      "commit": "7b074bf1ce559541d0c19ef793d9702a415ff74d",
      "tree": "acaf022c330649de7a1a4b372308132f44091c70",
      "parents": [
        "432d91004b79c79deebeee6f6197e43adf6caafd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 25 16:22:36 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 11 11:30:11 2017 -0700"
      },
      "message": "Add a shared interface for different types of dex files\n\nRepurposed DexFile to be the shared API. Will be used for abstracting\naccesses to original dex files and CompactDex files.\n\nAs implementation diverges, functionality will be moved from DexFile\naccordingly.\n\nWill consider renaming DexFile -\u003e IDexFile in a follow up CL.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: Iad2508c2b9a7b6e0669fca5f7d10299a9b1541a2\n"
    },
    {
      "commit": "672bcf5b537d93522d04313f77c0ffa0550f19cc",
      "tree": "1a9d224a7ec86c241b746d4f32e83a866dee0a3d",
      "parents": [
        "b407afe983f8b106a5007d07aa2523ffc6525018"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 20:02:42 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 20 10:29:29 2017 -0700"
      },
      "message": "ART: Fix os \u003c\u003c std::string* errors\n\nFix some unintented pointer logging.\n\nTest: m\nChange-Id: I7d66ec2f33cc46588b6f549876241871f19ce995\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "b486a98aadc95d80548953410cf23edba62259fa",
      "tree": "b113b7d50a4a015502873b7742c9ece00d293e84",
      "parents": [
        "1656ca9e6996cb555b4463e5efd4bd7e3f4fb816"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 01 13:45:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 02 08:24:02 2017 -0700"
      },
      "message": "ART: Introduce thread-current-inl.h\n\nFactor out Thread::Current() code into its own -inl file to remove\ntransitive includes.\n\nThis requires at the same time correcting mutex.h, i.e., moving\nsome functions into mutex-inl.h.\n\nTest: m test-art-host\nChange-Id: I88f888b604e0897368d9b483edce6ce4332dd9c9\n"
    },
    {
      "commit": "326c1a28c3e5d9e7ea1b39d60608eab5481e38b6",
      "tree": "5545593e62d288b6359414a665e90838975ebae4",
      "parents": [
        "59cd177687681ff9a1bd4b005e77f2a15e290641"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 04 14:12:56 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri May 05 11:07:14 2017 -0700"
      },
      "message": "Check static field initial value types match in dex file verifier.\n\nCan cause segmentation faults in the gc if object and primitive types\nare mixed.\n\nBug: 34115871\nTest: mm test-art-host-gtest-dex_file_verifier_test\nChange-Id: If88fd7be51eeca28e2a106964fa3c29f79aee307\n"
    },
    {
      "commit": "14fc9db5ca2428015eba189c865277655c168a33",
      "tree": "34b7a652fae9a932cb3ef7d87717274a003d3448",
      "parents": [
        "f99f62f8e04aecbbe1615e242a19ac475f66e565"
      ],
      "author": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Fri Apr 28 15:30:49 2017 -0700"
      },
      "committer": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Tue May 02 13:48:12 2017 -0700"
      },
      "message": "Update smali/baksmali command syntax for v2.2.0\n\nTest: make test-art-host\nChange-Id: Iac534f39aee78bbcbf1fe382b9af8334f0634238\n"
    },
    {
      "commit": "12f4ff43bcd21ba82e7aca7b6229160f28b5ff04",
      "tree": "35b70dcb29b325535c6de00b6e242543ccc30869",
      "parents": [
        "ab58a629d6cfe75f0ed34326c2ca6364b2203885"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 13 16:43:12 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Feb 13 14:53:05 2017 +0000"
      },
      "message": "ART: Add DEX support for MethodHandle and CallSite info.\n\nAdds new DEX file map items for CallSiteIds and MethodHandles.\n\nInitializes CallSiteIds and MethodHandles from the DEX file map_list.\n\nBug: 33191717,30550796\nTest: m test-art-host-gtest-dex_file_verifier_test\nChange-Id: I3ad9c7342b661c3f6a8264709412650eee6bde01\n"
    },
    {
      "commit": "6c4921b3a13ab645045dd20e5386daf552a31f41",
      "tree": "46ff2d2d320a250a1ce6e5094a67632293093a4b",
      "parents": [
        "a6040d4cca09c1030bbfcfdc131e38c7d6da8888"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Sep 21 15:41:06 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 19 09:01:02 2017 +0000"
      },
      "message": "ART: Improve class initializer and constructor verification.\n\nDEX file verifier checks additional properties of class initializers\nand constructors:\n\n(i) Names match expected \u003cclinit\u003e / \u003cinit\u003e.\n(ii) The method descriptor for \u003cclinit\u003e is ()V.\n(iii) The return type of \u003cinit\u003e is V.\n(iV) No other names start with \u0027\u003c\u0027.\n\nBug:  31313719\nChange-Id: I60bffa6561e1bae353f97c42377ea556bfa790af\nTest: m test-art-host-gtest-dex_file_verifier_test\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "ca620d7bc03b23a0bcf0ef58df58603ee000dca0",
      "tree": "07cb026075b70a958d14ae84b4e213178a6ba0b4",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 08:09:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 15:04:48 2016 -0800"
      },
      "message": "ART: Fix tidy warnings\n\nSwitch to char versions of find variants.\n\nAdd \"explicit\" constructor variants or refactor and\nremove defaults.\n\nUse const references.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "9c20a14103f87a8a7ad53f7d3e863887ea4e800a",
      "tree": "1fd4b123bae008f670f806024c88d3dc404da24b",
      "parents": [
        "a51a135f114f6f0dbf7c4afd336f68b4a0d1bb7d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 23 15:05:12 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 21 15:47:06 2016 -0700"
      },
      "message": "Get a basic modification of dex file working\n\nThis allows the modification of a single classes methods through\ntransformation. One must ensure that the provided dex file only\ncontains one function and does not add or remove any methods or fields\nand does not change the inheritance hierarchy in any way. The provided\ndex file must verify and there must be no frames of the old code\npresent on any thread. These constraints are not checked or verified.\nBreaking them might cause undefined behavior in all parts of the\nruntime. Code that has been inlined in any way might not be replaced.\nThis feature is extremely experimental.\n\nBug: 31455788\nTest: ./test/run-test --host 902-hello-transformation\n\nChange-Id: I35133d24f6cdafdd2af9dc9863e15ba8493fc50e\n"
    },
    {
      "commit": "733ddb2af025aca54582fef95fb714e0df422c78",
      "tree": "e728e115a21e395b8d1d68f95f2552897e85e1f5",
      "parents": [
        "c4cb3d532db8a500c1a15e8a0052895960259209"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 19 15:02:18 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 21 08:15:26 2016 -0700"
      },
      "message": "Refactor Dex open methods\n\nConsolidate dex opening around a simpler single interface in DexFile.\nMaking this change prior to moving all but the simplest interface out of\ndex_file.{cc,h}.\n\nBug: 22322814\nChange-Id: I4c55019912a19a1c90f9022c20f5b8b954fc7a47\nTest: test-art-{host,target}\n"
    },
    {
      "commit": "37d6a3bbf5826abb73f872ed0bc4c6ae9553e274",
      "tree": "0fbe5fda78e251597f909f654014f2c25efa62e5",
      "parents": [
        "739dc72773c5dee583a1d322f91b5abd61f9889d"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jun 21 18:30:10 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 22 15:39:07 2016 -0700"
      },
      "message": "Support the -i flag in the new dexdump.\n\nRationale:\nThe old dexdump supported the -i feature (ignore checksum failures).\nThis CL adds the same functionality to the new dexdump. Note that\nthis feature is, for example, useful to inspect DEX files that are\nextracted from images (with quickened instructions), since the\nchecksum is not always valid in those cases.\n\nBUG\u003d29548017\n\nChange-Id: I6017b2f3d789f450560b568297f43c62bf9453b1\n"
    },
    {
      "commit": "621b5eab8eed7746925bca489114d706ad455572",
      "tree": "4b335194a2fa7b2d25c4708a8051342bd330d413",
      "parents": [
        "4021b462e05b63c6fc6fec4b6e0a41ac1f6ac9de"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 18 11:41:33 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 18 11:41:33 2016 +0100"
      },
      "message": "Enforce class definition ordering rules in v37 Dex files.\n\nThese new checks also reject classes extending or\nimplementing themselves directly or transitively within\na single Dex file.\n\nBug: 28812524\nBug: 28797012\nBug: 28685551\nBug: 27682580\n\nChange-Id: I51c43f8b4b6a7abaade63682411e61f21767f5d4\n"
    },
    {
      "commit": "4021b462e05b63c6fc6fec4b6e0a41ac1f6ac9de",
      "tree": "a5e99fc922172da3374a86673285610fd3f8d1be",
      "parents": [
        "498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 17 15:50:00 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 17 15:50:00 2016 +0000"
      },
      "message": "Revert \"Reject classes inheriting from themselves directly or transitively.\"\n\nThis reverts commit 498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9.\n\nReverting not to break apps that do not follow the class\ndefinition order rules.\n\nBug: 28797012\nBug: 28685551\nBug: 27682580\nChange-Id: I2491b5aefe3ca8a364a05f7dfbc899c5a5757712\n"
    },
    {
      "commit": "498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9",
      "tree": "f91a716df4b81cebd85e9c28970200e5d6ebf3e7",
      "parents": [
        "d8cd1c83f9fe7637494f7a65807289041d2fb7d3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 12 16:12:47 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri May 13 17:53:28 2016 +0100"
      },
      "message": "Reject classes inheriting from themselves directly or transitively.\n\nAlso enforce class definition ordering with respect to super\nclasses within a Dex file.\n\nBug: 28685551\nBug: 27682580\nChange-Id: If3eba782538eb4328d4b8a542236632379e7c050\n"
    },
    {
      "commit": "60be30a353aa8515c72aa5240508128bb3ad9829",
      "tree": "f0c5cf5d6b075d0784b6942b238aa39425d26905",
      "parents": [
        "46a9114333d1be384cf56ab4a485beae43f982ac",
        "0ca8add2ae34c26291694ecc784d64f0cc1c1380"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 09 16:58:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 09 16:58:28 2016 +0000"
      },
      "message": "Merge \"Fix ProtoId ordering check in DexFileVerifier.\""
    },
    {
      "commit": "0ed0521a7f55b2efef8e71d0802893aa1d5b83e2",
      "tree": "8015bdf317701ecea770241dc69f7238cf18f12d",
      "parents": [
        "80e28e80c2ef37c708785b538ea9acc84ff16bc5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 06 17:36:36 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 06 17:50:01 2016 -0700"
      },
      "message": "Fix test for verification of clinit method\n\nBug: 28605638\nChange-Id: Idbf2d59c20b7dda1efb9aa61bce2cefbe2c0040a\n"
    },
    {
      "commit": "0ca8add2ae34c26291694ecc784d64f0cc1c1380",
      "tree": "6c58e10e556a04afc88d25710934b04b12244cb1",
      "parents": [
        "59399abce0223e74af00193436e39e109d98dacb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 03 17:17:50 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 05 15:24:38 2016 +0100"
      },
      "message": "Fix ProtoId ordering check in DexFileVerifier.\n\nThe code previously checked for kNoDexIndex16 as the type\nlist terminator. This is incorrect as we should not actually\nsee the kNoDexIndex16 in type lists in supported dex files.\n\nTo make sure that we don\u0027t see kNoDexIndex16, check the size\nof the arrays with documented limits, i.e. type-ids and\nproto-ids, see dex_file.h. In the ProtoId ordering check,\nDCHECK() that we don\u0027t encounter kNoDexIndex16 and verify\nthat the previous list is not longer if the current list\u0027s\nelements match.\n\nBug: 28580925\nChange-Id: I7b17ce54b0047d97e13be88377676b1b7c713ae1\n"
    },
    {
      "commit": "59399abce0223e74af00193436e39e109d98dacb",
      "tree": "fdeba492cd58b2af00b01340f821daa4f68cf216",
      "parents": [
        "a246510965fc57ec51d1b202649304535adfe9f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 03 16:31:52 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 05 15:01:25 2016 +0100"
      },
      "message": "Fix index checks for error strings in DexFileVerifier.\n\nBug: 28552165\nChange-Id: I5b352536b746ec5bd48daa5c693d62d9fbc0b21c\n"
    },
    {
      "commit": "d7c10c237bf2631630fac7982c3f374b1a27ed01",
      "tree": "45dcfa996b287f2cb91b3c72691a40ed21409aec",
      "parents": [
        "1669fe3219f295d14c43d5bd3b4e8d255e52be3f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 31 10:03:07 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 04 15:01:03 2016 -0700"
      },
      "message": "Fix issued with non-public interface methods.\n\nSome APK\u0027s ship with dex files containing non-public interface\nmethods. These would cause crashes on newer versions of ART due to\nstricter verification of dex files. Make ART emit a warning but allow\nthis behavior.\n\nBug: 27928832\n\nChange-Id: Ia3689ee091aa154fb5954b1f6dd50c489128acce\n"
    },
    {
      "commit": "76ed99d5ec208d5adcd63b41c2c290194ee0ecf7",
      "tree": "acfc8f526561079c8389572af97c96fda7475450",
      "parents": [
        "8a31b7d44a13b1d7e71852dc3c992598698d351d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 28 18:31:29 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 29 17:46:17 2016 -0700"
      },
      "message": "ART: Postpone interface-related dex failure to version 37\n\nFor app compat, at least for now make the check for public-final-static\nof interface members not fail on dex file versions less than 37. This\nmay be changed in future releases.\n\nBug: 27831184\nChange-Id: If8ee50321298b951d4a78062c8eb583fec27394f\n"
    },
    {
      "commit": "b512c0e5da0767d00a0ee9b7201668ab9977e21b",
      "tree": "bde15491dcb98e9528de5dc883d3978f62f2b0bb",
      "parents": [
        "da11cef6fb6d8a9e08cb445576a50abff8773a25"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 19 19:45:34 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 26 14:44:02 2016 -0800"
      },
      "message": "ART: Check alignment of section offsets\n\nMake sure the sections mentioned in the header are aligned according\nto the Dalvik File Format specification.\n\nEnsure the same for annotations.\n\nBug: 27275385\nBug: https://code.google.com/p/android/issues/detail?id\u003d201384\nChange-Id: Ifdd98377f8468e78c1c2198223ad58cab302dd37\n"
    },
    {
      "commit": "c9f0ba1a4a2c9366ffc2dc2f9c2d8d3f09bb2112",
      "tree": "5c6922891b615600c8c5a45d87fedbace15e92ee",
      "parents": [
        "96bbc8fcac2d408e0afdcae933653198fb8bbe92"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 09 09:21:04 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 09 10:44:48 2016 -0800"
      },
      "message": "ART: Give better error messages in dex-file verifier\n\nTry to decode field and method names when an access-flag violation\nhas been found. This is not guaranteed to work, if the file is\nbroken enough.\n\nBug: 27064244\nBug: 27070841\nChange-Id: Ie913076462e958d4f21b481631bc874cf6f67c0d\n"
    },
    {
      "commit": "b4fb7013f71925b5dc243e8e0c9cf36a3db4d1dd",
      "tree": "f5708eba73519bf347c6ed341997762e4c605eb5",
      "parents": [
        "f74388daf23522dd4e9ebe6640030f4fd52c52ea"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 19 13:29:45 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 19 15:06:38 2016 -0800"
      },
      "message": "Remove dex_file_verifier test of newly allowed behavior.\n\nWe previously tested that the dex_file_verifier would error out on\ninterface methods with code but default methods mean this test is no\nlonger accurate.\n\nBug: 24618811\n\nChange-Id: I8ec50ebd93b4bb78acacfafcb6c33c92415a68eb\n"
    },
    {
      "commit": "6958e4f0f660deded126771f2e00386ee51de2f6",
      "tree": "f38b09b9e48c8b845fb34dba5311ea4640776a30",
      "parents": [
        "ca83cd09bde09dac73ed66f38dec4bc0bd6afb54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 20:22:02 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 20:22:02 2015 +0100"
      },
      "message": "ART: Fix two allocation/deallocation mismatches.\n\nChange-Id: I5088126cbd5b5e4b461a449eecd5b3574883f413\n"
    },
    {
      "commit": "e6215c0ec4b1bb71b722fdbf7e62eaf3be8a91d5",
      "tree": "c30c6da2ad45fbf4c7334ce1a0b22113ddcad23a",
      "parents": [
        "2a455e162cbba5dad610b02155957aa7759c9a34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 31 18:54:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 10 17:58:18 2015 -0700"
      },
      "message": "ART: Move access flags checking to dex file verifier\n\nActually implement all the access flags checking in the dex file\nverifier. Add tests.\n\nChange-Id: I8b797357831b588589d56d6e2e22f7b410f33008\n"
    },
    {
      "commit": "dd3208d3b2f4b78678a341f38a5cc7761c7fca91",
      "tree": "5657ce4afd75cff76c472b23b684a89ef1e141b5",
      "parents": [
        "940c65d6757130d2e9f864d4c2220838f0312bea"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "tzuhsiang.chien@gmail.com",
        "time": "Sun Apr 19 23:27:52 2015 +0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 20:42:52 2015 -0700"
      },
      "message": "ART: Fix DBG_START_LOCAL verification.\n\nThe third ULEB128 of DBG_START_LOCAL and DBG_START_LOCAL_EXTENDED\nentries should be interpreted as type_idx instead.\n\nsee also. dalvik/dx/src/com/android/dx/dex/file/DebugInfoEncoder.java\n\nChange-Id: Ic0d52ed20cc2614acb9fa54b61095d1bd64f73fe\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "fbef44de596d298dc6430f482dffc933a046dd28",
      "tree": "57345e86b7dda80b82a263069230b7e312db5ef2",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 23 09:48:51 2014 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 13 16:32:34 2015 -0800"
      },
      "message": "Use unique_ptr to track ownership of dex files.\n\nBug: 18809837\nChange-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a\n"
    },
    {
      "commit": "4303ba97313458491e038d78efa041d41cf7bb43",
      "tree": "5a5873651db918416c9ff63f4bb06b6eb7f4c71a",
      "parents": [
        "a971100be7870544360fa8a46311ef7f5adb6902"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 01:00:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 18 17:26:06 2014 -0800"
      },
      "message": "ART: Track Flush \u0026 Close in FdFile\n\nImplement a check that aborts when a file hasn\u0027t been explicitly\nflushed and closed when it is destructed.\n\nAdd WARN_UNUSED to FdFile methods.\n\nUpdate dex2oat, patchoat, scoped_flock and some gtests to pass with\nthis.\n\n(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)\n\nChange-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "833a48501d560c9fa7fc78ef619888138c2d374f",
      "tree": "add308298a5486d44caddea120cc9200dd70c38a",
      "parents": [
        "b849f6dd638fd1246724160cd5c01ab1a5ff33bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 18:46:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 25 19:34:58 2014 -0700"
      },
      "message": "ART: Native support for multidex\n\nNative support for zip files with multiple classesX.dex.\n\nWorks by explicitly looking for those files in ascending order. As\nthese files have no file system representation for themselves,\nintroduce synthetic dex locations: the name of the originating file\nplus a colon plus the name of the dex file, e.g., test.jar:classes2.dex.\n\nOpening a zip dex file will return all dex files in this way. This\nkeeps the changes to dex2oat minimal.\n\nTo hide multidex/synthetic names from the Java layer, let the handle\nof dalvik.system.DexFile refer to a vector of DexFile objects. When\nopening a location, test possible synthetic names and add them to the\nvector. Thus, the original multidex jar in the classpath will be\nassociated with all embedded dex files.\n\nChange-Id: I0de107e1369cbc94416c544aca3b17525c9eac8b\n"
    },
    {
      "commit": "df10b32c4d0adfa86201169692eaa7ef038b642c",
      "tree": "4dc2b8cad9f516a932df96db23d5aefa762f14a6",
      "parents": [
        "f72b7d6066238fd3faa25aac671dbaa02aeafac9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 11 21:46:05 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 12 14:36:47 2014 -0700"
      },
      "message": "ART: Dex file verifier needs to check proto idx of method id.\n\nBug: 15570490\nChange-Id: I4e90aea6e77711ee37d14d96a1fc9a2fbb980d94\n"
    }
  ]
}
