)]}'
{
  "log": [
    {
      "commit": "14832efeb92334c562ebedef34e920d30e3cee69",
      "tree": "57d10c24966a46ae1c01861ee579ac6000326c45",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 05 11:44:32 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Aug 09 13:47:49 2016 +0100"
      },
      "message": "Revert experimental lambda feature.\n\nThis is a revert of the following changes :\n\n30c475a2046951a81769c2db0b2dad66cd71e189.\nlambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.\n\n6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.\nlambda: Experimental support for capture-variable and liberate-variable\n\nfc1ccd740b7c8e96dfac675cfc580122cd1b40a6.\nlambda: Infrastructure to support capture/liberate-variable dex opcodes\n\ne2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.\nruntime: Add lambda box/unbox object equality\n\n2ee54e249ad21c74f29a161e248bebe7d22fddf1.\nruntime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\n158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.\ninterpreter: Add experimental lambda opcodes for invoke/create-lambda\n\na3bb72036f5454e410467f7151dc89f725ae1151.\nAdded format 25x to dexdump(2).\n\nPlus surrounding cleanups.\n\nTest: make test-art\nChange-Id: Ic6f999ad17385ef933f763641049cf721510b202\n"
    },
    {
      "commit": "c05e2f2255cfc7d1a5a91be4aa3dfe7838e4e77a",
      "tree": "8b2152de5eabef2c996f171a1bb989f053196b0f",
      "parents": [
        "f79c0e6f74dfaf7ca5ba3fbe1c903abd65086a1a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 12 15:53:13 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 12 16:55:06 2016 -0700"
      },
      "message": "Refactored a few dexdump alloc/free into unique_ptr\n\nRationale: easier to read\n\nTest: dexdump\u0027s output is well-tested\n\nChange-Id: Ib5b36dce68d442e555599f9427bd9bfa7c6f3831\n"
    },
    {
      "commit": "a0e33fd572e81a67841706fb0b49cd3c4f6f8c11",
      "tree": "dc5453049be18cfe9b126706bf2dbf443d4b887f",
      "parents": [
        "a5f0a1ab3f632f1e9c0bc048604aa0c0e98a4a93"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 08 18:32:45 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 11 11:18:55 2016 -0700"
      },
      "message": "Fix clang static analyzer on potential memory leaks.\n\nRationale:\nFirst was not really a leak, but the combination of stack/heap\nallocated data structures with a single re-allocation was a bit\ncomplex for static analysis. Second was a true leak.\n\nBUG\u003d30040701\n\nChange-Id: I10c2095f3061bd2ad49f24f7c25fcd7ca0f95111\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": "dce50865e8d37db3de314431496ac61018e45ebe",
      "tree": "f06dd8d7a0c44c8794eba824e23c28fd6ee5bb47",
      "parents": [
        "29475496590df1451fc6a86a8cb05618cec02bb4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jun 10 16:04:03 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jun 17 15:13:08 2016 -0700"
      },
      "message": "Implemented annotations display in dexdump.\n\nRationale:\nShowing this in true dexdump style as a separate construct\nunder switch -a (rather than interpreting the data and showing\neach annotation where it is used). Also added new test to\ncover many more value encodings in static fields.\n\nBUG\u003d28981655\n\nChange-Id: I6d7d44cbd358d9880aab78812471bdb0dc6b6ad8\n"
    },
    {
      "commit": "75009e8acd80cc4111a4cebbc350dad895ad1f55",
      "tree": "7114dfe68c682ef4692d0c2b0448fb87056d4d6e",
      "parents": [
        "c5b8e84236126a1176d97fe8f924d8cb40c1de6e",
        "2b1db0743f7af28785b92e30436cce20143872be"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 15 08:19:06 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 15 08:19:06 2015 -0800"
      },
      "message": "Merge \"Refactor DexFile::DecodeDebugInfo.\" am: 96c9de9510\nam: 2b1db0743f\n\n* commit \u00272b1db0743f7af28785b92e30436cce20143872be\u0027:\n  Refactor DexFile::DecodeDebugInfo.\n"
    },
    {
      "commit": "96c9de9510b33e2c8def669c4dfcb65db729e7d2",
      "tree": "7949b6c0289b63ab48004569489a3d0fe102b7be",
      "parents": [
        "74768fb83073a2ae84c9173d4fc53654e3092b24",
        "b06e28e5b9fbabe3e69b18f31bf353eaff5d0c1f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 15 15:29:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 15:29:17 2015 +0000"
      },
      "message": "Merge \"Refactor DexFile::DecodeDebugInfo.\""
    },
    {
      "commit": "b06e28e5b9fbabe3e69b18f31bf353eaff5d0c1f",
      "tree": "18ff419c6a3b80ecff3125f13b72a8851e848ab0",
      "parents": [
        "f71b3ade9c99ce2fec2f5049ce9c5968721e1b81"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 10 13:15:00 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 15 15:11:50 2015 +0000"
      },
      "message": "Refactor DexFile::DecodeDebugInfo.\n\nSplit the method into two - one for locals and one for positions.\nAll uses of the method request only one of the two and it makes the\ncode slightly cleaner. The position variant requires fewer parameters.\n\nExpose additional line table information which was previously ignored\nby the decode method (prologue, epilogue, source file).\n\nChange-Id: Idf8ba98fa58ea0d2103932b5cc0af81365885107\n"
    },
    {
      "commit": "74a77bc0c70513edc4ab42be8cc79825f9af5c33",
      "tree": "01e9d72c00109897fa504a9d2dbe25c019c8f6f9",
      "parents": [
        "53c4b4d464b33d9cdc8f9bd60f8be6279e0b1570",
        "8247c5fd94b61e9cbfc08a2cd453b67aa5f2a444"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 11 10:58:13 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 10:58:13 2015 -0800"
      },
      "message": "Merge \"Make \\\u0027dexdump2 -l xml\\\u0027 include whether each class is an interface.\" am: 66e43b115e\nam: 8247c5fd94\n\n* commit \u00278247c5fd94b61e9cbfc08a2cd453b67aa5f2a444\u0027:\n  Make \u0027dexdump2 -l xml\u0027 include whether each class is an interface.\n"
    },
    {
      "commit": "1f12e28d52dace9f6e5906b5b7c43793acbc7971",
      "tree": "18d090710026ee22c9dd3b7c3673fc842de9cb51",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 10 16:49:47 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 10 16:54:29 2015 -0800"
      },
      "message": "Make \u0027dexdump2 -l xml\u0027 include whether each class is an interface.\n\nChange-Id: Id83ef52454596ab80b16042e58ff9d00bc5fb8ed\n"
    },
    {
      "commit": "898e04bc81777772ed269bc89294c3fb54f7a481",
      "tree": "5496e9bed534eef3b78c1576cd7334a91c988206",
      "parents": [
        "5cb6cf5b887b0c5ace6cf2cff3e2cbb5ec3a4a4f",
        "99dd068563bbd460f5ba8c81249e6e55e794de5e"
      ],
      "author": {
        "name": "Shinichiro Hamaji",
        "email": "hamaji@google.com",
        "time": "Thu Dec 10 23:56:03 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 10 23:56:03 2015 +0000"
      },
      "message": "Merge \"Output static field values in dexdump\" am: 1a74dc4209\nam: 99dd068563\n\n* commit \u002799dd068563bbd460f5ba8c81249e6e55e794de5e\u0027:\n  Output static field values in dexdump\n"
    },
    {
      "commit": "82863f0ce9fa45f6b14d12c35a6a50e2772ab26a",
      "tree": "16863b18db5dff2d3d125c956910d45048f24341",
      "parents": [
        "e8be90a673feb573d53277f42282955cbf7f58e9"
      ],
      "author": {
        "name": "Shinichiro Hamaji",
        "email": "hamaji@google.com",
        "time": "Thu Nov 05 16:51:33 2015 +0900"
      },
      "committer": {
        "name": "Shinichiro Hamaji",
        "email": "hamaji@google.com",
        "time": "Thu Dec 10 13:16:59 2015 +0900"
      },
      "message": "Output static field values in dexdump\n\nThis is necessary to generate table-of-contents of .dex files\nto prevent unnecessary rebuilds for implementation-only\nchanges because these values can be used while compiling other\nmodules.\n\nAlso modify EncodedStaticFieldValueIterator so it can be used\nwithout ClassLoader/Linker.\n\nBug: 24597504\nChange-Id: Ida0c839f9dd6961e1c1b3a380e2092042fad03bb\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\n"
    },
    {
      "commit": "3f382aea8f12695d2a871fc74e80793fa9a0f7eb",
      "tree": "04fe2e007d8788bf3b2154fd2da44dfe25318fda",
      "parents": [
        "2f49b0a90720fe9f4cab040c376aab5f387967e3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 13 10:06:01 2015 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 13 10:24:35 2015 -0800"
      },
      "message": "Implemented control of \"export only\" feature in dexdump.\n\nRationale:\nExport only is now under explicit control of a new -e flag, and\ncan be used to control both -l xml and -l plain. The result is\nthat, by default, xml output now shows all items (old behavior\ncan be forced with -e -l xml). This solution feels a bit cleaner\nthan adding a flag to override export only when -l xml is given\n(old dexdump forced this tight relation).\n\nBug: 25673756 (feature request).\n\nChange-Id: I7cfd48bf91195d2a81d134936719d267fda399f5\n"
    },
    {
      "commit": "a3bb72036f5454e410467f7151dc89f725ae1151",
      "tree": "3fe0e065df402b37868835f7c31ef33458088e21",
      "parents": [
        "525b665cef9d85a6cfe56994561a24e10dac7f0f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 26 17:24:09 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 27 09:27:03 2015 -0700"
      },
      "message": "Added format 25x to dexdump(2).\n\nRationale: Igor introduced a new format for invoke-lambda which\n           was not recognized by dexdump(2) yet.\n\nSample output:\n\nChange-Id: I2d9cd4b740452bb8380de2234819bcd4ad49345a\n0002ac:                  |[0002ac] Hello.doit:()V\n0002bc: f600 0200        |0000: create-lambda v0, LHello;.-void_doit__LambdaImpl0:(J)V // method@0002\n0002c0: f300 0000        |0002: invoke-lambda v0, {}\n0002c4: f600 0300        |0004: create-lambda v0, LHello;.-void_doit__LambdaImpl1:(JI)V // method@0003\n0002c8: 1212             |0006: const/4 v2, #int 1 // #1\n0002ca: f310 2000        |0007: invoke-lambda v0, {v2}\n0002ce: 0e00             |0009: return-void\n"
    },
    {
      "commit": "5ed8b2dfbdf1b487334a661bc5b8dc8ac880e435",
      "tree": "ff91038024929b8391478faae771c3c4fbef29f9",
      "parents": [
        "8c20e7609fdc8bbf16979a874301e4cab0dbf355"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 23 23:01:31 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 24 15:20:47 2015 -0700"
      },
      "message": "dexdump2 won\u0027t be optional when it replaces dexdump.\n\nSo it should just be in /system/bin, not sad and lonely in /system/xbin.\n\nChange-Id: I2edda827d36486f46fdcfd77f0ee6eec1345974c\n"
    },
    {
      "commit": "5073fedd553afeb6ccdb49c1a1ab2cc2947c0870",
      "tree": "6c47517d6e2580729442d08f287d05e2070dee83",
      "parents": [
        "b19b82bf6c8a55459fddcd55e86b162b2c0b9101"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 10 11:40:25 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 12 22:52:32 2015 -0700"
      },
      "message": "ART: Add utility function to dump dex CFG\n\nAdd a utility function in utils.h to dump the dex CFG of\na method.\n\nAdd an option (\"-g\") to dump CFGs of a dex file in dexdump2.\n\nChange-Id: I380082f0abe8ed7eeb6a9186364a99425f69f55c\n"
    },
    {
      "commit": "754a4457ff34aa35336284e633be7ac0a23a683d",
      "tree": "3ea3b3d55adde88d3f34212e60ce6fd3ed667831",
      "parents": [
        "af0365ac6a4c7d242df6f50c4da69ba0ff67e3f1"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jul 21 12:05:30 2015 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Jul 21 12:05:30 2015 -0700"
      },
      "message": "Prefer 32-bit host executables on Mac.\n\nBug: 22527295\nChange-Id: I2cb1d3086b65b8227e6bdac9c0485fdc452f1e9c\n"
    },
    {
      "commit": "4e14960f070a0979e785d278ec3452905b669110",
      "tree": "303b1014b2bbc6e1fe0b5e5dbb43202f464b35b6",
      "parents": [
        "f99628f7673c21c42be34f95bef6bbb50cd99f20"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 09 11:45:28 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 09 11:45:28 2015 -0700"
      },
      "message": "Enable multi-dex content per file in dexlist/dump.\n\nRationale:\nUnlike the original Dalvik-based utilities, the Art-based\nutilities are able to extract multi-dex content from one file.\nSo no need for any artificial restriction on number of dex files.\n\nBug: 22322814\nChange-Id: I7c603d22c7e0caa5ae712b905d9bb83982f1b918\n"
    },
    {
      "commit": "22c26f5b454b56a20215cb8bbc5e8afcaccafdb0",
      "tree": "25e224c087f006e75983a6f7fdcf55ee53797861",
      "parents": [
        "d10ee1ce1ccd92c003ec49c15edf339e74c13894"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 08 21:20:13 2015 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 08 21:20:13 2015 +0000"
      },
      "message": "Revert \"Make Art dexdump/list the real utilities.\"\n\nThis reverts commit d10ee1ce1ccd92c003ec49c15edf339e74c13894.\n\n\nREASON:\nwin_sdk is not happy with my migration :-(\n\nChange-Id: I2ed196da3f5883112883525f883d25b36e48352a\n"
    },
    {
      "commit": "d10ee1ce1ccd92c003ec49c15edf339e74c13894",
      "tree": "65f85f5bdf5dbc4141fc556d3389d3a7ca9d40c7",
      "parents": [
        "d9acfe21f6eb09a22db69958dfb05c1f48f779bd"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 08 11:30:04 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 08 11:30:04 2015 -0700"
      },
      "message": "Make Art dexdump/list the real utilities.\n\nNote: depends on pending CL that removes\n      old dexdump/list and libdex.\n\nBug: 22322814\nChange-Id: I99259553f0f4655a633989feb8d67aa11de8b29d\n"
    },
    {
      "commit": "282ff2ef59bfd5d1e36db989adc7ce40c78d9992",
      "tree": "711199c5b6a722bcdef95422d96529983a142162",
      "parents": [
        "bb5965c8891c748a30120ff20e873bbfe2dbf5d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 07 10:12:10 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 07 10:12:10 2015 +0100"
      },
      "message": "Make dexdump2 compile for 64bit devices.\n\nChange-Id: I4c990272b20062632d236671415cfb3dbb26c867\n"
    },
    {
      "commit": "69ae54abd4eaad54dc73b75ea7c8051aa515581d",
      "tree": "aefa425ee72a15dff5f542c14808a717b266709a",
      "parents": [
        "01b2129de3e182b79aa820e71fc7fa1ef42f2d35"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 01 14:52:26 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 06 11:33:07 2015 -0700"
      },
      "message": "Migrated dexdump from Dalvik (libdex) into Art (libart)\n\nRationale:\nThe new dexdump (temporarily called dexdump2 until we are\nsatisfied with the migration) is a re-implementation of the\noriginal dexdump utility that was based on Dalvik functions\nin libdex into a new dexdump that is now based on Art functions\nin libart instead.\n\nThe output is identical to the original for *correct* DEX files.\nOutput in error messages and the usage() may differ, however,\nsince the new utility relies on Art parsing and verification.\n\nNOTE 1:\nODEX files are no longer supported.\n\nNOTE 2:\nWhere possible, I kept the file as close to the original\nas possible, including some archaic C idioms on memory\nallocation; those can be improved over time.\n\nNOTE 3:\nI used the standard Android.mk format for the new dexdump,\nbut this probably needs to be Art-i-fied.\n\nNOTE 4:\nSome minor issues that need resolution are marked with a TODO.\n\nBug: 17442393\nChange-Id: I753743f64afcf4b84b8d33efbd1cfcb7908f0c3e\n"
    }
  ]
}
