)]}'
{
  "log": [
    {
      "commit": "cc8295946caf3b965bff778fd7ae3adbcba47de3",
      "tree": "d7c9b77d14217d049911ded65f346271cf5c7849",
      "parents": [
        "fcfaa8d823017eb209fd6e18a6fe496f4c979026"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 14 16:13:39 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 15 19:25:02 2017 -0700"
      },
      "message": "Finish adding checks to dex ir verification.\n\nAdds missing checks for class defs, annotations, class data, code, etc.\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: Ifaac07299cf237827160c29b4230b0dc0845dc41\n"
    },
    {
      "commit": "ec7f1a96683836d9375adc48c6bf802c0ce2160e",
      "tree": "f07435d668c04c239dca0036b6b072611d45b046",
      "parents": [
        "13ef0447b43ecbf18d3c4e4c72d66bbbc1815f0c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 13 16:24:24 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 13 16:59:46 2017 -0700"
      },
      "message": "Added new -v option to dexlayout to verify output dex file.\n\nPassing -v will cause dexlayout to do an IR level comparison of the\noutput with the original input dex file. This checks that the data in\nthe dex files are the same, but allows for different offsets since the\noutput dex file may have a different layout.\n\nTest: mm test-art-host\nBug: 36107940\nChange-Id: If75a93973ffdd2d91111727f089713c800d8cee8\n"
    },
    {
      "commit": "8f48f4cb1760cd5d1b193e87ba6b56043bb08f35",
      "tree": "467c2da76191237292be4b0cbe3f36d9315c3a0a",
      "parents": [
        "5442ff6bad80f910f84ddf265393796d5fa9d977",
        "4a436ac4b4daa4e322d2a7cc2395462fbb16cd54"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 11 02:29:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 11 02:29:10 2017 +0000"
      },
      "message": "Merge \"Fix dex file verification check for dexlayout output file.\""
    },
    {
      "commit": "4a436ac4b4daa4e322d2a7cc2395462fbb16cd54",
      "tree": "243bc4a490fc31203f7fcb0e8747ac3eedc57477",
      "parents": [
        "1352e02ceeb30a3191809df4a7ee9fd711962f30"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 10 17:05:01 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 10 17:05:01 2017 -0800"
      },
      "message": "Fix dex file verification check for dexlayout output file.\n\nFor debug builds, we want to run the output dex file through the dex\nfile verifier as a sanity check. The initial check was actually checking\nthe input dex file again...\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: Ibd434d67f661c325a443d4ca9cced481e7a9b02c\n"
    },
    {
      "commit": "bd40af72aac39c53fadca6fe2e8d90f2ba2c4502",
      "tree": "37aa77fec55f4fa97190efbe49278dde27a13cf5",
      "parents": [
        "1352e02ceeb30a3191809df4a7ee9fd711962f30",
        "9335749d25f8826c72ea7ea4d470ee8bc171fa87"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 10 18:08:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 18:08:51 2017 +0000"
      },
      "message": "Merge \"Add section size statistics\""
    },
    {
      "commit": "9335749d25f8826c72ea7ea4d470ee8bc171fa87",
      "tree": "9f6fffab6b8c44d1d38434e66a8f345cb5eeceeb",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 09 08:02:44 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 10 08:02:08 2017 -0800"
      },
      "message": "Add section size statistics\n\nAdd an option to display the size of dex file sections for easier\nanalysis.\n\nBug: none\nTest: test-art-host\n\nChange-Id: I779f776657ad79e7a50c18c2b9486e6778c70f13\n"
    },
    {
      "commit": "b756815e581e2bcc3db7ee0cb3ae6c031fb22ae8",
      "tree": "c49999dc1d8683d14d628f1e595f86900368bc93",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 09 18:14:48 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 09 18:14:48 2017 -0800"
      },
      "message": "Add dex file verification check for dexlayout output file.\n\nFor debug builds, run the output dex file of dexlayout through the dex\nfile verifier as a sanity check.\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: I2b556db32cfd360cc4fe8d1d080508deebd27aa0\n"
    },
    {
      "commit": "a64a64cfae5c6dd7c2bdb039a92e9313dfd1e315",
      "tree": "173b22c4293d00b1f50dcbf19edb991fedd6be70",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 15:05:38 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 16:24:05 2017 -0800"
      },
      "message": "Fix dexlayout calculation of code item size.\n\nCalculation of code item size was based on looking for the latest catch\nhandler referenced by a try block, but there can be handlers that aren\u0027t\nreferenced by any try blocks. This fix manually reads all handlers to\nensure the end is actually reached.\n\nBug: 35978524\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I33b30087845f806cd34b888f1ec457ee692f2af4\n"
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "3d0485493eabbaf01799de4576384cc57dfe66f8",
      "tree": "b2da9d706afc6a321c219b73073494df49af7f4e",
      "parents": [
        "ec78cc266a5ec7fdbaeb41eb645fa1a431eaa61d",
        "ac4627157871734db2864ab44a284bd28229d055"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 01:56:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 01:56:39 2017 +0000"
      },
      "message": "Merge \"Fix dexlayout manual walking of 0 length catch handler.\""
    },
    {
      "commit": "ac4627157871734db2864ab44a284bd28229d055",
      "tree": "97477285975ddb52ed0e7c0d5e421b52362c9562",
      "parents": [
        "f040eca7329382d48dc2b8bfc228ee3f27c9f13d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 02 10:59:43 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 02 10:59:43 2017 -0800"
      },
      "message": "Fix dexlayout manual walking of 0 length catch handler.\n\nThis fails for 0 length handlers that are unreferenced by any try\nblocks. Unreferenced handlers are handled differently and walked\nmanually, and there was an error in the 0 size case, when there is only\na single catch all handler.\n\nBug: 35874292\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a\n"
    },
    {
      "commit": "32a60ab077e83f49df78caf2dd8a6f16e8b716a8",
      "tree": "d11dee2c27eed8ec76f852f8b1343c0cf2fd34eb",
      "parents": [
        "106173ac9530faffdc8ca649dd787e6dad3098ab"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 16:44:50 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 16:54:51 2017 -0800"
      },
      "message": "Add dexlayout test where class data section precedes code items.\n\nBug: 35855748\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I8365cb5699014d04dd7561758255802d811d58c6\n"
    },
    {
      "commit": "863f1d79a70403443c089a91ca893db6cbadd3d8",
      "tree": "383e99645839dc26735369273d665cd59ee7bbb6",
      "parents": [
        "fddc19338d9fdee24c4e10b758db1a6997004e2e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 12:18:19 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 12:31:59 2017 -0800"
      },
      "message": "Prevent dexlayout from moving code items if preceded by class data.\n\nClass data has uleb encoded offsets to the code item, and moving code\nitems will change the size of the class data, which would in turn affect\nthe code item offsets if they precede the code items.\n\nFor now, make it so that dexlayout does not move the code items at all\nin this case. A better fix would be to swap the order of the sections in\ndexlayout, but that can be done in a future CL.\n\nUnit test to follow.\n\nBug: 35855748\nTest: mm test-art-host\nChange-Id: Ica6da1e5e951cf0003fc9793f13ad10b74004eb9\n"
    },
    {
      "commit": "e17f589d8fa46d0d0179499354b7967801f9582c",
      "tree": "ab0d1d2c46c8016c0f13a7469333d895ad3fab0d",
      "parents": [
        "06f658ab309a5f1930b8a6bc306ef79d0ef0616e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 23 16:14:04 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Feb 24 10:47:43 2017 -0800"
      },
      "message": "Dexlayout fix for duplicate class data and preserving last code item.\n\nThis change fixes a dexlayout issue when multiple class defs reference\nthe same class data. A set is used to tell what class data has already\nbeen visited.\n\nThis change also makes dexlayout preserve the offset of the last code\nitem in the dex file if the following section is not 4-byte aligned.\nDue to limitations in dexlayout, it is difficult to adjust the offsets\nof sections if more space is needed. An overhaul of dexlayout should\nbe done to properly fix this.\n\nBug: 35451910\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I8d066c2151a1a57c382ce35f12bf53a519da89f6\n"
    },
    {
      "commit": "44652a3c27ffd2236abe82ec0479aa13035bc7e7",
      "tree": "508ba49bfb013394fa88335086cd90730583d940",
      "parents": [
        "f773e851c620d253d02e81a3e2ae115c5862d73c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 14:20:41 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 16:19:23 2017 -0800"
      },
      "message": "Make dexlayout parse exception handlers not referenced by try blocks.\n\nBug: 35451910\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: If278d16747cfb4a88f7d7312931b3f4b5ee5e058\n"
    },
    {
      "commit": "f914f8e1cc12cd321aa818ebedb1328268b6aec9",
      "tree": "17dcc77b59fe90dd842ceed5a231780a01682a0b",
      "parents": [
        "2fee212df6f688295475f3b2ddee4f2db8db27a2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 21 16:14:23 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 21 17:06:11 2017 -0800"
      },
      "message": "Add test for null set ref list item in dex layout.\n\nBug: 35408418\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ia9ac897a27dac27405f6838aaab625257c150e07\n"
    },
    {
      "commit": "6b0dbefb4a1eb770ead704bce2fbe46eead4e103",
      "tree": "349afd0f87422e29b1e960ec564b5f39f7aac15a",
      "parents": [
        "30e015c442c8033390c30d2f293604723c29bc75"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 21 12:45:30 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 21 13:15:46 2017 -0800"
      },
      "message": "Add regression test for b/35305951\n\nEnsure that dexlayout can handle a dex file that has the same\ndebug_info_off_ for multiple methods.\n\nTest: test-art-host-gtest-dexlayout_test\n\nBug: 35305951\nChange-Id: I1283910009fec07095c99ea2288167da3766329f\n"
    },
    {
      "commit": "257ab7fe6885c83f1ab17fe9d4cc4a996ebd3c7e",
      "tree": "5964869c31e85cd9e8a2937f2f22c3391af0a650",
      "parents": [
        "40f5a2936056bb0444ef50b6dfe67eb0d2d08fbf",
        "940eb0c00ef531dd9a0a68dbd61e377832e81eb4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 20 23:57:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 20 23:57:22 2017 +0000"
      },
      "message": "Merge \"Add inline caches to offline profiles\""
    },
    {
      "commit": "be9b44b37f9d3bd51e6c39bd4a72b0e8c30084f8",
      "tree": "d35f3c48a9fcf7dfbeaaff16f105aa04d91b85c5",
      "parents": [
        "95c867dcb9c7ec109eac099a259ad3e4cddfb8b0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 16 13:34:38 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 16 14:26:48 2017 -0800"
      },
      "message": "Add nullptr check to CreateAnnotationSetItem.\n\nUnit test to follow.\n\nTest: mm test-art-host\nBug: 35408418\nChange-Id: I7157fe44b36babdec9a269e3726b393b0ff40dec\n"
    },
    {
      "commit": "940eb0c00ef531dd9a0a68dbd61e377832e81eb4",
      "tree": "c65e43a702bb781b7a2f4ebedfb6b3d131fd8312",
      "parents": [
        "9fb10fb39bcb3d9a4dc7e16f8c1d38dcc112639c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 30 19:30:44 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 16 13:52:56 2017 -0800"
      },
      "message": "Add inline caches to offline profiles\n\nAdd support for inline caches in profiles:\n- extract inline caches from the jit cache when the profile saver\nqueries the hot methods\n- bump profile version to support the new data\n- add new tests\n- inline caches are only supported for same-apk calls (including\nmultidex)\n\nTest: m art-test-host-gtest-profile_compilation_info_test\nBug: 32434870\nChange-Id: I38b4ca0a54568d2224765ff76023baef1b8fd1a2\n"
    },
    {
      "commit": "a2973d750ea2b2de20b52d364c446d8b5747d824",
      "tree": "0ee42afcc5b33a861670aa81f81b3b49a149a7e9",
      "parents": [
        "be2cfabab221613b60c7f4cafb7eb00aa1e69d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 14 17:12:20 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 15 10:30:16 2017 -0800"
      },
      "message": "Check for duplicate entries when using dexlayout\n\nThe previous approach always inserted in the CollectionMap. This did\nnot work correctly if two different objects had the same offset. Since\nwe constructed a unique_ptr of the object, it would simply get freed\nif the insert failed because there was already an object with the same\noffset.\n\nThis meant that there were some use after free errors for these\nobjects.\n\nTest: dexlayout -a -b hulu.apk\n\nBug: 35305951\nChange-Id: I217e6d83bf6e051b13b1a601ec25512f40593880\n"
    },
    {
      "commit": "97c381e3ce34cd327c2ec35fa850bd0eaa9b697f",
      "tree": "4a21b2db89c578cdb2908547547e0546748eec7f",
      "parents": [
        "3cb871ab1af47576959fd24a99d370381b8f193e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:09:58 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:51:42 2017 -0800"
      },
      "message": "Separate art::Exec from utils\n\nThe rest of utils.cc does not depend on art::Runtime. This separates\nthe part dependent on that class, so that including utils.cc in the\nbuild does not require the entire Runtime. Another preparatory cleanup\nto getting tools to build on Windows.\n\nBug: 22322814\nTest: test-art\nChange-Id: I194ff363fc2ab87e5311ecea6973a2d0fad2621d\n"
    },
    {
      "commit": "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d",
      "tree": "a1441acc0021d170f412542ae2a1ae62794e7846",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 18 18:03:43 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 15:50:01 2017 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: m build-art-host\nTest: m cpplint-art\nChange-Id: Ifc6ce3d0d645c4a8dca72dd483fc03fc05077130\n"
    },
    {
      "commit": "33083d626dbf2c8b06badfd73f50e98114483059",
      "tree": "f6f5db21855a6182b591b57e6a34e5c1fc41b7d0",
      "parents": [
        "fd5f52b60cfa217fb0c4d7dcabdd0336b55990d7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 15:29:12 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 19:00:21 2017 -0800"
      },
      "message": "Rename offline_profiling_info to profile_compilation_info\n\nThis solves a long standing TODO to align the names of the files and the\nclass.\n\nBug: 32434870\nTest: test-art-host\n\nChange-Id: I2707da8fef8736a7223189d894fc00ff11bfab12\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\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": "042e898f18767ed326980e3b07d39adbf98f6222",
      "tree": "e2ea81bc5ddbab51cb3d5c0d5b7812cf9f85562e",
      "parents": [
        "608f2ce4b9870354079b9d63d40363914889f01a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 11:17:11 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 13:33:09 2016 -0800"
      },
      "message": "Add layout scheme to dexlayout for dex file reordering.\n\nCurrently takes startup classes from profile and groups them together\nwith the lowest class indexes. Moves the ClassDef, ClassData, and\nCodeItem sections.\n\nResults gathered from 5 second systrace of app startup (no other input):\nMaps\nbase.vdex - 24.70MB -\u003e 19.35MB (30.50MB file size)\nbase.odex - 13.22MB -\u003e 12.82MB (13.22MB file size)\nRunning time of dex2oat: 27.5s -\u003e 37.1s\n\nPhotos\nbase.vdex - 12.98MB -\u003e  9.77MB (15.10MB file size)\nbase.odex -  6.84MB -\u003e  6.24MB ( 6.84MB file size)\nRunning time of dex2oat: 15.6s -\u003e 19.9s\n\nPlus\nbase.vdex - 14.09MB -\u003e 13.29MB (16.72MB file size)\nbase.odex -  2.47MB -\u003e  2.47MB ( 2.47MB file size)\nRunning time of dex2oat: 14.1s -\u003e 18.5s\n\nPerformance and memory tracking bug: b/33017139\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: Ib500ed353d71a606e2db0dd80378750c5f7b8e33\n"
    },
    {
      "commit": "ea7c62983beec6a5a2a6676cc910a436b20ae92c",
      "tree": "cc41732efa47b2301f463f2f9fcabe957ed89c0c",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 14 18:10:16 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 09:12:14 2016 -0800"
      },
      "message": "Dexlayout cleanup and refactoring.\n\nCreated option to output to a mem map in preparation of hooking\ndexlayout into dex2oat.\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: Id42ef15cb8f83cc8d05b025b7647a4338e9b96b0\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": "54b5855192abee8cb612fce3c34b7562ddf42522",
      "tree": "0bba557936990568075507c5ba86efec959c752b",
      "parents": [
        "3825da56fb16cb8c8128dfad3f65ce392ebf0642"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 16 15:15:04 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 17 11:00:37 2016 -0800"
      },
      "message": "Change offline profile to store type_idx of classes.\n\nChanged from storing class_def_idx to type_idx. Allows dexlayout to move\nclass defs without affecting the profile.\n\nTest: mm test-art-host\n\nChange-Id: I8a040adf0f5f47a1592e18aeb55edde01cb3e1ed\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": "caacd11864383aac65e61be837fb1bb5f91e3878",
      "tree": "0fc2836395d93349aa2e745f31a3cb248e1fdacf",
      "parents": [
        "3667e26de4856cccf24bcbab54ad3349a05267c0"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 20 16:27:02 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 24 08:55:22 2016 -0700"
      },
      "message": "Move dex CFG dumping out of utils.cc\n\nMove CFG dumping to dexdump, the only client.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I0f39f1d5dfc446419d26d709b78d04e45616f42c\n"
    },
    {
      "commit": "b34bb193dd2d45af196592bb4bae26f30d529b13",
      "tree": "e0c38aef953ba388b7e0fb0ef41ec78ab95d4044",
      "parents": [
        "3da7190bae7c1d75edbc87f01343652c246639f2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 18 17:02:58 2016 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Oct 20 19:04:07 2016 +0100"
      },
      "message": "Dex disassembly suppport for invoke-polymorphic.\n\nBug:  30550796\nTest: art/test/dexdump/run-all-tests\nChange-Id: I013ce2ebbcf9555e01170dc47fc38036c276b1b4\n"
    },
    {
      "commit": "f57589fd40e5b69dad5aff060ccef756507f381a",
      "tree": "62d38e73660d9818b18c4741c6b3cce3306d63d5",
      "parents": [
        "c25dfeab1a66c942ae658fc7cd367f7c1ac502a1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 10:09:33 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 13:50:35 2016 -0700"
      },
      "message": "Remove logging dependency on runtime\n\nMoved the abort backtracing function to runtime, forcing callers to\nsupply the aborter at InitLogging.  This makes runtime properly layer\non top of logging by removing the cyclic dependency.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I8b2e72174e937bb88fe1bddd6d04b564cfb011a9\n"
    },
    {
      "commit": "d1e44e27126c8ba20f868a8f70c37633386303c5",
      "tree": "9bebd64b3f516aef7476e089a423a80ec94116b8",
      "parents": [
        "54aaba2420c4ee7c6580293b092b7f38f3b9438c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 06 17:09:32 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 06 17:09:32 2016 -0700"
      },
      "message": "Add \"fixups\" for ids referenced in code\n\nAllow better visualization by determining which type_id, string_id,\nmethod_id, and field_id values are used by code_items.\n\nBug: 29921113\nChange-Id: Ia6ff72064104cd5c0868e972ca65536dbeb37b09\nTest: dexlayout -s {some favorite apks}\n"
    },
    {
      "commit": "a86210038524cecd0d96d6ba6f8f116da348a25c",
      "tree": "3c5c243a9530f3cd64ca12b94ea2e2a4ada34260",
      "parents": [
        "b4f0076e7faca1382e0b2f68557b71b11ac34a9d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 04 18:13:44 2016 +0000"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 04 14:21:13 2016 -0700"
      },
      "message": "Revert \"Revert \"Add dex file writer to dexlayout tool.\"\"\n\nThis reverts commit fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87.\n\nFixed output being clobbered during DexLayoutTest.DexFileOutput.\nOption added to put dex output file in scratch directory.\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\n\nChange-Id: I9e6b139cf06aaa39c83ad1e74329db266464a8e4\n"
    },
    {
      "commit": "cdcfde74ccd72c60dc9456013e32d8b00fefdee6",
      "tree": "1c29e986405c23285771a31250c5f26857f41046",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 26 07:44:04 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 04 10:47:24 2016 -0700"
      },
      "message": "Option to gnuplot dex layout\n\nDisplay the portions of the dex file that are accessed by the classes in\nthe dex file.  Optionally limit the display to only those classes that\nare present in a runtime profile.\n\nBug: 29921113\nChange-Id: I2a998fba448fec6c23941d3b4358531b1336e1b3\nTest: dexlayout test\n"
    },
    {
      "commit": "fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87",
      "tree": "1f3e846a8cf6eef30683dcad63c4dc3ce39c7058",
      "parents": [
        "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "message": "Revert \"Add dex file writer to dexlayout tool.\"\n\nBug: 29921113\n\nThis reverts commit 69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2.\n\nChange-Id: I8bf9b1222d99489059e45f47d220396a853170a4\n"
    },
    {
      "commit": "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2",
      "tree": "eeea96181b252426bc7d9363c62cf22c9aac100a",
      "parents": [
        "d295618ac764b334424b0bc7a592337edef19783"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 22 18:02:49 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 03 14:33:25 2016 -0700"
      },
      "message": "Add dex file writer to dexlayout tool.\n\nAll sections are being written out properly.\nThere is one small difference:\n  - unindexed string data is not written out\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I3872327526a350f33f0f851516a389622c1a54ae\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "3ab96b460684781af58b3f9c5b9fb0e370de6b50",
      "tree": "8165154e9ec5d6977ec3b2405f6b4ba0a6731b7e",
      "parents": [
        "6a40fc9bbb9421f78ffd7a9cce7f9acff3aa7d0d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 09 18:35:01 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 19 18:42:34 2016 -0700"
      },
      "message": "Dexlayout changes to support offset/size output of items.\n\n- Created offset \u0026 size fields for items, initially populated with\n  values from original dex file.\n- Created index field for indexed items in header.\n- Created Item objects for StringData and TypeList.\n- Created Collections container to hold unique_ptrs for all objects\n- Reorganized EncodedArrayItems to make it easier to collect them\n- Added relevant annotations-related items to Collections\n- Some size calculations and section offsets left as TODO\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Id812f104c1930a3ee381e885f353a9a49f29ac9b\n"
    },
    {
      "commit": "904614f008fa03b4443f1a0abdac1a1966805696",
      "tree": "4fb2578a78dcf514bccc6df9ad24674623bdf8c4",
      "parents": [
        "ec88abde5944eaa94e1299cc2ec040b51977b1f4",
        "afd3c9ea7f238afebd5073c1143d3c832ab10a71"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "message": "Merge \"Convert art runtests to Android.bp\""
    },
    {
      "commit": "afd3c9ea7f238afebd5073c1143d3c832ab10a71",
      "tree": "ea95e66ac119b6f86f637ebbeba22e956d3a4c4e",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:47:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:10:42 2016 -0700"
      },
      "message": "Convert art runtests to Android.bp\n\nBuild the art runtest libraries with Android.bp.  The host test\nlibraries move from out/host/linux-x86/lib[64] to\nout/host/linux-x86/nativetest[64], and the device test libraires from\n/data/artest/${TARGET_ARCH} to /data/nativetest[64]/art/${TARGET_ARCH},\nwhich requires adding nativetest to the library search path, and fixing\nsome tests to support multiple entries in library search paths.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: I2118a3292f22f275954ddd7cdd4e12287fe47808\n"
    },
    {
      "commit": "9aa352e92b6ca0f2250cb7f54dfbf4b1be714c19",
      "tree": "647b9274daa64b3497c202da4327be26fe4e494b",
      "parents": [
        "47c22ff721503c0eb325508450663adacf0bd377"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Sep 15 18:13:52 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Sep 16 16:31:19 2016 -0700"
      },
      "message": "Remove TypeLookupTable from DexFile.\n\nOne more step towards removing runtime dependencies from the DexFile\nAPI.  This severs the ties to OatFile.  Work remains to move MemMap out\nof DexFile.\n\nBug: 22322814\nChange-Id: I29e7ad8fd292c7919ed2689dc754b958b88d6819\nTest: test-art-host\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "fe6064ae8b861f1290aa793ce0de219781da6a10",
      "tree": "a24da585adbafc5932e4c3aab07f0e1d9a639628",
      "parents": [
        "090a5da3a7f320b9d2aa9fa461efc11a7eb39392"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 30 13:49:26 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 08 11:00:53 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nRelanding I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef, with fixes to\ncompile dalvikvm32 and dalvikvm64, and add them as dependencies of\ntests.  Also fixes HOST_PREFER_32_BIT by moving the override from the\ndefaults, which are not used by everything in art, to the art_cc_binary\nmodule type.\n\nTest: rm -rf out/host; m -j HOST_PREFER_32_BIT test-art-host; m -j test-art-host\nChange-Id: I64d3eef5080e128103d052497760c3521cc253c6\n"
    },
    {
      "commit": "72359225691975281f0bd5a0a19b07a0b2e6b498",
      "tree": "228df961b259fa72be55950a52ad7b357546e369",
      "parents": [
        "ef858c25d043074fe572c5d578e08af12e055733"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 07 13:04:01 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 07 15:56:40 2016 -0700"
      },
      "message": "Fix some memory leaks found by valgrind.\n\nBug: 29921113\nChange-Id: If70d475a3317751d206658c5794a32d78bc33e47\nTest: valgrind-test-art-host-gtest (with --trace-children\u003dyes)\n"
    },
    {
      "commit": "853a8e10844b9b9e791c6d40e5d332cd38af97d6",
      "tree": "7339753d96f5e346c28a5c57a561a9464d83e719",
      "parents": [
        "3e65825978056adf7cbad646d4ab92c161a60e09"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Sep 01 13:03:50 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 06 14:06:23 2016 -0700"
      },
      "message": "Separate DexIr building from constructors.\n\nMove all the construction from DexFile out of the constructors of the\nbasic IR.\n\nBug: 29921113\nChange-Id: I3f79c104ce7183ddde73f143c047061416009a54\nTest: test-art-host-gtest\n"
    },
    {
      "commit": "0f7eaebb1622e08482c519fe5eaab9afa8f64df1",
      "tree": "7d1d44eb4a153ed738178abf8e3948a103ca3429",
      "parents": [
        "244d105f68159b13c55217dd6d883991ba4a7c20"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 17:56:13 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 01 01:29:42 2016 +0000"
      },
      "message": "Disable dexlayout_test on target.\n\nTarget doesn\u0027t have diff to compare output files.\n\nBug: 29921113\nTest: mm test-art-target-gtest-dexlayout_test\nChange-Id: I244c0c74214b780676283de1b309978667ff58e3\n"
    },
    {
      "commit": "c3acfc5bed5d0cb22bee05e72cdbdec49a182224",
      "tree": "3f9e89e770efbea5dac6bd601d29b7707c609922",
      "parents": [
        "7629f60ffa7b8533ea0b50263d52cc1df72b2904"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 29 14:18:26 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 11:09:41 2016 -0700"
      },
      "message": "Finish dexlayout dumping of dex files and added test.\n\nThe test runs dexdump and dexlayout over the first core library jar file\nand diffs the output, checking that they\u0027re the same. More dex files\nwill be added later for better coverage.\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\n(cherry-picked from commit a378e88db648cf19e771714dd1059cf3d41d4753)\n\nChange-Id: Idfd8ac9f069885b675a4a2f0c70aef2cbef5a9b8\n"
    },
    {
      "commit": "7629f60ffa7b8533ea0b50263d52cc1df72b2904",
      "tree": "ce4d4f25c48dddf5930ff0d55c9d071f041a27fd",
      "parents": [
        "081e7a16c4fcbdb014441a236e12f58eb89ff99a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Sun Aug 07 16:01:51 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 10:15:50 2016 -0700"
      },
      "message": "Add dex file intermediate representation\n\nAdd an intermediate representation, constructed from the DexFile\nutilities, that can be used to optimize the layout and re-emit dex\nfiles.\n\nBUG: 29921113\nTEST: TODO: Add dex files to compare output with dexdump\n\n(cherry-picked from commit af14d9f551e6169c201dc7981d9cfbcb53c7d2c7)\n\nChange-Id: I3dacb78fad5228e43d77f20b110bd40e0e116cdb\n"
    }
  ]
}
