)]}'
{
  "log": [
    {
      "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": "a59d9b228b1eda3bf71a81b6201ec64e26086c23",
      "tree": "91adf9f0e282eec50ccb28aa2dbc432a5e28d13f",
      "parents": [
        "05ce52b406dcf6b9a24287d14f0e611211e0db3d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 26 18:13:17 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 16:10:35 2016 -0700"
      },
      "message": "Use ObjPtr for reflection.cc/h/inl\n\nChanged Pretty helpers to use this to reduce usage of Decode. The\neventual goal is not have almost any calls to ObjPtr::Decode.\n\nMoved ObjPtr out of mirror namespace for convenience. Added more\nPoisonObjectPointers calls in class linker, thread suspension.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I44d08db5143d95ed1b65e2f00f9749ef5cf379f7\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": "ca3c8c33501bf199d6fd0a5db30a27d8e010cb23",
      "tree": "12a6c3a4266bd17c6b9fe7066fd0b25cb8d9b2d6",
      "parents": [
        "0764877e21f1230e718923d5b84b048cd4346afa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 06 14:04:48 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 10:08:18 2016 +0100"
      },
      "message": "Collect verifier dependencies\n\nMethodVerifier tests whether a DEX method is valid w.r.t. the classes\nin class path. Since the APK does not change across OTA updates, it\nis not necessary to analyze the bytecode again with MethodVerifier,\nas long as its dependencies on the class path (which may have changed)\nare satisfied.\n\nThis patch introduces VerifierDeps, a class path dependency collector,\nand adds hooks into MethodVerifier where classes/methods/fields are\nresolved and where assignability of types is tested.\n\nTest: m test-art-host-gtest-verifier_deps_test\nBug: 30937355\nChange-Id: Iee0b321d772a5c7d1cb471aaa6e13918310b7e2f\n"
    },
    {
      "commit": "7b49e6cade09bc65b3b5f22d45fc9d0a7184e4f2",
      "tree": "36bb77d376708ba0f054c9820f4b7ed51437fbb2",
      "parents": [
        "3bac5443975cd6312e7c6282b94014db25f369d7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 01 11:06:18 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 14:39:07 2016 +0100"
      },
      "message": "Introduce VDEX file, use it for DEX files\n\nThis patch introduces a new output file called VDEX. In the future,\nVDEX files will store pre-validated DEX files which do not need to be\nre-extracted and re-verified when recompiling, e.g. due to new\nprofiling information or after a system update.\n\nWith this CL, the OatWriter writes DEX files into the VDEX and the\nrest of its output into OAT. The OatFile class and related classes\nare updated to load the VDEX at runtime and mmap the DEX file section\nfrom it. Patchoat creates symlinks to the source VDEX files in the\ntarget directory or copies the files if passed in as file descriptors.\n\nThe feature can be disabled by setting the environment variable\nART_ENABLE_VDEX to false.\n\nTest: m test-art-host\nBug: 30937355\nChange-Id: I54dcaececf6814c258c80524ec15e2e2ef69c8dd\n"
    },
    {
      "commit": "d106d9f871c957286ccdeb79c1c2a5ed41f859a6",
      "tree": "dc61a7fd80e1289777f6a991102b0fe4a2ef032d",
      "parents": [
        "99fd9f39f2cd74864bdc750a3444ddd776da534c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 16 19:22:57 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Aug 30 09:32:49 2016 -0700"
      },
      "message": "Save environment snapshot and use at fork/exec\n\nSome applications may inadvertently or maliciously set of environment\nvariables such as LD_LIBRARY_PATH before spawning subprocesses.\nTo make this more difficult, save the environment at the time the\nruntime starts and use the saved copy anytime Exec is called.\n\nBUG: 30160149\nTEST: make test-art-{host,target}\n\nChange-Id: I887b78bdb21ab20855636a96da14a74c767bbfef\n"
    },
    {
      "commit": "458ab5382b7a84e5c192d62d2fb5ca0eb08ffd02",
      "tree": "eddb0f2b8c9494bb6cf1bcc6d9b3138703dd91fb",
      "parents": [
        "36bf3a2d281892e7906d3eaf9d7455b0656c9a25"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Aug 15 16:12:57 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Aug 15 16:12:57 2016 -0700"
      },
      "message": "Remove unused GetDalvikCacheFilenameOrDie.\n\nChange-Id: I8987fa488a89865d4a5fb56dd00cc396ee33bcce\nTest: m test-art-host-gtest-utils_test32\nTest: m build-art-host-tests\nTest: m build-art-target-tests\n"
    },
    {
      "commit": "55b58b6b68727ac714ed5ce2ff2f45a33caf9368",
      "tree": "d4d02eedf7a0cb92d99e27ddae6eca2eac788692",
      "parents": [
        "066187de25e3fd2ae86bad812f514e16793caae7"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 12 09:05:13 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Aug 12 12:45:05 2016 -0700"
      },
      "message": "Clean up use of GetDalvikCache.\n\nSwitch the only caller of the non-void version of GetDalvikCache that set\ncreate_if_absent true to use the void version of GetDalvikCache. Then no\ncallers of the non-void version of GetDalvikCache set create_if_absent to\ntrue, so that argument is no longer needed. And without create_if_absent,\nthere is no case when the function will abort, so the \u0027OrDie\" option is no\nlonger necessary.\n\nChange-Id: I83f60dcc8a8f3b1f91fd2971e9028f6a7dd8384d\nTest: m art-test-host\nTest: m art-test-target\n"
    },
    {
      "commit": "5dd44d0da7999ab62f09a1bf03345280811736d4",
      "tree": "18dc0029caf5791b0bf831dcc6e38f623fe14eb4",
      "parents": [
        "20b975cc5c5a1f4e6f0a8e525b5d2e63abc413df"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 02 17:20:03 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 04 18:19:02 2016 -0700"
      },
      "message": "ART: Factor out native stack dumping\n\nMove DumpNativeStack and DumpKernelStack into a new file to keep\nconcerns separated. Clean up the file.\n\nIn preparation for modifications to how we use addr2line.\n\nBug: 30351473\nTest: m test-art-host\nTest: manual host testing with a test that times out\nChange-Id: I02d5645952fe94fd8e73bcf0522721547f6cef66\n"
    },
    {
      "commit": "df8789252252c77660daf5d602d425b60b344b08",
      "tree": "b393eb58d4a7749d819672d0199f35931a8e945b",
      "parents": [
        "f79c0e6f74dfaf7ca5ba3fbe1c903abd65086a1a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 13 16:44:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 13 19:48:30 2016 -0700"
      },
      "message": "ART: Add FdFile constructors\n\nMake Open protected, and expose constructors instead. Add a move\nconstructor and move assignment operator.\n\nAdd OS functions that return the FdFile non-pointer version.\n\nAdd tests.\n\nBug: 21192156\nTest: m test-art-host\nTest: m test-art-target (shamu)\nChange-Id: I83e390edde7cd37c900e9d5c3e4d21da22981b3f\n"
    },
    {
      "commit": "b9c1b9bdd7689c0e80c64c371581f99e53749e05",
      "tree": "5357b90f2281ac4abf5a89323441a255ab35e702",
      "parents": [
        "b8e69994d10534e0f4f96878725bc53e531f2c6f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 17 17:07:52 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 22 16:10:19 2016 +0100"
      },
      "message": "Improve resolved classes saving strategy\n\nIf we already have a non empty profile file it means that we already\nsaved once the resolved classes. So there\u0027s no need to hurry up and\nstart the profile saver eagerly after 2s.\n\nBug: 27600652\n\n(cherry picked from commit c15e566b36170237f01ccefc12129c1578a02140)\n\nChange-Id: Iecc730c25eab779efccbbde66432dbbc61192e8a\n"
    },
    {
      "commit": "f193878a242f5b86db62986a9b2cba5d99505c17",
      "tree": "006fa6ec8d30c4d43bf9120964527ff087ef3292",
      "parents": [
        "2048b01dfec8877d672a4da41a158f68b12b5337"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 09 16:03:00 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 10 11:33:39 2016 -0800"
      },
      "message": "Log when why an Unwind failed.\n\nBug: 27449879\nChange-Id: If7ae5f0991da6fd64dd45e22d69eecef1388a28e\n"
    },
    {
      "commit": "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "3da74687e42de7d33a8e75df9bd64374e650f75e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "message": "Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\n\nThis reverts commit 3da74687e42de7d33a8e75df9bd64374e650f75e.\n\nChange-Id: Id005096bd8063c6c602744d4476d5eb7e0d34e90\n"
    },
    {
      "commit": "3da74687e42de7d33a8e75df9bd64374e650f75e",
      "tree": "f3bf62678200380dc672647af1da136c562f60b3",
      "parents": [
        "6caefd983a800a063b219f1d3ed71b1416cecd70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "message": "Revert \"Add profman tool: responsible to process profiles\"\n\nNeeds a profile_assistant_test fix.\n\nBug: 26719109\nBug: 26563023\n\nThis reverts commit 6caefd983a800a063b219f1d3ed71b1416cecd70.\n\nChange-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974\n"
    },
    {
      "commit": "6caefd983a800a063b219f1d3ed71b1416cecd70",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 01 12:06:18 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 13:55:18 2016 +0000"
      },
      "message": "Add profman tool: responsible to process profiles\n\nThis pulls out profile parsing from dex2oat into a separate tool.\nSome additional refactoring:\n- better return codes\n- dex2oat now accepts only one profile file\n\nThis is the first step towards support secondary dex files and\nextracting profiles out of the code_cache directory.\n\nBug: 26719109\nBug: 26563023\n\n(cherry picked from commit d81c289e58f4ced8ec7674fd377c356669f97227)\n\nChange-Id: I34d408faa318e866e1a23d4d04c369131ee5012b\n"
    },
    {
      "commit": "59a8c0bb74c353f879760bd6522b49cf7298666e",
      "tree": "b899a8d9e4dcb19023b7754255833cf710180140",
      "parents": [
        "0021c310e2e613d6d180acda0d9d422dba8688b0"
      ],
      "author": {
        "name": "tony.ys_liu",
        "email": "tony.ys_liu@htc.com",
        "time": "Wed Jan 20 18:05:31 2016 +0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 20 15:38:12 2016 -0800"
      },
      "message": "Use current pid not tid to create a backtrace map.\n\nThe BacktraceMap::Create() function assumes that the passed in\nparameter is the current pid not tid. If a tid is passed in, then\nthe logic that creates the local map in libunwind is not used\nand can bypass all of the special handling of local maps. The result\ncan be crashes if this map data gets out of sync with the real maps\nfound in the process.\n\nBug: 26676205\nBug: https://code.google.com/p/android/issues/detail?id\u003d199219\nChange-Id: Ibab9f7a7b99648a2cdaa185958bf6ffc368079ce\n"
    },
    {
      "commit": "4d87df607a0b86cdf4b2c04f61d72a60d8975ce0",
      "tree": "922e882c15633e6c700091c99864868d69822d7d",
      "parents": [
        "97f2ca08c3d9a2b1694419aea07cd64f477c0af2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 07 15:14:19 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 08 15:46:52 2016 -0800"
      },
      "message": "Improve handling of daemon threads after runtime shutdown\n\nThe main issue comes from the fact that user daemon threads are\nallowed to continue running after the runtime has shutdown. They may\nstill have a JNI env pointer. To prevent crashing if they call into\nthe env, we replace the function pointers with functions that sleep\nforever.\n\nThe other issue is that user daemon threads that are blocked in an\nART condition variable may get woken up by another user daemon inside\nof Monitor::Notify or by a spurious wakeup (i.e. SIGQUIT). To deal\nwith this issue, we check the JNI env for shutdown runtime when we\nare woken up from a condition variable wait. This check fixes test\n132 with --host --gdb --interpreter. Previously this test crashed\nsince dlclose was somehow causing a spurious futex wakeup.\n\nTODO: Investigate adding a unit test.\n\nBug: 18577101\nChange-Id: I479b38968ee9fbc4ee4b252ee2528787279972cc\n"
    },
    {
      "commit": "5e2b971e468ca73a8e10a120730b3b6f17fad408",
      "tree": "5168766339acfd7c61852ca38595fe3459b2eb81",
      "parents": [
        "b7371a5517f78f61759f7e6124f2d957d974d9cd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 18 14:10:00 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 04 19:01:13 2016 +0000"
      },
      "message": "Assume the profile file was created before saving.\n\nbug: 26080105\nChange-Id: I9969a4abd8533614922076551fcbae2cdf695525\n"
    },
    {
      "commit": "4d77b6a511659f26fdc711e23825ffa6e7feed7a",
      "tree": "7ac013467a20fcdf64cb6cf4c79a8ff67dc7690a",
      "parents": [
        "66f55237679db90cb0a0a265043a787932b466f8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 01 18:38:09 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 12:02:12 2015 +0200"
      },
      "message": "Save profile information in a separate thread.\n\nPreviously we would save the profiling information only when the app\nwas sent to background. This missed on an important number of updates\non the jit code cache and it didn\u0027t work for background processes.\n\nBug: 26080105\n\nChange-Id: I84075629870e69b3ed372f00f4806af1e9391e0f\n"
    },
    {
      "commit": "5096e66d07db8041589518f8c5b0281d859d0817",
      "tree": "52a1d28a6286d9054d2559fea8168541612093bd",
      "parents": [
        "88b2b80aed15bb1f931cddd40e44ca525ef10018"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 08 19:25:49 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 09 15:40:31 2015 +0000"
      },
      "message": "ART: Add FdFile::Copy() to copy data from another file.\n\nAlso move utilities for inspecting file magic numbers to\nbase/file_magic.{h,cc} and drop the unused IsOatMagic().\n\nChange-Id: I2cc4dd18a5e8b9738fb386c8057faad3722bdd68\n"
    },
    {
      "commit": "732f016139acac7bd7ec0d0c1d5e964eb8a28b2e",
      "tree": "6ea503f90c55e1879c170b2de096496931282122",
      "parents": [
        "7ecbd49c6c78e6c633883aa6766675df8abaa7dd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 20 01:24:47 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 20 01:24:47 2015 +0000"
      },
      "message": "Revert \"Use arc4random when available to select delta for image relocation.\"\n\nThis reverts commit 7ecbd49c6c78e6c633883aa6766675df8abaa7dd.\n\nChange-Id: Ifb37e23584722b31cb2369bcc9b91da6146d2cf6\n"
    },
    {
      "commit": "7ecbd49c6c78e6c633883aa6766675df8abaa7dd",
      "tree": "612cfb1749b8cf74b92c29dcf00141e76e28484f",
      "parents": [
        "16cabc4acd14d5a61c73cef821162e1827f08788"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 19 11:03:10 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 19 16:47:49 2015 -0800"
      },
      "message": "Use arc4random when available to select delta for image relocation.\n\nBug: 25776162\n\nChange-Id: I1c4cc992977b5d6fe782ff819903a802a40391ee\n"
    },
    {
      "commit": "ae35c3716dd4d974f6e6c3900577d9d98f99132f",
      "tree": "731994aa28a7017133f6fecff16b1886e63c3ded",
      "parents": [
        "4ba3766449e4c36478ed896ee6d2ad9e9ee43f74"
      ],
      "author": {
        "name": "Tobias Lindskog",
        "email": "tobias.lindskog@sonymobile.com",
        "time": "Wed Nov 04 19:41:21 2015 +0100"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 05 11:44:57 2015 -0800"
      },
      "message": "Use _exit instead of exit after exec fails\n\nA call to exit() will run the atexit handlers before exiting, which is\nusually not desirable in a forked-off child process.\n\nCalling _exit() instead will not run the atexit handlers.\n\nChange-Id: Ide9a69c0468faafeaf32b0babd9fcf2b4f06f546\n"
    },
    {
      "commit": "abbb0f76b07417f13f712f54d5afddb72e3b9931",
      "tree": "bb26eeb28b58aed669ad16af30aa35771eb02be4",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 29 18:55:58 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 30 11:17:00 2015 +0000"
      },
      "message": "Refactor code so that JIT can parse compiler options.\n\nCurrently only the CompilerOptions class. We should also\ndo it for the CompilerDriver options.\n\nThis will fix the flakiness seen on jdwp testing, as the\ndebuggable flag was not passed to the compiler.\n\nChange-Id: I4218dd5928c9f4fe2d6191ab11e5598e7cf84bcf\n"
    },
    {
      "commit": "6cff48f05894a60aa4742472983a75504536ca15",
      "tree": "bd399d46ef08cd836010f3119c8c5db054561267",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Jan 26 21:36:13 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 23 11:16:11 2015 -0700"
      },
      "message": "ART: Speed up thread stack tracing for ANRs\n\nShare a BacktraceMap for all threads being dumped, which speeds up\nANR dumping. Results from Nexus 9 (average of five):\n\nBefore: 0.587s\nAfter:  0.206s\n\nChange-Id: Ia70e0dbd39049318c02de561e7b95258d4849467\n"
    },
    {
      "commit": "ab60b68183cc8052b113c566f4851263444eb29c",
      "tree": "a97c508946ad8910386343b33f76e46af8ea87c6",
      "parents": [
        "4206af2185bd1d3d0356a8fbc7c5e151fdd261d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 13:35:38 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 13:35:38 2015 +0100"
      },
      "message": "New attempt at fixing mac build.\n\nChange-Id: I00e3df55e65eb5edb4e8dd244bb7f8918dd942d4\n"
    },
    {
      "commit": "b937a443752d4185a18cafb88e686bec1dd53d15",
      "tree": "8e0831ff94c789fe6b26e8d85d0716a589603c24",
      "parents": [
        "94e24ac0e9e2bad74e9beecbd068f2b87798b815"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 12:55:20 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 12:55:20 2015 +0100"
      },
      "message": "Fix mac build.\n\nChange-Id: I7229a628a619164eea22735bcaed507428ab054a\n"
    },
    {
      "commit": "524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02",
      "tree": "ad07cc96f633bdae839ff2f1553d84b9c864a930",
      "parents": [
        "b697c447eb61c2e14315166ec3b0d16375ae403c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 17:13:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 11:52:11 2015 +0100"
      },
      "message": "Remove ArtCode.\n\n- Instead use OatQuickMethodHeader.\n- Various cleanups now that we don\u0027t have all those\n  ArtMethod -\u003e ArtCode -\u003e OatQuickMethodHeader indirections.\n\nAs a consequence of this cleanup, exception handling got a bit\nfaster.\n\nParserCombinators benchmark (exception intensive) on x64: (lower is better)\nBefore:\nParserCombinators(RunTime): 1062500.0 us.\nAfter:\nParserCombinators(RunTime): 833000.0 us.\n\nChange-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3\n"
    },
    {
      "commit": "6bc4374e3fa00e3ee5e832e1761c43e0b8a71558",
      "tree": "38118523aa6b9a92fbdcd7bf1d32ca6185a3d3f0",
      "parents": [
        "16065ce56394c73c87dcb78ead4164ddc80fddb3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 12 18:11:10 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 12:05:27 2015 +0100"
      },
      "message": "Add an abstraction over a compiled code.\n\nThat\u0027s just step 1, moving code-related functions of ArtMethod to\nanother class. That class is only a wrapper on an ArtMethod, but will\nbe changed to be a wrapper around compiled code.\n\nChange-Id: I6f35fc06d37220558dff61691e51ae20066b0dd6\n"
    },
    {
      "commit": "f9f6441c665b5ff9004d3ed55014f46d416fb1bb",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 14:05:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 20:16:58 2015 +0100"
      },
      "message": "Optimizing: Tag Arena allocations with their source.\n\nThis adds the ability to track where we allocate memory\nwhen the kArenaAllocatorCountAllocations flag is turned on.\n\nAlso move some allocations from native heap to the Arena\nand remove some unnecessary utilities.\n\nBug: 23736311\nChange-Id: I1aaef3fd405d1de444fe9e618b1ce7ecef07ade3\n"
    },
    {
      "commit": "53de99cd7e863e95179823504335f1f67e03c791",
      "tree": "9bd18cc5295e8c4b569dc16d45b0ff1e19ce6ef2",
      "parents": [
        "4b7b5fcda0f97ed874de0ccd18940030e6c71f04"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 17 13:43:55 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 17 13:43:55 2015 -0700"
      },
      "message": "ART: Follow-up fixes\n\nAddressing comments for CL 166499, commit\n5073fedd553afeb6ccdb49c1a1ab2cc2947c0870.\n\nChange-Id: I359e5a4c026d58d75cb62b90c495796855302b94\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": "dd6712578b6aa8a292bc6249295b6d2a7b182717",
      "tree": "28e428fc2b4fd2a1a78b1ffb8659611f2ad45df0",
      "parents": [
        "bd76db36abc1026cdc3f737ec0f2be6174a131a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 23 14:37:18 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:10:22 2015 -0700"
      },
      "message": "ART: Change the stack dump format to be in line with debuggerd\n\nMake offsets 16 digits on 64-bit platforms.\n\nAdd the ability to provide the build fingerprint, and print it in\nthe traces output.\n\nBug: 22693991\n\n(cherry picked from commit 242ae94dc39be53e519a6163ea1db494ceb75954)\n\nChange-Id: Ibd3d3b3bd65dce84acfb97a487807d6f280a9508\n"
    },
    {
      "commit": "1e13374baf7dfaf442ffbf9809c37c131d681eaf",
      "tree": "9a8a53295a8389d7ec10accf3efb8785a97a3599",
      "parents": [
        "f68c8545382925062da2b87169ca2b5314f0b431"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed May 20 12:30:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 13 17:38:40 2015 -0700"
      },
      "message": "Generalize Valgrind annotations in ART to support ASan.\n\nAlso add redzones around non-fixed mem_map(s).\nAlso extend -Wframe-larger-than limit to enable arm64 ASan build.\n\nChange-Id: Ie572481a25fead59fc8978d2c317a33ac418516c\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "ce39200492e2715a94d96fbd39fa42b46115c255",
      "tree": "a295d2f9265092513d728122cd201943288a8820",
      "parents": [
        "dc31313c4577bb4c00d90774159c84e738ed348d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 19:57:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 20:12:19 2015 +0100"
      },
      "message": "Fix mac build: include \u003csys/time.h\u003e in time_utils.cc .\n\nRequired for gettimeofday(). Not needed in utils.cc .\n\nBug: 13925192\nChange-Id: If06840d8a47c9193ccc7bd4cee5c16fcf76d9729\n"
    },
    {
      "commit": "80afd02024d20e60b197d3adfbb43cc303cf29e0",
      "tree": "ef054c7b4f2a739f7cf063e0bc4c501c2c7e41b5",
      "parents": [
        "559b178e34c5d92e7932f92e5d8a981ac334606f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 18:08:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:59:02 2015 +0100"
      },
      "message": "ART: Clean up arm64 kNumberOfXRegisters usage.\n\nAvoid undefined behavior for arm64 stemming from 1u \u003c\u003c 32 in\nloops with upper bound kNumberOfXRegisters.\n\nCreate iterators for enumerating bits in an integer either\nfrom high to low or from low to high and use them for\n\u003carch\u003eContext::FillCalleeSaves() on all architectures.\n\nRefactor runtime/utils.{h,cc} by moving all bit-fiddling\nfunctions to runtime/base/bit_utils.{h,cc} (together with\nthe new bit iterators) and all time-related functions to\nruntime/base/time_utils.{h,cc}. Improve test coverage and\nfix some corner cases for the bit-fiddling functions.\n\nBug: 13925192\nChange-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7\n"
    },
    {
      "commit": "8508e37deeb291f92d28a9bff2df77cabdc29ddf",
      "tree": "cad2b501e3bf8ca2c6f784f4fc69fff6f8b1e7ac",
      "parents": [
        "f07f71f9af8f56e738ef0451c60734ec6022d08e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 06 14:55:43 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 07 13:33:13 2015 +0100"
      },
      "message": "Fix broken checks in IsValidPartOfMemberNameUtf8Slow.\n\nGetUtf16FromUtf8 returns a surrogate pair only if it encounters\na 4-byte UTF sequence. Three byte UTF sequences will only return the\nfirst or second half of a pair so we need to check for that\nexplicitly.\n\nbug: 20844537\n\n(cherry picked from commit 3ba8671d60061359fd833f60f7a9dca14878cc0b)\n\nChange-Id: I2e2a4f9f736cd11050a2b634b3bb27b75a0ee0ba\n"
    },
    {
      "commit": "0b063d9ba7a11779667c0888e9f3495de0118b74",
      "tree": "77edd15b599b2f6e1d87d37c62c9573f2138c460",
      "parents": [
        "8a30bf23bcb1ad8d4ed9060ddbb27edbfd57a897"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 04 09:53:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 04 09:58:02 2015 -0700"
      },
      "message": "Fix NanoSleep and add test\n\nFixed a bug where tv_nsec was\u0027t between 0 and 999,999,999.\n\nBug: 14450052\nChange-Id: I30b29a716bfa63c6b57d589dd1102d2ca934c061\n"
    },
    {
      "commit": "5a1b2bff14465113280265fc856e1cae116faa25",
      "tree": "461c10588bad98e2d26b3c5f697862d9f74334a4",
      "parents": [
        "43e1bc667e66386443aee6477d767d9b8ef5aa79"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 01 16:03:49 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 01 17:09:00 2015 -0700"
      },
      "message": "Let the map function compute the relative pc.\n\nThe new packed relocations linker option creates an elf with a non-zero\nload base. It\u0027s no longer an easy task to compute the relative pc yourself\nso call the helper function to do it for us.\n\nBug: 20687795\n\n(cherry picked from commit 332ef327c2b1a5e1774ba0d1da23e07303002af9)\n\nChange-Id: I3d61c767f21a3f240a14f9e8bc6bee53b6cdb60d\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": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\n"
    },
    {
      "commit": "66d874d96d5699bb090c59f47a5a528956ca053e",
      "tree": "d59bf83a08fead7d9823230831bea63c9e43a62c",
      "parents": [
        "2cfdabd2bb4833d7092819d27ef08a9e1cdffead"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 15 09:37:19 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 09 14:46:23 2015 -0700"
      },
      "message": "Create OatFileAssistant class for assisting with oat files.\n\nThe oat file assistant is used for determining whether dex2oat or\npatchoat is needed, for running dex2oat or patchoat as needed to make\nan oat file up to date, and to load dex files associated with a given\ndex location.\n\nThe introduction of the OatFileAssistant class is meant to clean up and\nconsolidate code related to the management of oat files that was\nduplicated and spread across dalvik_system_DexFile.cc and\nclass_linker.cc.\n\nBug: 11301553\nChange-Id: I0c16027b9bae4570c2c50faa9c14f581c0cbafb8\n"
    },
    {
      "commit": "4ab52e75c782abf19ff9ebff8d19c87ec4ec97b6",
      "tree": "182699e6f100d74902790594dc0b377999332378",
      "parents": [
        "2eb5168bd9e43b80452eaee5be32c063e124886e",
        "965fd02721746d4164bc40719cd53eefab37cfb3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 02 15:50:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 02 15:50:09 2015 +0000"
      },
      "message": "Merge \"Don\u0027t require three-character extensions for dex locations.\""
    },
    {
      "commit": "00a1f5bfa57bb4007a08435ba83b029dcebde5c0",
      "tree": "a3d2562b439ba15faafafa60544eb9a342ff1bd8",
      "parents": [
        "242026e246a8b9efe098a0cce008fd525e011e5b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 13:35:39 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 20:12:47 2015 -0800"
      },
      "message": "Revert \"Revert \"Re-enable one thread dumping the native stack of another.\"\"\n\nThis reverts commit edfdaf37d5520a3c3a858b6b3fba4f759c60dadc.\n\nTests seem to succeed. Might be helpful to understand some deadlock/timeout\nsituations.\n\nBug: 15446488\nBug: 18713034\nChange-Id: I5be225363f698556221576b5827d9501e26799f3\n"
    },
    {
      "commit": "965fd02721746d4164bc40719cd53eefab37cfb3",
      "tree": "f1140d01dfc9547757fbf5e5b97a9c780a7d7503",
      "parents": [
        "01b7c431ed85e0eae4554f6fc0f79a78bc82f31f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Feb 26 11:08:57 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Feb 26 11:08:57 2015 -0800"
      },
      "message": "Don\u0027t require three-character extensions for dex locations.\n\nBug: 19437875\nChange-Id: Ib62b4c691b04f27c5d499affd5a7fd4d9f0c64f9\n"
    },
    {
      "commit": "01b7c431ed85e0eae4554f6fc0f79a78bc82f31f",
      "tree": "3d203eca0ee9c82c7e5d1fd82c9cb3e5d7375987",
      "parents": [
        "ec27dc12124d57283d8f86e5386c95896b01eb23",
        "a6dfdae1cffc78f9791348b2e1dc8f4c6c3f7128"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 25 18:12:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 25 18:12:27 2015 +0000"
      },
      "message": "Merge \"ART: Print maps directly to log\""
    },
    {
      "commit": "a6dfdae1cffc78f9791348b2e1dc8f4c6c3f7128",
      "tree": "2b07c1cc94212963ec38a2c0a784a26fe1522194",
      "parents": [
        "96ac49a260223dc00291116daa63d7489c52bb0f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 15:50:19 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 22:30:47 2015 -0800"
      },
      "message": "ART: Print maps directly to log\n\nDo not read proc maps into a string before printing them later back\nto the log. In low-memory situations this can cause a bad_alloc.\n\nExternal bug: http://b.android.com/153990\nBug: 19494774\n\nChange-Id: Ie63d8788afe8c9da65b30b2f89c50d3dbb820755\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "80b96d1a76790527f72a660ac03d9c215eed17ce",
      "tree": "8af6fb3840c60c65887cd5de64d987058bb8986e",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 19 15:50:28 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 19 18:02:20 2015 +0000"
      },
      "message": "Replace a few std::vector with ArenaVector in Mir2Lir.\n\nChange-Id: I7867d60afc60f57cdbbfd312f02883854d65c805\n"
    },
    {
      "commit": "a5afcfc73141e5e378d79a326d02c5c2039fb025",
      "tree": "424add9558fb816c4f1d2f4edd128f4f2a086d9a",
      "parents": [
        "5a3399deaf448c8434d9ba0916ff799b1b791d95"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jan 29 20:06:46 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 12 11:54:37 2015 +0000"
      },
      "message": "Be more lenient with 4 byte UTF-8 sequences.\n\nAccept 4 byte sequences and convert them into surrogate\npairs instead of expecting 2 separate 3 byte sequences\neach encoding one half of a surrogate pair.\n\nNote that in addition to supporting 4 byte sequences in\nstrings from JNI, we also tolerate them in dex files. This\nis mainly for consistency, and there\u0027s no need to claim any\nsort of official support.\n\nbug: 18848397\nbug: https://code.google.com/p/android/issues/detail?id\u003d81341\nChange-Id: Ibc98d29e59d98803e640f2489ea4c56912a59b29\n"
    },
    {
      "commit": "a1c9665c4659f4a8a3469bdb667a63a438725a17",
      "tree": "b93e59b0705aeebbbe9f402597687f24bbef0e30",
      "parents": [
        "076018addcb0f27d1a4ed9d1967a28bd5fb21230"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 06 13:18:58 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 06 14:29:43 2015 -0800"
      },
      "message": "Support map data in the backtrace data structure.\n\nThe backtrace data structure used to keep a pointer to the map data. Now\nthe code has the map data embedded in the structure and no pointers.\n\nBug: 19028453\nChange-Id: If7088a73f3c6bf1f3bc8cdd2bb4b62e7cab831c0\n"
    },
    {
      "commit": "3ef69b4692978daa620f2db2b1b057ef38c8a2f5",
      "tree": "c307bf3086e0f5a5a617225254107f17e42bc751",
      "parents": [
        "ac99db2751f1ac432a84739e7a4e011579296caf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 26 10:38:34 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 26 10:38:34 2015 -0800"
      },
      "message": "ART: Take apart stream output\n\nTo investigate bug.\n\nBug: 19028453\nChange-Id: Ib109caf2747f9adeef15dfc0f4708498e395dacf\n"
    },
    {
      "commit": "941c551acbc1fac40db89a723edc6b04d506d55c",
      "tree": "5ad00dfd62ad7004fd74ca5ba10923e493500a29",
      "parents": [
        "e81e1cd75b7dc6e44c5654e3ae329e86662ca02b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 10:38:19 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 10:38:19 2015 -0800"
      },
      "message": "ART: Only run addr2line in abort thread dumps\n\nAvoid addr2line overhead for SIGQUIT and other thread dumps.\n\nBug: 18933933\nChange-Id: I81bb291ede870d1d14b30bb0afdc47830ed14e8b\n"
    },
    {
      "commit": "1de532495b2669ce4fae9b9d20848d78d83813d8",
      "tree": "362fff8964f1f2cd52beaf5b7445cb117f9c2dc4",
      "parents": [
        "25d034cedea702c1f9ecb7a3a3ca977b07b9c3ba",
        "0a18df82f4dea95b7398f8c934341fccbf04eeee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 09 23:23:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 09 23:23:36 2015 +0000"
      },
      "message": "Merge \"Clean up some #ifdefs.\""
    },
    {
      "commit": "0a18df82f4dea95b7398f8c934341fccbf04eeee",
      "tree": "125c8285763ffc6d9c00b27eaed6a7aad5b317ee",
      "parents": [
        "553727e466942a10e11ee39dcb67e3f9562b471e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 09 15:16:16 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 09 15:16:16 2015 -0800"
      },
      "message": "Clean up some #ifdefs.\n\nOnly the Mac doesn\u0027t have POSIX clocks. (And it still doesn\u0027t, a decade\nlater.)\n\nglibc gained pthread_setname_np in 2.12.\n\nOnly the Mac doesn\u0027t have prctl.\n\nChange-Id: I218e409f7e133736e15fb68e8a254cdc5799d667\n"
    },
    {
      "commit": "00bd2da6ea009dedafc677229b485923f49ad61b",
      "tree": "a01999d4da5aec08f83fa468c0b01576a0aad94a",
      "parents": [
        "b9b26e1b036308e18113e37dfa5b81a64d1a7bd4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 09 15:05:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 09 15:05:46 2015 -0800"
      },
      "message": "ART: Fix prefix issues in Addr2line dump\n\nThe code incorrectly wrote the prefix twice for overly long lines.\n\nBug: 18933933\nChange-Id: I4bc7c2cde435bd966276ca2dae6a5d060aa2d0f3\n"
    },
    {
      "commit": "8e1cb91d2de6cacf388ca8550325fd8c21b1e58c",
      "tree": "927cef6c60ab2943b4f1692b71160a80dbfcc213",
      "parents": [
        "46af48acf4221a7f819d58dfffb576d0523ae285"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 08 20:11:09 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 09 09:49:46 2015 -0800"
      },
      "message": "ART: Use addr2line on the host for DumpNativeStack\n\nUse addr2line to attempt some better debug output for unexpected\nsignals in tests. This prints the demangled function name, source\nfile and line number (including inlined frames) when possible.\n\nBug: 18933933\nChange-Id: I4b98d0cc7bef5cdc63c7ee0882629b363778afe2\n"
    },
    {
      "commit": "9387c72720767b65b2ef27d6e922373d9ddc8d6c",
      "tree": "31def0a395d475b736ac607ca071e1cf65ec48bf",
      "parents": [
        "553727e466942a10e11ee39dcb67e3f9562b471e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 08 11:32:22 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 08 11:32:22 2015 -0800"
      },
      "message": "ART: Fix Mac build\n\nFix Mac build after change-id Id2710d2fd44b7c3b3335973a9288979a5793638b.\n\nBug: 18933933\nChange-Id: Ib0bb5082908d5dff33ef8f8a69d82c07406c176d\n"
    },
    {
      "commit": "628a61ac52a8a314e74ab445397add60b4e72a5b",
      "tree": "df78aa48e31e58669c6ae63ace7ba6bb532ec65d",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 07 22:08:35 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 08 09:35:31 2015 -0800"
      },
      "message": "ART: Pass ucontext to Backtrace in Stack Dump\n\nIn case of an unexpected signal on the host we dump the thread stack\nourselves. We have to pass the context given to the signal handler,\nas the signal handler is run on an alternate stack. Otherwise\nlibbacktrace can\u0027t dump the actual faulty part.\n\nBug: 18933933\nChange-Id: Id2710d2fd44b7c3b3335973a9288979a5793638b\n"
    },
    {
      "commit": "edfdaf37d5520a3c3a858b6b3fba4f759c60dadc",
      "tree": "4b08c00ba9bc427771413a758c669df56dbba62d",
      "parents": [
        "e652b62c581a3d68b1fc82e0b04e3a59dd633e52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 05 16:12:21 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 05 16:12:21 2014 +0000"
      },
      "message": "Revert \"Re-enable one thread dumping the native stack of another.\"\n\nThis reverts commit e652b62c581a3d68b1fc82e0b04e3a59dd633e52.\n\nChange-Id: Ida56d2c23849c1ede82a22100df402877256e270\n"
    },
    {
      "commit": "e652b62c581a3d68b1fc82e0b04e3a59dd633e52",
      "tree": "42cba0668fe1898cec136dc8a8b6f3f4ff45878c",
      "parents": [
        "c5454372f23da8248c84c29e251fb1b21c421a63"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:11:48 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:11:48 2014 -0800"
      },
      "message": "Re-enable one thread dumping the native stack of another.\n\nBug: 15446488\nChange-Id: I49d4d283f7b7d04b9d8c940313d6c5107ba9f99d\n"
    },
    {
      "commit": "08f1f50d6c2e8f247b8f5f19711d75a792851c7a",
      "tree": "dca490545d56168f7f9ae4a4616199b1b1c8ba0c",
      "parents": [
        "8443637f71a777a13317fe7635028d758a0adf97"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:04:37 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:12:27 2014 -0800"
      },
      "message": "Remove FieldHelper.\n\nChange-Id: I2d74e2d5b3c35a691c95339de0db9361847fca11\n"
    },
    {
      "commit": "83597d06cd4707b19c1985353418bd99f3aca6c7",
      "tree": "2901c93180f2003c2da6cf75eb56554aa8128a16",
      "parents": [
        "bdfbf86afde269ee3b38a6c928618333ffac13cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 20 10:29:00 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 20 10:38:51 2014 -0800"
      },
      "message": "Re-enable DumpNativeStack.\n\nBug: 15446488\nChange-Id: Icdd0b90c8abe2a361a488fc1742c6896605ddc41\n"
    },
    {
      "commit": "4545d773856203eab6b026f66a005ee75b33e1c8",
      "tree": "11cbf98145d0da4386fc0034d42576f889b0777c",
      "parents": [
        "346bcbde27e4620ed1e7bce91728f22069a371f0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 10:34:29 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 10:40:50 2014 -0800"
      },
      "message": "Disable DumpNativeStack.\n\nCauses crashes on 004-ThreadStress, already was a no-op on the target.\nBug: 15446488\n\nChange-Id: I9a1541b894087337dafa3fdde00d845f3542b141\n"
    },
    {
      "commit": "d7576328811e5103e99d31f834a857522cc1463f",
      "tree": "5c20cecc09ca8786434b663cbfcad31e56c7ac72",
      "parents": [
        "b7ce2074ef43ff221cdec6ddba953f0b0c67447b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 24 22:13:45 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 19:47:07 2014 -0800"
      },
      "message": "ART: Fix valgrind\n\nAllow ValgrindMallocSpace wrapper for RosAlloc.Requires refactoring,\nas ValgrindMallocSpace was bound to the signature of DlMallocSpace.\n\nAlso turn of native stack dumping when running under Valgrind to\nwork around b/18119146.\n\nRitzperf before and after\nMean               3190.725   3082.475\nStandard Error     11.68407   10.37911\nMode               3069       2980\nMedian             3182.5     3051.5\nVariance           16382.117  12927.125\nStandard Deviation 127.99264  113.69751\nKurtosis           1.1065632  0.3657799\nSkewness           0.9013805  0.9117792\nRange              644        528\nMinimum            2991       2928\nMaximum            3635       3456\nCount              120        120\n\nBug: 18119146\nChange-Id: I25558ea7cb578406011dede9d3d0bdbfee4ff4d5\n"
    },
    {
      "commit": "78a3233313260665fe82ba56257855e043bca3d4",
      "tree": "46622bf088b3f30d2c6d8a5b548519137c88c867",
      "parents": [
        "fe50a0f644bf57a92612d08ad21dc4ea5a2f652a",
        "277ccbd200ea43590dfc06a93ae184a765327ad0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 05 02:42:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 05 02:42:56 2014 +0000"
      },
      "message": "Merge \"ART: More warnings\""
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "e6ac4fd428a4897951aeb4cb3b45f1665276c511",
      "tree": "c8456425dcd515de5d5299c61f2254cc70acaa7c",
      "parents": [
        "457e6170ac55e4cbede79a23b021422ef4ccd92f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 04 13:03:29 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 04 13:13:48 2014 +0000"
      },
      "message": "Try to fix mac build.\n\nChange-Id: I6c7faa1c80bc7c250d14859d51c910d50b7fb562\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\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": "c0d8229898c44c0f604f08a5df1de83ff56c18fd",
      "tree": "13b150e68e806204c547e04bc071246c06199c37",
      "parents": [
        "c70535b4f9f1ff3e3da451734bb7d9601012ccc1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 10:38:30 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 11:40:16 2014 -0700"
      },
      "message": "ART: Better IllegalAccessException message\n\nBug: 17618578\nBug: 17614623\nChange-Id: I0e3f15e676acd6ed5844fc86e136f75cc335372d\n"
    },
    {
      "commit": "76433275dbe39e5ced1c223b006d1b900b1937f6",
      "tree": "a72c101defa86ceff8b633cf2eaa606c87f783eb",
      "parents": [
        "88adf36315237947d3a5d10b28fdf8b9da7794a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 14:32:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 19:54:39 2014 -0700"
      },
      "message": "Optimize get/set reflection performance\n\nSpeedups mostly from reducing how often access checks are needed,\nand adding more inlining, and adding templates.\n\nField_getInt from ~850ns -\u003e 350ns.\nField_setInt from ~900ns -\u003e 370ns.\n\nBug: 14063288\n\n(cherry picked from commit ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)\n\nChange-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8\n"
    },
    {
      "commit": "3c13a794845e0cf7887e33b2ec20de7e6ba85f8f",
      "tree": "ab9a9a426a371de0c32e48a85fdda44a321a06a0",
      "parents": [
        "5cdd0734d2f79eedc530f5f1e876cd2110e29c86"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:43:07 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n(cherry picked from commit 33c36d4f22ab6a5e61eb47b654deaf647c34e49c)\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "68b56858367e29461ae290fd797443a1ef6d8005",
      "tree": "c086a68bcbbb50d7c3b829bcc7d4231ff815db4a",
      "parents": [
        "7c7686e62d262f1823876cebb3700e20f967dd56"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 29 20:19:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 02 08:01:04 2014 -0700"
      },
      "message": "Reduce and speed-up class def searches.\n\nUse the class linker for descriptor lookups from the compile driver so that\ndex caches are populated.\nReduce the scope of functions for scanning class paths to just the class\nlinker where they are performed.\nIf we see more than a threshold number of find class def misses on a dex file\nlazily compute an index, so that future lookups are constant time (part of the\ncollection code is taken from\nhttps://android-review.googlesource.com/#/c/103865/3). Note that we take a lazy\napproach so that we don\u0027t serialize on loading dex files, this avoids the\nreason the index was removed in 8b2c0b9abc3f520495f4387ea040132ba85cae69.\nRemove an implicit and unnecessary std::string creation for PrintableString.\n\nSingle threaded interpret-only dex2oat performance is improved by roughly 10%.\n\nBug: 16853450\n\nChange-Id: Icf72df76b0a4328f2a24075e81f4ff267b9401f4\n"
    },
    {
      "commit": "0ed6c6f72eea586c684cb3e2bc7037deff87d1ba",
      "tree": "48604c0b533374031927b41f201ce13be5d80ef5",
      "parents": [
        "14515d738dadf88e3e00b7dd1bd69899c4df4b91",
        "839cc30467d51414e8185eee6101e19f5ab20871"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 22:25:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 28 22:25:35 2014 +0000"
      },
      "message": "Merge \"Move the glibc unlimited stack hack into GetThreadStack.\""
    },
    {
      "commit": "7895d554d17309db67737b6750c59d8cece213e3",
      "tree": "cf4cadff03997851247f9be8559cb739e4bb026b",
      "parents": [
        "79e909bc9d95c3952be85af846ba8bda344531f5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 28 14:55:56 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 28 15:08:54 2014 -0700"
      },
      "message": "Fix an assert failure in art::DumpNativeStack().\n\nWhen ThreadList::SuspendAll() times out (and aborts),\nUnsafeLogFatalForThreadSuspendAllTimeout() will call\nart::DumpNativeStack() but it does not have the mutator lock\nshared-locked (as it failed while trying to exclusive-lock the mutator\nlock) and the AssertSharedHeld() on the mutator lock fails. It\u0027s an\nassert failure nested in an time-out abort.\n\nThis change avoids it by letting it print the native method frame info\nonly if the thread has a shared lock on the mutator lock, as opposed\nto asserting that it has a shared lock.\n\nChange-Id: I17851ebcaa37f4f67086c15243a2cffea3997a02\n"
    },
    {
      "commit": "839cc30467d51414e8185eee6101e19f5ab20871",
      "tree": "dc6ff18729eb3180140bb1cd71e17b8ab9c443b7",
      "parents": [
        "83c115930b403db2b6b38d9dcb4828e31feb792f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 10:24:44 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 10:27:43 2014 -0700"
      },
      "message": "Move the glibc unlimited stack hack into GetThreadStack.\n\nOptional cleanup that was previously a TODO.\n\nBug: 17111575\nChange-Id: I7c20dbf1fdbcaf4604d7b55552930c10e166539d\n"
    },
    {
      "commit": "6d3fc5615612e500a00aba0a0d331436fae8d996",
      "tree": "5a6426ee19d6398dbc38175b53a71a0b1fb7fad0",
      "parents": [
        "dbc0ca70bcee22561c2f0ab7129a7721369e9aea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 27 11:47:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 28 09:56:32 2014 -0700"
      },
      "message": "Actually ask the pthread implementation for the stack guard size.\n\n(cherry-pick 307091dc306c34ce9e4ee6cc3b467807b3a3bd12.)\n\nBug: 17111575\nChange-Id: I23919b1e8aeff627a65daf57f1109bec60b196cc\n"
    },
    {
      "commit": "49e36ec1b3457f529d9404a33ff9c92921e3dde9",
      "tree": "d5ed6c0057cc9cc95d44f9a03960b60184a324dd",
      "parents": [
        "92502ab7570dfa28c98ab6781a1c5b9f8b8748bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 20:18:18 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 20:18:18 2014 -0700"
      },
      "message": "Kill HAVE_ANDROID_PTHREAD_SETNAME_NP.\n\nAll it means is __BIONIC__ anyway.\n\nChange-Id: I3ef4ef1a14d0a77c75539f2ab533ee2f3964e1a5\n"
    },
    {
      "commit": "323aa865a8238d6e2174533464a252cb1606afda",
      "tree": "dfaec4edde60d2bc35cc26e3202c2384cde67cae",
      "parents": [
        "76bc718dc2cf0279ec5afd08c3a82b6ad61756d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 15:00:04 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 15:00:04 2014 -0700"
      },
      "message": "bionic has always had gettid.\n\ndex2oat calls GetTid for every line it outputs via Message, which is why\nthis showed up so much in strace.\n\nBug: 17049821\nChange-Id: Ib51c7f88410b291692874023902cf43f4b9a9d1c\n"
    },
    {
      "commit": "e3ea83811d47152c00abea24a9b420651a33b496",
      "tree": "dd3b8018176ada85d51b2f8ca46e515fbf55b50f",
      "parents": [
        "9dcf75c80187504ec88e7ef91d64a6a68279eb9d"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Fri Aug 08 16:29:38 2014 +0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Fri Aug 15 15:04:12 2014 -0700"
      },
      "message": "ART source line debug info in OAT files\n\nOAT files have source line information enough for ART runtime needs like\njump to/from interpreter and thread suspension. But this information\nis not enough for finer grained source level debugging and low-level\nprofiling (VTune or perf).\n\nThis patch adds to OAT files two additional sections:\n.debug_line - DWARF formatted Elf32 section with detailed source line\n              information (mapping from native PC to Java source lines).\n\nIn addition to the debugging symbols added using the dex2oat option\n--include-debug-symbols, the source line information is added to\nthe section .debug_line.\n\nThe source line info can be read by many Elf reading tools like objdump,\nreadelf, dwarfdump, gdb, perf, VTune, ...\n\ngdb can use this debug line information in x86. In 64-bit mode\nthe information can be used if the oat file is mapped in the lower\naddress space (address has higher 32 bits zeroed). Relocation works.\n\nTesting:\n1. art/test/run-test --host --gdb [--64] 001-HelloWorld\n2. in gdb: break Main.java:19\n3. in gdb: break Runtime.java:111\n4. in gdb: run  - stops at void java.lang.Runtime.\u003cinit\u003e()\n5. in gdb: backtrace  - shows call stack down to main()\n6. in gdb: continue - stops at void Main.main() (only in 32-bit mode)\n7. in gdb: backtrace  - shows call stack down to main()\n8. objdump -W \u003coat-file\u003e - addresses are from VMA range of .text\n   section reported by objdump -h \u003cfile\u003e\n9. dwarfdump -ka \u003coat-file\u003e - no errors expected\n\nSize of aosp-x86-eng boot.oat increased by 11% from 80.5Mb to 89.2Mb\nwith two sections added .debug_line (7.2Mb) and .rel.debug (1.5Mb).\n\nChange-Id: Ib8828832686e49782a63d5529008ff4814ed9cda\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "1ff3c98775a4577cf053dba9a0c2d5c21c07b298",
      "tree": "2d09c27c69678b53b4c9dc486024f3547efd4bca",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 02:30:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 16:08:05 2014 -0700"
      },
      "message": "Avoid use of std::string where we have const char*.\n\nRemoving the ClassHelper caused std::string creation for all calls to\nClass::GetDescriptor and a significant performance regression. Make the\nstd::string an out argument so the caller can maintain it and its life time\nwhile allowing GetDescriptor to return the common const char* case.\n\nDon\u0027t generate GC maps when compilation is disabled.\n\nRemove other uses of std::string that are occuring on critical paths.\nUse the cheaper SkipClass in CompileMethod in CompilerDriver.\nSpecialize the utf8 as utf16 comparison code for the common shorter byte\nencoding.\nForce a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing\ncode), add some LIKELYs.\n\nx86-64 host 1-thread interpret-only of 57 apks:\nBefore: 29.539s\nAfter: 23.467s\n\nRegular compile:\nBefore: 1m35.347s\nAfter: 1m20.056s\n\nBug: 16853450\nChange-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad\n"
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "547cdfd21ee21e4ab9ca8692d6ef47c62ee7ea52",
      "tree": "078d52b6025fc1e42b7343550b0dbbdad69eafac",
      "parents": [
        "8b62dc0f993d0445401655fc274e5225498fa81c"
      ],
      "author": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Tue Aug 05 01:54:19 2014 -0700"
      },
      "committer": {
        "name": "Tong Shen",
        "email": "endlessroad@google.com",
        "time": "Tue Aug 05 11:11:33 2014 -0700"
      },
      "message": "Emit CFI for x86 \u0026 x86_64 JNI compiler.\n\nNow for host-side x86 \u0026 x86_64 ART, we are able to get complete stacktrace with even mixed C/C++ \u0026 Java stack frames.\n\nTesting:\n1. art/test/run-test --host --gdb [--64] --no-relocate 005\n2. In gdb, run \u0027b art::Class_classForName\u0027 which is implementation of a Java native method, then \u0027r\u0027\n3. In gdb, run \u0027bt\u0027. You should see stack frames down to main()\n\nChange-Id: I2d17e9aa0f6d42d374b5362a15ea35a2fce96302\n"
    },
    {
      "commit": "6e183f2e973a20f2eaca135c240908e1bf98c5d0",
      "tree": "8a989eb8dbaca6a2c505569784740f9581fe7e98",
      "parents": [
        "eb76e11d836ea953b4e40a28e3e69d3b0f4c86fa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 18 14:57:04 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 05 10:22:08 2014 -0700"
      },
      "message": "Make system use patchoat to relocate during runtime.\n\nChange dalvik_system_DexFile.cc so that isDexOptNeededInternal will be\nable to indicate that a patchoat is required. Change default of relocate\noption to be on.\n\nBug: 15358152\n\nChange-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\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": "829b4bad12a34c90734e73d4460d571db812372c",
      "tree": "f13c63bae67687eb3ed17dd7aa84568d3d1a1f95",
      "parents": [
        "fee5586dac3bf22a31dbbffe7b4ca7e978e53185"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 26 13:49:36 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 26 13:49:36 2014 -0700"
      },
      "message": "ART: Change sprintf to snprintf\n\nUse of sprintf is discouraged. Change to snprintf in utils.cc. Avoids\na warning with GCC 4.9.\n\nChange-Id: I03cc13a0f00dff07e8b775584ece9c4e4a64e590\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": "f5997b4d3f889569d5a2b724d83d764bfbb8d106",
      "tree": "f0d3b3890a604a8b3c4c87c0f408f86df041690e",
      "parents": [
        "9658d24deaa9bd07781bfac860d2a6dd89066d55"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 20 10:37:54 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 24 13:45:05 2014 -0700"
      },
      "message": "More advanced timing loggers.\n\nThe new timing loggers have lower overhead since they only push into\na vector. The new format has two types, a start timing and a stop\ntiming. You can thing of these as brackets associated with a\ntimestamp. It uses these to construct various statistics when needed,\nsuch as: Total time, exclusive time, and nesting depth.\n\nChanged PrettyDuration to have a default of 3 digits after the decimal\npoint.\n\nExaple of a GC dump with exclusive / total times and indenting:\nI/art     (23546): GC iteration timing logger [Exclusive time] [Total time]\nI/art     (23546):   0ms InitializePhase\nI/art     (23546):   0.305ms/167.746ms MarkingPhase\nI/art     (23546):     0ms BindBitmaps\nI/art     (23546):     0ms FindDefaultSpaceBitmap\nI/art     (23546):     0ms/1.709ms ProcessCards\nI/art     (23546):       0.183ms ImageModUnionClearCards\nI/art     (23546):       0.916ms ZygoteModUnionClearCards\nI/art     (23546):       0.610ms AllocSpaceClearCards\nI/art     (23546):       1.373ms AllocSpaceClearCards\nI/art     (23546):     0.305ms/6.318ms MarkRoots\nI/art     (23546):       2.106ms MarkRootsCheckpoint\nI/art     (23546):       0.153ms MarkNonThreadRoots\nI/art     (23546):       4.287ms MarkConcurrentRoots\nI/art     (23546):     43.461ms UpdateAndMarkImageModUnionTable\nI/art     (23546):     0ms/112.712ms RecursiveMark\nI/art     (23546):       112.712ms ProcessMarkStack\nI/art     (23546):     0.610ms/2.777ms PreCleanCards\nI/art     (23546):       0.305ms/0.855ms ProcessCards\nI/art     (23546):         0.153ms ImageModUnionClearCards\nI/art     (23546):         0.610ms ZygoteModUnionClearCards\nI/art     (23546):         0.610ms AllocSpaceClearCards\nI/art     (23546):         0.549ms AllocSpaceClearCards\nI/art     (23546):       0.549ms MarkRootsCheckpoint\nI/art     (23546):       0.610ms MarkNonThreadRoots\nI/art     (23546):       0ms MarkConcurrentRoots\nI/art     (23546):       0.610ms ScanGrayImageSpaceObjects\nI/art     (23546):       0.305ms ScanGrayZygoteSpaceObjects\nI/art     (23546):       0.305ms ScanGrayAllocSpaceObjects\nI/art     (23546):       1.129ms ScanGrayAllocSpaceObjects\nI/art     (23546):       0ms ProcessMarkStack\nI/art     (23546):   0ms/0.977ms (Paused)PausePhase\nI/art     (23546):     0.244ms ReMarkRoots\nI/art     (23546):     0.672ms (Paused)ScanGrayObjects\nI/art     (23546):     0ms (Paused)ProcessMarkStack\nI/art     (23546):     0ms/0.610ms SwapStacks\nI/art     (23546):       0.610ms RevokeAllThreadLocalAllocationStacks\nI/art     (23546):     0ms PreSweepingGcVerification\nI/art     (23546):   0ms/10.621ms ReclaimPhase\nI/art     (23546):     0.610ms/0.702ms ProcessReferences\nI/art     (23546):       0.214ms/0.641ms EnqueueFinalizerReferences\nI/art     (23546):         0.427ms ProcessMarkStack\nI/art     (23546):     0.488ms SweepSystemWeaks\nI/art     (23546):     0.824ms/9.400ms Sweep\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       0.214ms SweepZygoteSpace\nI/art     (23546):       0.122ms SweepMallocSpace\nI/art     (23546):       6.226ms SweepMallocSpace\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       2.144ms SweepLargeObjects\nI/art     (23546):     0.305ms SwapBitmaps\nI/art     (23546):     0ms UnBindBitmaps\nI/art     (23546):   0.275ms FinishPhase\nI/art     (23546): GC iteration timing logger: end, 178.971ms\n\nChange-Id: Ia55b65609468f212b3cd65cda66b843da42be645\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe",
      "tree": "3d3f667c8232a9c1bb6fe9daea0d364f9ae01d8c",
      "parents": [
        "2e1ca953c7fb165da36cc26ea74d3045d7e272c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 21 17:43:44 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 09 12:46:32 2014 -0700"
      },
      "message": "Change MethodHelper to use a Handle.\n\nAdded ConstHandle to help prevent errors where you modify the value\nstored in the handle of the caller. Also fixed compaction bugs\nrelated to not knowing MethodHelper::GetReturnType can resolve types.\nThis bug was present in interpreter RETURN_OBJECT.\n\nBug: 13077697\n\nChange-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3\n"
    },
    {
      "commit": "4479ba35389b03ccc9eabd17fba6168f9505517a",
      "tree": "fb8091b4637b27d8a9d3d4f390b79263a12d9881",
      "parents": [
        "081203e06534e4aa27a942e47084289eecab29ed",
        "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 23:37:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 23:37:27 2014 +0000"
      },
      "message": "Merge \"Change FieldHelper to use a handle.\""
    },
    {
      "commit": "576ca0cd692c0b6ae70e776de91015b8ff000a08",
      "tree": "de632fae7ee9f096e7a2c54a7fcdace8f6ae7106",
      "parents": [
        "e21bf0099117b82963cdf7f95a1b8dabfcf29397"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 15:58:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 16:27:45 2014 -0700"
      },
      "message": "Reduce header files including header files.\n\nMain focus is getting heap.h out of runtime.h.\n\nChange-Id: I8d13dce8512816db2820a27b24f5866cc871a04b\n"
    }
  ],
  "next": "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb"
}
