)]}'
{
  "log": [
    {
      "commit": "dbd05fe1a6ed2c3e23c9f6b372dd439ad59e777b",
      "tree": "81968f4f0a16cb37b57933be5cea6542795488a1",
      "parents": [
        "1d2d8b1b6b359f5f476ef78662baa4b8782be530"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Aug 10 11:41:35 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Aug 10 11:57:53 2017 +0100"
      },
      "message": "Revert recent JIT code cache changes\n\nFlakiness observed on the bots.\n\nRevert \"Jit Code Cache instruction pipeline flushing\"\nThis reverts commit 56fe32eecd4f25237e66811fd766355a07908d22.\n\nRevert \"ARM64: More JIT Code Cache maintenace\"\nThis reverts commit 17272ab679c9b5f5dac8754ac070b78b15271c27.\n\nRevert \"ARM64: JIT Code Cache maintenance\"\nThis reverts commit 3ecac070ad55d433bbcbe11e21f4b44ab178effe.\n\nRevert \"Change flush order in JIT code cache\"\nThis reverts commit 43ce5f82dae4dc5eebcf40e54b81ccd96eb5fba3.\n\nRevert \"Separate rw from rx views of jit code cache\"\nThis reverts commit d1dbb74e5946fe6c6098a541012932e1e9dd3115.\n\nTest: art/test.py --target --64\nBug: 64527643\nBug: 62356545\nChange-Id: Ifa10ac77a60ee96e8cb68881bade4d6b4f828714\n"
    },
    {
      "commit": "ff80dfc82a3e5177d45099c090e33f1a060f9152",
      "tree": "9ee750c2766161d310a625450ada830bc91230b2",
      "parents": [
        "9710fbaea9022149887da4459b47011a803c76fb",
        "56fe32eecd4f25237e66811fd766355a07908d22"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 25 08:23:46 2017 +0000"
      },
      "message": "Merge \"Jit Code Cache instruction pipeline flushing\""
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "56fe32eecd4f25237e66811fd766355a07908d22",
      "tree": "7c2c75d54edf0865598c106cb013f8c3794bd767",
      "parents": [
        "84b65e977302e1cf16d188636c22c164c7793554"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 21 11:42:10 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jul 24 17:29:40 2017 +0100"
      },
      "message": "Jit Code Cache instruction pipeline flushing\n\nRestores instruction pipeline flushing on all cores following crashes\non ARMv7 with dual JIT code page mappings. We were inadvertantly\ntoggling permission on a non-executable page rather than executable.\n\nRemoves the data cache flush for roots data and replaces it with a\nsequentially consistent barrier.\n\nFix MemMap::RemapAtEnd() when all pages are given out. To meet\ninvariants checked in the destructor, the base pointer needs to be\nassigned as nullptr when this happens.\n\nBug: 63833411\nBug: 62332932\nTest: art/test.py --target\nChange-Id: I705cf5a3c80e78c4e912ea3d2c3c4aa89dee26bb\n"
    },
    {
      "commit": "d1dbb74e5946fe6c6098a541012932e1e9dd3115",
      "tree": "7c3ad5ffd888ea97ee24e255bccb7c1a7acf4466",
      "parents": [
        "2f0ac4fb4486e7d9e5c1545d45a2b9b818a80dc3"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Jul 17 11:20:38 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 18 11:38:13 2017 -0700"
      },
      "message": "Separate rw from rx views of jit code cache\n\nCreate two separate mappings of the ashmem region used for the JIT code\ncache.  These two mappings have unrelated addresses.\n\nBug: 62356545\nTest: make -j test-art-target\nChange-Id: If176552e6d72ef71e17c96994901f3f3baac44f6\n"
    },
    {
      "commit": "651ba599961ff0cdc36e83d3d58b1744d37ee9f7",
      "tree": "f60270aff206747ba47688f359b265931697d706",
      "parents": [
        "4f647ebe819667658957c2c3b6bceec3b572e853"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 14 14:41:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 14 14:44:19 2017 -0700"
      },
      "message": "ART: Split out PROT_EXEC from custom low-4GB allocator\n\nTo address the known issue that denials for executable memory can\nlead to the custom low-4GB allocator being very slow, split the\nallocation into two parts. First allocate without PROT_EXEC, then\ntry to mprotect with the originally requested flags.\n\nBug: 36138508\nTest: m test-art-host\nTest: m SANITIZE_TARGET\u003daddress SANITIZE_LITE\u003dtrue ; asanwrapper for system_server\nChange-Id: Ic18621f5b5c619ea1a3ad861c1f764886dc6f2a2\n"
    },
    {
      "commit": "8375e4f918cd409be6155f8c7b323a203c090e7e",
      "tree": "114ef9fcdd1f14fc4e0e54b26264f0fefbf75a22",
      "parents": [
        "05ae67444e15c9281582ef1fc45c4558d286040e",
        "f45d61c0866461c9476f17644b27dc0664d507c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 09 16:31:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 09 16:31:44 2017 +0000"
      },
      "message": "Merge \"ART: Fix or disable some tidy warnings.\""
    },
    {
      "commit": "f45d61c0866461c9476f17644b27dc0664d507c5",
      "tree": "95d2837a03d451cccd82cad61924980beb5fd0d4",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 07 10:29:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 17:19:51 2017 -0700"
      },
      "message": "ART: Fix or disable some tidy warnings.\n\nAdd a strlcpy shim for the host, so we can use strlcpy instead of\nstrcpy everywhere.\n\nFixed warnings include unused-decls, (some) unreachable code, use\nafter std::move, string char append, leaks, (some) excessive padding.\n\nDisable some warnings we cannot or do not want to avoid.\n\nBug: 32619234\nTest: m\nTest: m test-art-host\nChange-Id: Ie191985eebb160d94b988b41735d4f0a1fa1b54e\n"
    },
    {
      "commit": "3b7dc35f4e5c4d86c73b6784b7ee0df701c68ec2",
      "tree": "1e3a56846ec63148142ac6fb1fef214129f4a05e",
      "parents": [
        "8228cdf4ad6322ec8133564aaa51f966d36c0f17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 06 20:02:03 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:20 2017 -0700"
      },
      "message": "ART: Clean up allocator.h\n\nMove the single-use typedefs to their users. Remove now-unused\nincludes. Fix up transitive includes.\n\nTest: m\nChange-Id: I953d774b28f1e4f3191f96943e3a69ce66aa398a\n"
    },
    {
      "commit": "7c928f0f9c56321babadab20e398e646f819a47d",
      "tree": "bc84e795a611e2ccd158eac0c54e709011266a3f",
      "parents": [
        "c3e822bde47305d178a8014f51ff9fba59d70d1e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 05 17:23:44 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 09:47:26 2017 -0700"
      },
      "message": "Combine madvise for clearing region space\n\nReduce how many madvise calls there are so that the mmap semaphore\nhas less contention.\n\nReduces the number of madvice calls from clearing regions when doing\nfew random camera gestures by ~80%.\n\nTest: test-art-host\nBug: 62194020\n\n(cherry picked from commit 1f0dc6f98833ece47617e45e3ad9689f4b248b80)\n\nChange-Id: I506722f3d26d392278fdc68120bb64eec0768ddf\n"
    },
    {
      "commit": "0dfc315a096bf5678cb5182771e3fdcca8ea4433",
      "tree": "ac04fef45e7d002734d3d79b9ab9a128cb5dc263",
      "parents": [
        "291ce17ada5a126be99f0fc069a028d2100bcf9e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 07:58:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 14:18:45 2017 -0700"
      },
      "message": "ART: More header cleanup - mem_map.h\n\nMove MemMap maps_ into cc file and move allocator include. Remove\nother unused includes. Force clients to import sys/mman.h if they\nneed it. Try to lower dependencies on ART by using libbase helpers\nmore.\n\nTest: mmma art\nChange-Id: I8f31e5f371789b3d72e12af377181fee2ac9a611\n"
    },
    {
      "commit": "3c3c4a1da1e8c03e78813d175a9974fb9f1097ea",
      "tree": "8f93825423a9cfa2ab591de05a1399990f2df12f",
      "parents": [
        "ea36aaf1ebd5342e24ea414d0b797b25eb8d7936"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 21 16:49:59 2017 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 24 10:22:06 2017 -0800"
      },
      "message": "Improve the region space memory mapping.\n\nAdd a region space mmap fallback when the initial address isn\u0027t\navailable.\n\nClean up around the asan-specific base address.\n\nAdd MemMap::AlignBy to align the region space base address by the\nregion size, which is currently required by ReadBarrierTable.\n\nDisable some read barriers in ZygoteCompactingCollector to avoid a\nDCHECK failure in LockWord::SetMarkBitState when classes are in the\nforward state due to unnecessary read barriers on\nSizeOf/VisitReference.\n\nBug: 12687968\nTest: test-art-host with CC and CMS.\nTest: marlin-userdebug_asan_coverage boot.\nTest: angler boots with CC and CMS.\n\nChange-Id: I70f99779df6acc1b64cab6402f3ef7c73ce5b39b\n"
    },
    {
      "commit": "66b1d575d3be1de84c50623a0485792dfffce6cc",
      "tree": "e3a40edb621731958d8bf870734fe60729b98989",
      "parents": [
        "806ac631e53f12061cb0ae7640aa9cd0dd79243d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 10 18:41:39 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 10 18:42:21 2017 -0800"
      },
      "message": "Use null error_msg for pic images\n\nReduces 20ms of overhead for reading proc maps when the map can\u0027t be\nplaced at the optimal address.\n\nBug: 34927277\n\nTest: test-art-host \u0026\u0026 device boot\n\nChange-Id: Ib91fff2b832f61c49e67edcd2b7a222ab4409984\n"
    },
    {
      "commit": "1b14fb8bc459c3f91ed9fc1ff2e6c011c3d0a0f9",
      "tree": "ac561b61e2bc75adbc3aaa6ea8154946f55bbaf1",
      "parents": [
        "7b220d60e3cb58c384a0d245106406080c6f3e37"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 10:42:11 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 06 11:54:10 2017 -0800"
      },
      "message": "Remove Mutex dependency from MemMap\n\nUse std::mutex to remove the dependency between MemMap and Mutex/Thread,\nwhich depend upon Runtime.  Next step towards making dexdump2 build and\nrun on Windows.\n\nBug: 22322814\nTest: test-art\nChange-Id: Ia6f4ef882dcef516ee83a81e965b3d744ce325b0\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "58a73d2542f95dfd0535ceaa00eedefe198074a1",
      "tree": "dd7851c379b91949f5947e2f79791bb9f320005b",
      "parents": [
        "c23d5e478365914f08477b7aca151a140e063b55"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:49:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 22:42:47 2016 +0000"
      },
      "message": "Don\u0027t use ashmen when kIsTargetLinux is set.\n\nTest: get JIT enabled when running ART.\nChange-Id: Ic1c351601d8e85ba6597c3b400fa0094e070a56a\n"
    },
    {
      "commit": "1da4508b9a1225966ffc369529f8672f9e5d587f",
      "tree": "821d37ff21f43a54f066bc1877db6a6203f0471b",
      "parents": [
        "d1d24926aca468c1f6053cc020b8b95412ec157b",
        "a5c61bf479453e7e195888afb4e62a9872d6be7c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 26 08:59:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 26 08:59:38 2016 +0000"
      },
      "message": "Merge \"Fall back to true anonymous mmap if out of file descriptors.\""
    },
    {
      "commit": "d1d24926aca468c1f6053cc020b8b95412ec157b",
      "tree": "f3b5ed328a6abe127093ddac632816a6e774d079",
      "parents": [
        "75dccb7238714358fca9e5e993e4daabe24af085",
        "dea2552fa220b944acb2c40fa07b8ef6095b38c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 26 08:46:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 26 08:46:20 2016 +0000"
      },
      "message": "Merge \"Remove unused std::ostringstream variable.\""
    },
    {
      "commit": "dea2552fa220b944acb2c40fa07b8ef6095b38c5",
      "tree": "66a2234d552d7cd2c4efade2aa55f74394e27d26",
      "parents": [
        "3667e26de4856cccf24bcbab54ad3349a05267c0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 25 08:52:31 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 25 08:52:31 2016 +0100"
      },
      "message": "Remove unused std::ostringstream variable.\n\nTest: m build-art-host\nChange-Id: I44b6aab9192c2b1d01cc35bcfd029e3cf52e0d2d\n"
    },
    {
      "commit": "a5c61bf479453e7e195888afb4e62a9872d6be7c",
      "tree": "b517151377a1293612b9d2d2a04e696ad1036743",
      "parents": [
        "3667e26de4856cccf24bcbab54ad3349a05267c0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Oct 24 15:54:44 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 25 08:37:31 2016 +0100"
      },
      "message": "Fall back to true anonymous mmap if out of file descriptors.\n\nMemMap::MapAnonymous needs a file descriptor to create an ashmem\nregion to label otherwise anonymous mmaps for debugging purposes. If\nthe process has no file descriptors available, fall back to\ntraditional anonymous mmap rather than failing.\n\nTest: m test-art-host, m test-art-target\nBug: 32013594\nBug: 32302133\nChange-Id: I6b2c770fc031eb8d429407f3a0e7408c52cb1985\n"
    },
    {
      "commit": "6e6078ab06e16bb4032b363316360f3b76685e30",
      "tree": "539b5b28159f2b8e6a3893b03915c65c91474761",
      "parents": [
        "3209925b7c0e173741885e63f747af16dac78469"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 24 15:45:41 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 24 19:23:06 2016 -0700"
      },
      "message": "Clear (madvise) card table for CC\n\nSince the cards are not really used, we can madvise them to reduce\nRAM. Image and zygote cards are cleared in pause to prevent races\nbetween with mutators.\n\nPause time goes up by only 1.5us on N6P maps:\n(Paused)ClearCards: Sum: 755us 99% C.I. 0.250us-28us Avg: 1.540us Max: 28us\n\nAOSP N6P before (60s after boot system wide CC):\n4,194K: .GC\n4,172K: .GC\n4,110K: .GC\n\nAfter:\n3,253K: .GC\n3,205K: .GC\n3,245K: .GC\n\nBug: 12687968\n\nTest: test-art-host\n\nChange-Id: I3194b5b8044c2dca427302c32d9974920fecb289\n"
    },
    {
      "commit": "43e10b031e3bb42df54adf8f0525a29d2b308a4e",
      "tree": "ea914f7c0061817f51449d15b900e6c1878e5cc8",
      "parents": [
        "edec0eb18d9a45d994acec9e8e509a1dc05bd5b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 17:17:34 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 20:54:09 2016 -0700"
      },
      "message": "ART: Replace ScopedFd with FdFile\n\nFdFile can now be used like ScopedFd. Remove ScopedFd.\n\nBug: 21192156\nTest: m test-art-host\nTest: m test-art-target (shamu)\nChange-Id: I32115fa8b2b8bb5aa5d1886eae63522f80ce836b\n"
    },
    {
      "commit": "58c0b44694191353d80eb41be5121cd4179bff6d",
      "tree": "acf89700755eccbf17ee41ff16c887d647c50e97",
      "parents": [
        "83eab26cf28c1937f23b017be8a5f3513a83c4ec",
        "56f8b5631ab2874dc2ec385802e38555acac0d90"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 17 23:57:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 17 23:57:14 2016 +0000"
      },
      "message": "Merge \"Add lock when iterating over BacktraceMap.\""
    },
    {
      "commit": "56f8b5631ab2874dc2ec385802e38555acac0d90",
      "tree": "d418ebcc7af2f5035a175c46ef3b2a413b0bc69c",
      "parents": [
        "abdda2fb52eb7e9a6916899a913f78251d8ed277"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 16 23:19:36 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 16 23:19:36 2016 -0700"
      },
      "message": "Add lock when iterating over BacktraceMap.\n\nIn order to avoid a race condition in the maps data, acquire\na read lock while iterating over the maps data.\n\nBug: 29387050\nChange-Id: I7d484cac11503be060a9309bc886d1e5441a57b2\n"
    },
    {
      "commit": "7fa55781338aeb404ecd9a1a22799f847680199e",
      "tree": "3b4e60f5564ed8480d1f101a6ca1d3a9085fba66",
      "parents": [
        "9e276662b57d0cc8b4e76afbdf00fae5ead882ee"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 15 17:45:01 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 15 18:20:29 2016 -0700"
      },
      "message": "ART: Fix ImageSpace::Init\n\nRefactor ImageSpace::Init. Fix a case of using nullptr for error_msg\nwhere it was unsafe. Instead fix the remaining case of verbose map\ndumping.\n\nAlso fixes the stack frame size issue on x86-64.\n\nChange-Id: I7d3ba05100592b5a44a29b34349edd8a44b4a72f\n"
    },
    {
      "commit": "3071f80075de7ecc434b668bfc4b3f3e09cdc8fd",
      "tree": "8191cce741e0986dea3c7338ea5efc5ce2820b5e",
      "parents": [
        "bb661c0f0cb72d4bbfc2e251f6ded6949a713292"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Thu Mar 31 17:15:53 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:44 2016 +0100"
      },
      "message": "Patch for compiling art to run on linux target\n\nThis patch extends the build system to compile art for an aarch64\nlinux target.\n\nChange-Id: If7fa10fcbb2a6e02a969f244be6e8354e36b6873\n"
    },
    {
      "commit": "7ec0904eac1d799d3443b4c5e83545b72eae9ad3",
      "tree": "cbe1cc9f04f5987189a26efefe849aa5f97e0420",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 01 17:20:49 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 04 14:22:38 2016 -0700"
      },
      "message": "ART: Dump less maps\n\nSecurity has been tightened, so there are situations where we can\u0027t\nload our files, and produce \"log spam.\"\n\nBug: 27925454\n\n(cherry picked from commit dfd7b70bbab8157fb385e4a6d6e4b55ae2e4e892)\n\nChange-Id: Ia8c76184ea5087d625cf52d4459f8a557eebfafe\n"
    },
    {
      "commit": "29ab360433e0360bcccafb791b1231fe63914974",
      "tree": "fcfe7aea71d98322af9d56cb19b9b6cac478f461",
      "parents": [
        "9dd26b2e68ce2b153fc7c5c6b0ad6458a60ea6f5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 08 15:17:21 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 08 15:42:17 2016 -0800"
      },
      "message": "Fix valgrind errors with MemMap::Sync().\n\nThis fixes valgrind-test-art-host-gtest-oat_test and one error in\nvalgrind-test-art-host-gtest-image_test32.\n\nValgrind doesn\u0027t like it if an address range that contains noaccess or\nuninitialized memory is passed to msync(). Temporarily lift the noaccess\nprotection of the lower-end redzone because msync accepts a page-aligned\nbase address only and exclude the higher-end noaccess redzone from the\nrange.\n\nBug: 27552451\nBug: 27384445\nChange-Id: I8ccbd04c62eb30f6c6d5c732f1eb254fa09a417a\n"
    },
    {
      "commit": "83723aedac536fd8a3cd6e1662dbd6260e576194",
      "tree": "b49882ff8afa010fcdc06b4d58212f13ab646acf",
      "parents": [
        "c37a3eb8180d6488466961239eabc9ab0712bd05"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 24 10:09:23 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 24 10:59:00 2016 -0800"
      },
      "message": "Add MapAnonymous handling for null error_str\n\nWe use MapAnonymous with null error_str for app image loading when\nwe want to fail quickly. Also avoid doing CheckNonOverlapping in\nCheckMapRequest if error_msg is null. The result from\nCheckNonOverlapping is unused and CheckNonOverlapping is slow since\nit creates a backtrace map.\n\nBug: 22858531\nBug: 26746779\nChange-Id: I8605ec0b9d9ae554a4b74f2606fa7dd81ade9021\n"
    },
    {
      "commit": "6edb9aecdbe8b31f7ae1d35f21d013631337a424",
      "tree": "531c7ddd624695102d5c4dfc73e7d6c4160a365c",
      "parents": [
        "e4ddacdb1f0798e084b9ce2de7acac797f2c0a75"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Feb 08 14:18:21 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Feb 08 18:05:52 2016 -0800"
      },
      "message": "Check pages are readable after mprotect for SEGV_ACCERR diagnosis\n\nWe have a suspected mprotect issue where we see seg faults after pages\nare mprotected with PROT_READ|PROT_WRITE with the SS collector on\nhost. This change attempts to see if earlier reads would cause faults\nsimilarly.\n\nBug: 19894268\n\nChange-Id: I041a663c6b55b747120915f73a0db5f566744ed8\n"
    },
    {
      "commit": "9bdf108885a27ba05fae8501725649574d7c491b",
      "tree": "a4ddf98b6cf10b343f15164f18e7089bc54c29ca",
      "parents": [
        "a92ee11b9b0ed4033efc5982269e3c0a075315e0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:15:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:19:08 2016 +0000"
      },
      "message": "Revert \"Revert \"Write dex files to oat file early.\"\"\n\nThis reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61.\n\nFix linker error (Mac build):\nReplace inline definition of art::ZipArchive::~ZipArchive()\nwith an out-of-line definition in zip_archive.cc to avoid\ndirect reference to CloseArchive() from libart-compiler due\nto inlining. Note that libart is linked against -lziparchive\nbut libart-compiler is not.\n\nChange-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8\n"
    },
    {
      "commit": "919f5536182890d2e03f59b961acf8f7c836ff61",
      "tree": "8e8b9c330ae9c886611c6e5ae598e21d9b3ea17a",
      "parents": [
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "message": "Revert \"Write dex files to oat file early.\"\n\nThis reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5.\n\nBreaks the Mac build:\n\nUndefined symbols for architecture i386:\n  \"_CloseArchive\", referenced from:\n      ... in oat_writer.o\nld: symbol(s) not found for architecture i386\n\nChange-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e\n"
    },
    {
      "commit": "625a64aad13905d8a2454bf3cc0e874487b110d5",
      "tree": "49035d031166ce9fe0c5dd2f4b34157100e1703f",
      "parents": [
        "e1b0f475e851072d0083faf6e07d274e9f1fe6a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 26 14:44:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 12:28:06 2016 +0000"
      },
      "message": "Write dex files to oat file early.\n\nWrite dex files to oat file before we actually open and\nverify them. Instead, open and verify the copies from the\noat file and use these. This way, in the most common case\nof zipped dex files, we have mmapped dex files instead of\ninflated dex files. That reduces the number of dirty pages\nused by dex2oat.\n\nReading /proc/self/statm after we write the oat file for\na compilation of a certain large app on Nexus 5 AOSP build\nwith -j1, three attempts before and after this CL gave\n    before: 346061 189462 6269 26 0 140723 0\n            346189 189450 6269 26 0 140851 0\n            346061 189463 6269 26 0 140723 0\n    after:  346186 185808 23040 27 0 140468 0\n            346186 185819 23040 27 0 140468 0\n            346186 185822 23040 27 0 140468 0\nThese values are in pages (4KiB), so while the \"size\"\n(\u003dVmSize) is essentially unchanged, the \"resident\" (\u003dVmRSS)\nis over 14MiB less and the \"shared\" (i.e. backed by a file)\nis 65.5MiB more. That is, the amount of dirty non-pageable\nmemory used is reduced by about 80MiB.\n\nThe oat file format has changed slightly, the class offset\ntable has been moved from the OatDexFile to its own section.\nThis actually fixes the alignment of these offsets as they\ncould have been unaligned previously, yet accessed as normal\nwith significant performance impact if the kernel has to\nemulate the unaligned access (say, mips).\n\nChange-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a\n"
    },
    {
      "commit": "a25dce9b452ba17ef7cef768926c884177a3025e",
      "tree": "0da78b818c256f636badf2f1a97e8f1a8b661be9",
      "parents": [
        "fbd9dfcf4ffc32f0bda831aa898c7ea5dbf8ed9a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 12 16:41:10 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 15:40:55 2016 +0000"
      },
      "message": "Support --perf with jitted code.\n\nChange-Id: I76f29d815234e9506efc59d4865780e52b2381a1\n"
    },
    {
      "commit": "ebe2dfcb1346d2010787ebbb15ae2965fcd2b223",
      "tree": "c366f06909683e213fbd0a3dab445aa35460f4a4",
      "parents": [
        "1850cb43dbddbc655a6f990a7d475587fa9d6659"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 24 13:47:52 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 30 15:00:06 2015 -0800"
      },
      "message": "Support null error_msg for select MemMap functions\n\nIn the failure case, reading proc maps takes 30ms. This is too slow\nfor app images.\n\nBug: 22858531\nChange-Id: Ib6998cf82116720b23faec89d011fb7197c3d1cb\n"
    },
    {
      "commit": "21e332526c3211826ea6d3ac1761f044a60c56f4",
      "tree": "319b3e2218153802f03c9ffedd2f477f439f44bf",
      "parents": [
        "a5c3e44663c3b9c97fe350b4191cec079738fca3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 19:01:00 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 19:01:00 2015 -0800"
      },
      "message": "Delete flaky DCHECK\n\nFixes mips build\n\nChange-Id: I738b41f09f3c926f21640e358cf0bd5557167b0e\n"
    },
    {
      "commit": "11cea0c9ab48c37e78948d077c44a39a94551df8",
      "tree": "3e428fb58fc71079d9bf1f15db75e5f6effaafd9",
      "parents": [
        "ff12923229e713c27b9a9588a3fdf8d59475d756"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 18:50:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 18:50:49 2015 -0800"
      },
      "message": "Fix mac build\n\nChange-Id: I22bf169f15483e54b97d77ff0887cd1fde428af9\n"
    },
    {
      "commit": "42bddcec51e71d206f6d3b30a881ee6c1d50a63c",
      "tree": "2035b4dd7dcbefbe83c04d41987e520eeb8798f0",
      "parents": [
        "78232f2482e71fef255796633da68bb769baa93a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 15:16:56 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 17:18:58 2015 -0800"
      },
      "message": "Add low_4gb support to MapFile and MapFileAtAddress\n\nMotivation is to use this for loading app images in low 4GB at a\nnon fixed address.\n\nAdded test.\n\nBug: 22858531\nChange-Id: I0f79a4a7bfbfbdfc112e41b25c8682b1fb932ab7\n"
    },
    {
      "commit": "24a0fc8df930584446d6e3628df9ec6c36e53239",
      "tree": "62ed51cc47075cc499656b238e63d193257bee65",
      "parents": [
        "85506c2ff34e930b4589568f78ee30f60d49d456"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 16:38:52 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 16:38:52 2015 -0700"
      },
      "message": "Add some missing comments\n\nChange-Id: I5ff393dfe082559887e9beed1fdb359035c5d3aa\n"
    },
    {
      "commit": "e58991b3b2282b5761f1a6023a16c803e1c4eb45",
      "tree": "5a6fac6c5d3cb6a463463b83b8a34a53b07a8ede",
      "parents": [
        "fb11bab9bc96ff05dcb12f43abf58df256b7c7aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 07:59:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 13:17:50 2015 -0700"
      },
      "message": "Revert \"Revert \"Unload oat files\"\"\n\nFixed a race where two threads calling OatFile::Open could both use\ndlopen on the host.\n\nBug: 22720414\n\nThis reverts commit 72da5e7461fec3b1e116050f2e6f233efb9c54f3.\n\nChange-Id: I1636045b724944d2a09417527280784967957095\n"
    },
    {
      "commit": "0389cd57de8faedb85b749656b8e1735a7bce002",
      "tree": "3375f7755d8b6c6498cebde69722039c7309c01b",
      "parents": [
        "2a455e162cbba5dad610b02155957aa7759c9a34"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 16 16:27:00 2015 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Sep 16 18:35:41 2015 -0700"
      },
      "message": "Use arc4random_buf instead of getauxval(AT_RANDOM).\n\nReclaim the AT_RANDOM bytes used by ART for bionic.\n\nBug: http://b/23942752\nChange-Id: Iceddce7f08fa887a7bb6828d75ef21426c413863\n"
    },
    {
      "commit": "c60e1b755c5632dfeb04c333489ede52ee5c945f",
      "tree": "9582a0ffc99e4ad11dcd5d95dd97b09bc6acc5bf",
      "parents": [
        "7b926cdacc2b67241bc9cb5f2d4b04b13ca79d0e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 30 08:57:50 2015 -0700"
      },
      "message": "ART: Use __ANDROID__ instead of HAVE_ANDROID_OS\n\nUse the proper define.\n\nChange-Id: I71e291ac25f5d5f0187ac9b6ef2d6872f19e6085\n"
    },
    {
      "commit": "14d90579f013b374638b599361970557ed4b3f09",
      "tree": "fe8f9f7b527e73c20078557eefd74615c2cfc7f8",
      "parents": [
        "5c03f3698f5e2e0d762e2e15ec00310b6cdab4fe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "message": "Use (D)CHECK_ALIGNED more.\n\nChange-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af\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": "86b35f97ce1848608e70eb1f0ea9f73d25b80d09",
      "tree": "a3e620c8fe65761db65736fc33a517217cc226ba",
      "parents": [
        "7e7e69a0421e30f5e6ffa498db25dfd0c13d500e",
        "1baabf0726eb285284e0c908ccba9f209b399fae"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 23:20:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 16 23:20:09 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use dlopen to load oat files.\"\"\""
    },
    {
      "commit": "1baabf0726eb285284e0c908ccba9f209b399fae",
      "tree": "0dc531c157f72a1413079f765e7437280673f93b",
      "parents": [
        "7a46b7e235a7c35191cd9ddbab6ca4db0e535da5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 17:12:34 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 16 17:12:34 2015 +0000"
      },
      "message": "Revert \"Revert \"Use dlopen to load oat files.\"\"\n\nThis reverts commit 7a46b7e235a7c35191cd9ddbab6ca4db0e535da5.\n\nChange-Id: I33439d0e3d7a7e63591a8c7b356e716dcb62bca1\n"
    },
    {
      "commit": "f6c77d7632bdfe564c2ba61690fecc65f10ea9f6",
      "tree": "af87ccb86c7e0622912bf088a464716166ea450a",
      "parents": [
        "6ebf70ec61eff097e1bdddb1b887316389e34dde",
        "7a46b7e235a7c35191cd9ddbab6ca4db0e535da5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 15 23:44:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 15 23:44:59 2015 +0000"
      },
      "message": "Merge \"Revert \"Use dlopen to load oat files.\"\""
    },
    {
      "commit": "7a46b7e235a7c35191cd9ddbab6ca4db0e535da5",
      "tree": "e69c91d2c7903fb99083b047d2c468da2cc51f80",
      "parents": [
        "49e1fabc85480f01077f3cc10e8ba6ada6e4befa"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 15 23:44:08 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 15 23:44:08 2015 +0000"
      },
      "message": "Revert \"Use dlopen to load oat files.\"\n\nThis reverts commit 49e1fabc85480f01077f3cc10e8ba6ada6e4befa.\n\nChange-Id: If49e8b60c458a992519b7fdabe02e7d53830edab\n"
    },
    {
      "commit": "01d4b5072c064d927260486c891a09fe689289c0",
      "tree": "f494fc108b4b65d5a43809845a3d8de4ada27d7b",
      "parents": [
        "4366369f1151cd703073f805036793e2f7255571"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 12 17:32:31 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 12 17:32:31 2015 -0700"
      },
      "message": "Pass reuse flag to MemMap constructor\n\nBug: 21806978\nChange-Id: Iec92220d8f42e1d702ee39b27a8de570ea1ab588\n"
    },
    {
      "commit": "49e1fabc85480f01077f3cc10e8ba6ada6e4befa",
      "tree": "0dc531c157f72a1413079f765e7437280673f93b",
      "parents": [
        "79b08e69b71a53beb3f053b304c34ea88bfb9a47"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 11 17:38:44 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 12 23:42:19 2015 +0100"
      },
      "message": "Use dlopen to load oat files.\n\nThis is required to support in-process unwinding in libunwind.\nlibunwind obtains the list of loaded libraries from the linker,\ntherefore we need to use dlopen, otherwise it will not find them.\n\nChange-Id: I5fd89cce6b909385cb89b8a48c0d817677acf299\n"
    },
    {
      "commit": "38c8221b8f8bd0411006c44d3126f78eb6a8e9ab",
      "tree": "090dfc7d5b12fe21050b1d29a4ed2d7bff7294f0",
      "parents": [
        "a56b2e09cc311d3b8eb9384decc76a13ed5da6e9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 16:22:41 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 08 11:32:47 2015 -0700"
      },
      "message": "More LOW_4G optimizations\n\nEagerly try to map at an address when it doesn\u0027t overlap with\nthe ART known maps.\n\nReduces time spent creating the heap on N9 from ~100ms to ~10ms.\n\n(cherry picked from commit 3ae250c16bae3462e040b844dbc2e2fc732d67ba)\n\nBug: 20727525\nChange-Id: Ie8982ca9d1f3158104b2b53b992c3a28841fc443\n"
    },
    {
      "commit": "7889a77e464b820745c9507ccd484f68e7b1c650",
      "tree": "eb6ffe8edece5a47c7aaa7363a32e6b89f75cec9",
      "parents": [
        "6a1c92f1e4a455d802ab0d0ac47504cdd7c12f0f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 13:42:14 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 15:20:03 2015 -0700"
      },
      "message": "Add optimization for LOW_4G allocator\n\nThe optimization uses the maps_ field to skip over regions which we\nknow wont be large enough for the request.\n\nReduces time to create heap from 500-700ms to 100ms on N9.\n\n(cherry picked from commit 1c8bef4a71612f10b89b102434f70de5a127cc74)\n\nBug: 20727525\n\nChange-Id: I4fa92d58c2e135ba31a03ababff46669089bb542\n"
    },
    {
      "commit": "1d8199d8215a6ee7b1904edc47372d83fcdee5a3",
      "tree": "db860e447157f5b005fad2c71bedc63ad5d79050",
      "parents": [
        "637be5cefe1462b8d0bd5e065bd64a10f01647ac"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jun 02 11:01:10 2015 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jun 02 11:01:16 2015 -0700"
      },
      "message": "Tidy up spelling\n\nChange-Id: I65fba9d8310ff3759322cec3345235e6472f4cfb\n"
    },
    {
      "commit": "17a924abde2b0f1f37f6008b451a0a75190c71ff",
      "tree": "7a081b8d31aaae4ee40ffe2d4c43eb79d8fe576f",
      "parents": [
        "2e8da8ecb94134081c3ea18a217294db367888a3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 08 15:17:32 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 08 22:17:47 2015 +0100"
      },
      "message": "ART: Merge entries with same name and protect in MemMap dump.\n\nThis should make the MemMap dump less chatty and allow the\nlogger to keep more relevant output.\n\nBug: 20873174\nChange-Id: I09058798faa8f79d154cee5008017b03700df8db\n"
    },
    {
      "commit": "b5505823ad3d0bab8fc9c15c266a3d8cd96ee59e",
      "tree": "87924829284955cfd3fa71cf28b34ecfc7f34c18",
      "parents": [
        "659f4c14e8e044f8efe5405ba0da50aa894dd25f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 08 11:10:16 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 08 11:12:22 2015 +0100"
      },
      "message": "ART: Fix debug output for bad reused MemMap.\n\nLog the error_msg instead of a pointer to it.\nRaise the log level to ERROR for the process maps.\n\nChange-Id: I95f82f013d1c6360f40e6315652d1a2dda0f39e2\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": "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": "5c42c29b89286e5efa4a4613132b09051ce5945b",
      "tree": "5db25a4f62c5583f2f6fc42b9a2ff47362eeed5c",
      "parents": [
        "242026e246a8b9efe098a0cce008fd525e011e5b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 25 12:02:49 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 02 18:07:03 2015 +0000"
      },
      "message": "Add support for .bss section in oat files.\n\nChange-Id: I779b80b8139d9afdc28373f8c68edff5df7726ce\n"
    },
    {
      "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": "379d09fe3c3feb7c2a2fb5a3623689b5ace7e79b",
      "tree": "680b4173130057a1f70ad321eaf4cfbeba0e291c",
      "parents": [
        "ca7d89d09294254f16db170a53b0f8dfbf0213ac"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 08 11:28:13 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 08 16:02:00 2015 -0800"
      },
      "message": "Add clamp growth limit\n\nClamp growth limit shrinks the space memmaps to the current growth\nlimit. This reduces virtual memory usage for apps with small heaps.\n\nBug: 18387825\nBug: 17131630\n\nChange-Id: I4a8fdc335d2c40492e991708adabcc46299efb7d\n"
    },
    {
      "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": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "6e88ef6b604a7a945a466784580c42e6554c1289",
      "tree": "1e296564787b51514cf2eca5b732647c1a82912e",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:43:21 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\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": "c8ccf68b805c92674545f63e0341ba47e8d9701c",
      "tree": "fb360323538cb242ebf7c5c0aca27d3a0bce0abb",
      "parents": [
        "fcabfbe577c0fd40910b565beb681bd4b66f6c5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:07:43 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:13:48 2014 -0700"
      },
      "message": "ART: Fix some -Wpedantic errors\n\nRemove extra semicolons.\n\nDollar signs in C++ identifiers are an extension.\n\nNamed variadic macros are an extension.\n\nBinary literals are a C++14 feature.\n\nEnum re-declarations are not allowed.\n\nOverflow.\n\nChange-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a\n"
    },
    {
      "commit": "bad0267eaab9d6a522d05469ff90501deefdb88b",
      "tree": "1ce689b75184cb322b9edde34d7af938c658a6ae",
      "parents": [
        "0772a9d99c8774463c9076824340eaa4eb66f47f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 25 13:08:22 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:57:35 2014 -0700"
      },
      "message": "Add native memory accounting through custom allocator.\n\nAdded a custom allocator that lets you pass in a special tag which\nspecifices where the allocation came from. This is used when\ndumping. The performance overhead is low since each allocation only\ndoes a atomic add/sub for each allocation/free.\n\nThe measurements are dumped to traces.txt during SIGQUIT.\n\nExample output:\nI/art     (27274): AllocatorTagHeap active\u003d120 max\u003d120 total\u003d168\nI/art     (27274): AllocatorTagMonitorList active\u003d1572 max\u003d6240 total\u003d11724\nI/art     (27274): AllocatorTagClassTable active\u003d185208 max\u003d185208 total\u003d268608\nI/art     (27274): AllocatorTagInternTable active\u003d430368 max\u003d430368 total\u003d436080\nI/art     (27274): AllocatorTagMaps active\u003d5616 max\u003d6168 total\u003d34392\nI/art     (27274): AllocatorTagLOS active\u003d1024 max\u003d1536 total\u003d2044\nI/art     (27274): AllocatorTagSafeMap active\u003d0 max\u003d51936 total\u003d533688\nI/art     (27274): AllocatorTagLOSMaps active\u003d144 max\u003d1248 total\u003d5760\nI/art     (27274): AllocatorTagReferenceTable active\u003d10944 max\u003d11840 total\u003d19136\nI/art     (27274): AllocatorTagHeapBitmap active\u003d32 max\u003d40 total\u003d56\nI/art     (27274): AllocatorTagHeapBitmapLOS active\u003d8 max\u003d8 total\u003d8\nI/art     (27274): AllocatorTagVerifier active\u003d0 max\u003d18844 total\u003d1073156\nI/art     (27274): AllocatorTagModUnionCardSet active\u003d5300 max\u003d5920 total\u003d56020\nI/art     (27274): AllocatorTagModUnionReferenceArray active\u003d24864 max\u003d24864 total\u003d24864\nI/art     (27274): AllocatorTagJNILibrarires active\u003d320 max\u003d320 total\u003d320\nI/art     (27274): AllocatorTagOatFile active\u003d1400 max\u003d1400 total\u003d5852\n\nChange-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82\n\n(cherry picked from commit 5369c40f75fdcb1be7a7c06db212ce965c83a164)\n"
    },
    {
      "commit": "b89c3da592de1a2741a08cc3c8ed2908e8bdd15a",
      "tree": "3a55d3f92f7dfd476706bff2c53955ef8ebd217f",
      "parents": [
        "ca0ceb06d1b82714b834727a33f82fe6512effa9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Aug 21 17:38:09 2014 +0100"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 21 14:29:14 2014 -0700"
      },
      "message": "Make a couple of map checks debug only.\n\nThis cost us close to 80ms in app startup times.\n\nThe checks that a reused region was within an already\nexistent map has been demoted to a debug check.\n\nA couple of other negative checks have been removed\noutright because one of them was superflous and the other\nwasn\u0027t guaranteed to be correct.\n\nbug: 16828525\n\n(cherry picked from commit bddaea2b88b0a19d9cc7a4dea772af8e829323b3)\n\nChange-Id: Ia6f3e69692bb9cb5b4ff6f47946ea38a56d4cdb6\n"
    },
    {
      "commit": "836572a07142627ff291d686a4e9e03a0988344b",
      "tree": "0211a2440ab0d43d633c665c6fe053ece67b54bf",
      "parents": [
        "6175442a246cded6a9caae4658a0a1dc7cf49071"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 05 15:43:13 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 06 11:59:06 2014 -0700"
      },
      "message": "Check for a NULL pointer, do not call Build.\n\nWhen calling BacktraceMap::Create(), a NULL pointer is returned if Build\nfails. Building twice can cause problems and might leak memory.\n\nChange-Id: I38a4100e534ef15a19883703aa504e795a14b6de\n"
    },
    {
      "commit": "a62a588a9202f69e53fbeb3045ea8ea5ec2587f8",
      "tree": "afbbcca1eaa59d40fa94db6babeb2ea909777357",
      "parents": [
        "b5c5646b5ffd3d451af5e8d52b50743bf61d4c40"
      ],
      "author": {
        "name": "Jim_Guo",
        "email": "jim_guo@htc.com",
        "time": "Mon Apr 28 11:11:57 2014 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 04 22:27:52 2014 -0700"
      },
      "message": "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)\n\nRoot Cause:\n  The overlapped memory region will be unmapped by\n  (1) ~MemMap() of reservation MemMap (reserve) and\n  (2) ~MemMap() of \"reuse\" MemMap (segment).\n  Someone takes the memory region after (1) and it will be unmapped in (2).\n  So, SIGSEGV occurs when using the unmapped memory region.\n\nSolution:\n  Fixes this issue by skip unmap \"reuse\" MemMap in destructor.\n  And always create reservation MemMap before \"reuse\" MemMap. (It also solved\n  the fixupELF case which does not reserve the whole needed memory region).\n\nBug: 16486685\nChange-Id: I8f2538861d5c3fa7b9a04d2c3f516319cc060291\n"
    },
    {
      "commit": "422f4733ce76eda8f4ebb5a3dce5c0a5a2264886",
      "tree": "32340767bc568f75b7148b5ba40aa1d1e57a7636",
      "parents": [
        "c52361cfaae8be2fbaa25b175d4f6c37d4110764"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 04 17:15:21 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Aug 04 19:22:40 2014 -0700"
      },
      "message": "Use the uncached form of BacktraceMap::Create.\n\nThe code assumes that calling BacktraceMap::Create creates a map based\non the current state of the maps. This is not true by default, so\ncall the Create function indicating we want an uncached BacktraceMap object.\n\n(cherry picked from 27a10f618357cf85cc0677a04f0a5a3a8a437aed)\n\nChange-Id: Ic7a2dedaea9950174b24ede4dcda30ffe036fe93\n"
    },
    {
      "commit": "c3ccc1039e0bbc0744f958cb8719cf96bce5b853",
      "tree": "46be84eae8aba7f1698415752262bc16da72aab6",
      "parents": [
        "3153895d020038cd89311ed6ee241ce9b9f18a59"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 25 11:52:14 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 25 11:55:07 2014 -0700"
      },
      "message": "Fix the Mac build on x86-64.\n\nChange-Id: I4ed3783a96d844de0b0a295df26d0a48c02a3726\n"
    },
    {
      "commit": "d6b6865cf787be8e4548e018762e72c7d1a40e52",
      "tree": "eb47470092a7a7ecefbf23dd008103a1e74945cc",
      "parents": [
        "be781e55b86ddd2dacf12b80a26fa9a5612948c3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jun 23 14:07:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jun 23 14:07:03 2014 -0700"
      },
      "message": "Mac doesn\u0027t define MAP_ANONYMOUS\n\nFix mac build.\n\nChange-Id: I607e8fff227259fbf27e468193a705c8c3fc1b59\n"
    },
    {
      "commit": "997f0f9e69ce7aee73cebd64be8dc40af9164257",
      "tree": "0d323cec5ae6359fb4dd775a5b539848c930507b",
      "parents": [
        "87523b6c4df4dd33d4c1e383403e14d6fe06362f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Jun 21 22:58:05 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jun 22 01:30:40 2014 -0700"
      },
      "message": "Limit the size of files created by run-test to 2MB.\n\nIn MemMap::MapAnonymous on the host, avoid creating ashmem regions that are\nbacked by files, when the size of the file will be greater than the ulimit.\n\nChange-Id: I7cbf2ac59bf5869ed85850bea8d71898f3b7e1c7\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": "7ce610516242b1ffd47a42bfc31c2d562f443ca6",
      "tree": "500f4d03a882aebbefa33e3b29be0a2b0518ad48",
      "parents": [
        "d5e2b00cbc1e6b6608a5dbcfb05b7c4976614636",
        "3eed93dd5be03e5539827bebf0f414251a12e15e"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jun 05 18:48:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 05 18:48:54 2014 +0000"
      },
      "message": "Merge \"Verify there\u0027s no mem map gap for immune region not to break.\""
    },
    {
      "commit": "3eed93dd5be03e5539827bebf0f414251a12e15e",
      "tree": "186fa74420e2595c9b6fba9ea8de94756af9cef5",
      "parents": [
        "bbdc5bc5fd5141711879a6c85d80ac45b7aad5d0"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 04 11:43:59 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 04 15:50:46 2014 -0700"
      },
      "message": "Verify there\u0027s no mem map gap for immune region not to break.\n\nThis adds code that verifies that there\u0027s no memory map gap between\nthe image space and the main space so that the immune region\nfunctionality won\u0027t silently break. For example, if there\u0027s a gap and\na large object is allocated in that gap, the large object is\nincorrectly part of the immune region and the marking breaks.\n\nBug: 14059466\nChange-Id: Ie6ed82988d74b6d0562ebbbaac96ee43c15b14a6\n"
    },
    {
      "commit": "c355a2a78d6ebdfdb645221275affb9136b4c667",
      "tree": "33e6ceb178ae6d82c630c5b34e216bc468276295",
      "parents": [
        "b7f02280f7f56ae94fe7f01e161be0b725b6e4a9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 30 13:02:46 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 30 13:19:19 2014 -0700"
      },
      "message": "Fix race condition in MemMap::MapAnonymous.\n\nPreviously we were using MAP_FIXED which introduced a serious race\ncondition if MAP_32BIT was set since it would possibly overwrite\nan existing map at the address which we determined was free with\nmsync. There was a window of time after we had msynced a page where\nanother thread could map something at that page. The new method\navoids using MAP_FIXED and unmaps allocations which succeed but\naren\u0027t in the low 4GB when MAP_32BIT is set.\n\nBug: 15338094\nBug: 14974497\nChange-Id: I57f00baf4143e9fa17fb1d4c2be04b30705a2bfd\n"
    },
    {
      "commit": "d8f26dbebe72c1cbdfa85bdeeb003283c7435db3",
      "tree": "d752729ef80ed46877681874ac69b3e846f34078",
      "parents": [
        "fd1264475562006c93b651d33e0a6266e8093ebe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 19 17:01:13 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 20 11:18:01 2014 -0700"
      },
      "message": "ART: Randomize mem_map start address for linear scan search\n\nWhen using linear scan for mem_map, randomize the start of the\nsearch with getauxval(AT_RANDOM).\n\nChange-Id: Id1e4c86b928147d74b9b0b73ff704de5d87b4500\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "6bd621aa31aa94ed42a2a35256d219630bf0b687",
      "tree": "1c0991988a0891817c60969ec197bf55fa75ce83",
      "parents": [
        "de1129a26e0474ea8bb9112938ebb867163969fd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 16 17:28:58 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 16 17:43:23 2014 -0700"
      },
      "message": "ART: Move start of linear mmap_scan out of reserved space\n\nThe first 64KB are protected by SELinux, and we will never be\nable to acquire them.\n\nBug: 15024270\nChange-Id: I186a0d5262d396a089d4028a8527a9c56f96dc49\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "84d49ccd79088eb9a9f423c0a96e3905468cfe7d",
      "tree": "30502e3c3f73000b2e49124cbd2da86d429036d8",
      "parents": [
        "23d2b95b1d1c92898336a4ebf5c0281f79fb7581"
      ],
      "author": {
        "name": "Qiming Shi",
        "email": "qiming.shi@intel.com",
        "time": "Thu Apr 24 15:38:41 2014 +0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 14 19:38:09 2014 -0700"
      },
      "message": "ART: Resolve MAP_32BIT limitation in x86_64\n\nAdd checks that ensure when low4gb is set and an expected pointer\nis given the requested memory fits into 4GB.\n\nOn x86_64, only use MAP_32BIT when there is no expected pointer.\nThis avoids a limitation in mmap (only 2GB visible).\n\nAdd tests to check behavior.\n\nOriginal Author: Qiming Shi \u003cqiming.shi@intel.com\u003e\nChange-Id: Ia2e3e0a46764ef70126b0c264f1fae681622d3cb\n"
    },
    {
      "commit": "4d3e8b019c86abfdb761a14e442fc058882a4d91",
      "tree": "cfc692649b042a5471ed45a300cc17824d1ac16a",
      "parents": [
        "d11fcd3d2882c90efe7a92875072bd4eec4aad0c",
        "9de65ff3a9c49b91d80be292020f012f3d0a24ef"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 24 18:53:17 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 24 18:53:17 2014 +0000"
      },
      "message": "Merge \"Fixes to mem_map wraparound and ARM64 quick_invoke assembly\""
    },
    {
      "commit": "aa94cf3e77035bf204a21d0341d8f8513a19885c",
      "tree": "56c35c05e73a874e283701207d3b5afa1c781509",
      "parents": [
        "6a3fe330227f2192f6ce97915d62f46247f89378"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 23 23:47:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 24 11:02:32 2014 -0700"
      },
      "message": "Avoid strerror until we are sure there is an error\n\nChange-Id: I8f0c5a9cb1b07bfffd5ce9f9ca33f53c8834e9f5\n"
    },
    {
      "commit": "9de65ff3a9c49b91d80be292020f012f3d0a24ef",
      "tree": "bf19a3f908d438e81bd549b895ba84f5d3dd4536",
      "parents": [
        "6a3fe330227f2192f6ce97915d62f46247f89378"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 21 17:25:57 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 21 17:25:57 2014 -0700"
      },
      "message": "Fixes to mem_map wraparound and ARM64 quick_invoke assembly\n\nThere are only 6 free GPRs for passing in a non-static invoke. This\ncorrupted one register for long-signature methods.\n\nThe wrap-around did not actually wrap around correctly.\n\nChange-Id: I62658dadeb83bb22960b9455e211d26ffaa20f6f\n"
    },
    {
      "commit": "7104cbf9c594563c6daae592b8f38f49a423d12e",
      "tree": "71cd3aa726d7ad946f314e41e465b39cb6b8b8c0",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 21 11:44:43 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 21 11:47:17 2014 -0700"
      },
      "message": "Fix sign problem, implement low-mem mmap wraparound\n\nA signed value comparison meant that on 64b systems comparisons\nwere false when pointers \u003e 2GB were in use (as happens in long-running\ntests). Fix this to be uint.\n\nImplement a simple wrap-around in the MAP_32BIT emulation code.\n\nChange-Id: I09870b4755f2dca676e42e701fbb6f6eb4bb95d0\n"
    },
    {
      "commit": "71a3ebabb2a6b4921071d115aa176d8222aeb803",
      "tree": "ffc2f1125fd81bdd8afe063843a95db84b69c04d",
      "parents": [
        "4eccb97426f5f4233335504256246744c76556aa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 17 12:57:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 17 12:57:08 2014 -0700"
      },
      "message": "Quick typo fix in the 4GB lowmem code\n\nChange-Id: I3371776b0468cd8690e3811c7a1e57f5444e9d8f\n"
    },
    {
      "commit": "8dba5aaaffc0bc2b2580bf02f0d9095c00d26a17",
      "tree": "29b849a3fdffb802f8720f755a9ed0324b8e5b3f",
      "parents": [
        "01d6f6a4adea984b95af38611bc1b50268f77d03"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Mar 12 12:44:01 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 17 11:32:37 2014 -0700"
      },
      "message": "AArch64: Add memory allocation in low 4GB\n\nMAP_32BIT is implemented for only x86_64. Other 64bit platforms\ndon\u0027t have an equivalent.\n\nThis is a unsophisticated implemention of a scheme using msync and\nMAP_FIXED to reproduce the functionality of MAP_32BIT.\n\nAdds MAP_FIXED to RemapAtEnd, as the address used for the new mmap\ndoesn\u0027t get located correctly without it on aarch64.\n\nAdd MemMap::next_mem_pos_ to store last position. Add a safety assert.\n\nChange-Id: I61871ff7fc327554c43e1d7f448c3d376490f1ea\n"
    },
    {
      "commit": "4fb5df8453367aa3f160ac230c03a7a98a28e562",
      "tree": "069df39819c0f7e8f6f0d4af8569d8a06dafdaf9",
      "parents": [
        "b6825e67ea7b85a910258713910a443cfec747e4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 13 15:10:27 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 14 15:17:32 2014 -0700"
      },
      "message": "Make MemMap::MapAnonymous() fail if the requested address is not available.\n\nChange MapAnonymous() so that a requested address vs. actual map\naddress mismatch will cause a failure. The existing MapAnonymous()\ncall sites do not check this. This should prevent potential rare case\nbugs where mmap does not happen to map a region at an specified\naddress.\n\nThere\u0027s a potential bug that if MapAnonymous() does not guarantee the\nrequested address (and there\u0027s a gap between the image/oat files and\nthe zygote/malloc space), then GC could in theory allocate a large\nobject space in the gap. This would break the GC notion of the immune\nspace. This change will prevent this by causing all non-moving spaces\nto be (really) adjacent, with no gaps in between, which CL 87711\nmissed.\n\nChange-Id: Id4adb0e30adbad497334d7e00def4c0c66b15719\n"
    },
    {
      "commit": "c7cb1901b776129044a4ad3886fd6450e83df681",
      "tree": "611c648c250ac7e84ac7079fe000b7ce76d50685",
      "parents": [
        "c8554361e89970ab92a94d1f719553a30d45b86c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 14:41:03 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 15:02:18 2014 -0800"
      },
      "message": "Print error message if ImageSpace::Init fails.\n\nAlso changed some of the args in mem_map.cc to print as hex.\n\nBug: 13323732\n\nChange-Id: I02cd81300793515d143e94473f48fc701e401b38\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "0d6adac2550113da33d42e88f0d87a57b25c5a60",
      "tree": "0a912efc0b1147a1a2ac908d89b05aad4b819a8a",
      "parents": [
        "1dcff62155e8477eb114c8a86eb1beb0797ffc11"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 05 17:39:16 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 06 09:49:26 2014 -0800"
      },
      "message": "Fix apps with more than one dex file with the same name\n\nReverts most of 60836d5a9bcf8b30984aae4279a4f6233b0bf622 which I\nbelieve was an incorrect attempt to address issue introduced in\n8d31bbd3d6536de12bc20e3d29cfe03fe848f9da, which is also reverted here.\n\nAlso adds some debugging aids include operator\u003c\u003c for DexFile and\nMemMap and checksum information to OatFile logging.\n\nBug: 12802375\nChange-Id: Idd6f7dd487f6e01e9479cd15cd4b61580160e8a3\n"
    },
    {
      "commit": "caf22aca3482e2fcc8bf443f911718a5021da1c9",
      "tree": "c4954179726eee89fa5504c1ee51dcb37a39ba8c",
      "parents": [
        "7ea5dafc81b2bba7cabad26130bb75dc8f709803"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 27 18:32:14 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 27 18:32:14 2014 -0800"
      },
      "message": "Modify to use new BacktraceMap creation function.\n\nChange-Id: I703ef4a26917678236b931d81b7e4c758754742b\n"
    },
    {
      "commit": "3cab422021b121cad7a4592114f1b28f636b599d",
      "tree": "1f3b452fe5324a6695feea882f67ad2cc4d34a95",
      "parents": [
        "c666ee8c75118d072bfd2a2b81b80915f6040593"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 18:15:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 18:15:19 2014 -0800"
      },
      "message": "Move __STDC_FORMAT_MACROS to a cflag.\n\nCurrent inttypes.h don\u0027t define stdint printf formatting characters for C++ but\nin the future this will change. Rather than #define __STDC_FORMAT_MACROS at the\npoint of inclusion (conventional) pass it as a cflag so there is a single place\nto remove the #define when conventions change.\n\nChange-Id: Ice2fb07e19d8fc06ebc534c903a2d02497c31b3d\n"
    },
    {
      "commit": "debeb3aaaa4257684029f15733dc30af5dcb8aab",
      "tree": "496b989f3d71a2506647ba0172def9db30c2c71f",
      "parents": [
        "2f7130b2db84a730d32e5b7b99a161ff3cf6326b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 16:54:52 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 23 16:55:20 2014 -0800"
      },
      "message": "64bit friendly printf modifiers in mem map errors.\n\nChange-Id: I197c6cf08053b9c833e50156a92965b3b66698eb\n"
    },
    {
      "commit": "943af7dab1454517c5bd11a31ab99f260afb22d1",
      "tree": "0c8101f7d24eee3ff02ed324e34333a83853194f",
      "parents": [
        "00e7f2e935d98f0eb14f5ef1d376604d0054bf5e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 16 12:41:46 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 16 17:42:55 2014 -0800"
      },
      "message": "Change to support new BacktraceMap.\n\nChange-Id: I291313583dca2c8e1e946504c442f5810f0fb477\n"
    },
    {
      "commit": "3b6f0fae76fddf81930a263a075dc87b6039b7fc",
      "tree": "aafa3fa3bfa31a2d5f1f3b407e59b704a4180a77",
      "parents": [
        "34e82934546bd470283346907bd7b74990797c56"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 13 13:26:07 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 13 13:32:42 2013 -0800"
      },
      "message": "Add more logging when mmap fails.\n\nWe now print the reason that the mmap failed.\n\nChange-Id: Ie515e4bba117c9ea1f4297abb826d32172bea962\n"
    },
    {
      "commit": "6b98c91275d4361d1b74effad36995cc2d687a55",
      "tree": "b96cc0d6d15cc60adf0939252b93bb47cb210448",
      "parents": [
        "610e49f5adc8b5e4a37696aa20fc029dab6b1e40",
        "7b5f0cf08f74ff36760a813888779d28a175982d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Nov 05 07:04:12 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 05 07:04:12 2013 -0800"
      },
      "message": "am 7b5f0cf0: Use libbacktrace instead of libcorkscrew.\n\n* commit \u00277b5f0cf08f74ff36760a813888779d28a175982d\u0027:\n  Use libbacktrace instead of libcorkscrew.\n"
    },
    {
      "commit": "7b5f0cf08f74ff36760a813888779d28a175982d",
      "tree": "45d77050651a3423deabe7de7c51d8169f6cfd38",
      "parents": [
        "e2946917852af9d2ec643c7c987d2bb66cf2f086"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 01 15:18:45 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 04 13:46:11 2013 -0800"
      },
      "message": "Use libbacktrace instead of libcorkscrew.\n\nAlso, removed the ignore frames of 2, this was causing threads to chop\nthe lower two frames. The original code assumed that the calls to decode\nthe frame were in the unwind trace, but that\u0027s not the case.\n\nChange-Id: Ifc0da0227f9114a5b462ef88e038439d58f951e9\n"
    }
  ],
  "next": "fd7e7f1253927c8d7f17e7cbc259daaf51868bd3"
}
