)]}'
{
  "log": [
    {
      "commit": "6f382013399fc8ba8b2717e4d24d91978d2bc0f7",
      "tree": "53b6bca63d5a1c34b2a60e5d8ef39f7cb22d4fe9",
      "parents": [
        "2b9c8c94fc92c6f2c7c1703efc1793d17ffde297"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 30 09:47:35 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 16:17:17 2019 +0000"
      },
      "message": "Refactor space bitmap to be a value object\n\nRemove the need for pointer indirections at many places, reduce the\namount of code.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I4b1040d29f9ba99ea23c51f70a06af2ffbe496d4\n"
    },
    {
      "commit": "8764dc3b3eda7f6f13ed7b584475503fe5bedd59",
      "tree": "e8f6e3a4a2596595ffdc8a517daaf37030482eae",
      "parents": [
        "49b74a8c685acfe43dd33e3f51a24c486388bee1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 15:20:12 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Use iosfwd more\n\nUse iosfwd where an include of ostream is unnecessary. Also move\ncallee_save_type.h to runtime.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Id8995d6f524e4c491eb6f57fdffb940cf35d291f\n"
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    },
    {
      "commit": "88dbad33ae92167a89a5d5469f39f41624535dbf",
      "tree": "b3b0c864c12c246117143954f16df054309852c6",
      "parents": [
        "c58dca3941459b4375a53925f3471373584eab5e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 19:54:12 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:28 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ib465ecceec3331ea81588fb4a43eb65e766b6904\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "f6985bd84b27b25e2c2ae1b865a4f28a0ccd578b",
      "tree": "5ec94a773e2c7e19842b1f2de02baf4343aff6c9",
      "parents": [
        "19759b28bc9dad1581c207d76227eb74fc8eebcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:02:28 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:40:56 2018 +0100"
      },
      "message": "Add an overload for MemMap::MapAnonymous().\n\nAdd an overload that does not take `reuse` or `use_ashmem`\nparameters but uses default values (`reuse \u003d false` and\n`use_ashmem \u003d true`) to simplify callers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Iaa44f770dee7e043c3a1d6867dfb0416dec83b25\n"
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "ef0713287279026c4960f324097f2cd4fc8dddb5",
      "tree": "97abe62f9629e3d2c006112b0d4f4144614cde22",
      "parents": [
        "d0a4d1f71a7deb0624e1694a6690eda10d8b77bf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Apr 17 14:16:49 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 07 19:03:03 2018 +0100"
      },
      "message": "Fix some typos in comments in ART.\n\nTest: n/a\nChange-Id: Idef8ab05baa1de0bed5a7310694cb241723d123c\n"
    },
    {
      "commit": "c431b9dc4b23cc950eb313695258df5d89f53b22",
      "tree": "422273559c3ae52caff0c6b1cf1a62a8312f0e26",
      "parents": [
        "f46f46cf5bd32788d5252b7107628a66594a5e98"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 02 12:01:51 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 05 13:58:20 2018 -0800"
      },
      "message": "Move most of runtime/base to libartbase/base\n\nEnforce the layering that code in runtime/base should not depend on\nruntime by separating it into libartbase.  Some of the code in\nruntime/base depends on the Runtime class, so it cannot be moved yet.\nAlso, some of the tests depend on CommonRuntimeTest, which itself needs\nto be factored (in a subsequent CL).\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host\n\nChange-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2\n"
    },
    {
      "commit": "170331f0e44a0e07fcfe0b5932517e0500f5cd1f",
      "tree": "4bb837aa3b6e19c898df23894beb61957885e985",
      "parents": [
        "39b378ca3b4b6dc6da1651b84ee4289cd9bff0f8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 18:41:03 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 18:41:03 2017 -0800"
      },
      "message": "ART: Remove base/logging from heap-inl.h\n\nHide the single uncommon VLOG and remove the include. Fix up\ntransitive includes.\n\nTest: m\nChange-Id: I917df597cb62c57040c1fb0e0079df4d95e5a658\n"
    },
    {
      "commit": "3425d028568f4e467e456f1fa0b75846b078bba6",
      "tree": "a013b62ad56ba91d6c65f57dab019456628b2de4",
      "parents": [
        "844a4edc7f72e33a3b328c3d53ef710909d2273d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 03 16:22:05 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 03 21:24:28 2017 -0700"
      },
      "message": "Rename CHECK_MEMORY_CALL to CheckedCall\n\nRenamed CHECK_MEMORY_CALL to CheckedCall and moved it to utils. Will\nuse this new call for most madvise/mprotect in ART.\n\nTest: test-art-host\nBug: 66910552\n\nChange-Id: I32908012b310673a9c6488796f8009bb4432579b\n"
    },
    {
      "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": "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": "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": "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": "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4",
      "tree": "92e8e49ed1b4d5442f20721858c476ed5769d0ea",
      "parents": [
        "7edef7441d28db1403fbc5641b56a26ecf355879"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 13:53:04 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:59:27 2015 +0100"
      },
      "message": "Use DlMallocSpace for the JIT code cache.\n\n- Also tidy up some code in the JIT compiler.\n- And mprotect code space to be writable only when allocating.\n\nChange-Id: I46ea5c029aec489f2af63452de31db3736aebc20\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": "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": "de194bfbb212e3cb6d09e1129cbcf41872268a52",
      "tree": "fbb56153d0c7081357caed39c6e034b8b0ba0e46",
      "parents": [
        "9c53fa5adb33fb853c6a8b70bacbae1e5a3218aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 19:08:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 19:08:40 2015 -0700"
      },
      "message": "Delete missed ClampGrowthLimit CHECK\n\nBug: 20043461\nChange-Id: If4a0bb91c64571945756151be162f3626534781c\n"
    },
    {
      "commit": "ddac42329314587f6f188bacf101b3cb15175b3c",
      "tree": "f0774ef2055a059ba820d3dc153a8b9f3dc41900",
      "parents": [
        "e4285226d1d4d7c4feee16a968540fb2e363339f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 10:08:03 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 11:09:34 2015 -0700"
      },
      "message": "Fix race with Heap::ClampGrowthLimit and GC\n\nAded logic for handling the temp bitmap if the GC is running and\nthe live bitmap is clamped to the mark bitmap. This fixes the SIGABRT\nfrom ClampGrowthLimit if the GC clamped the bitmaps at this point.\n\nAlso added locking of the heap_bitmap_lock_ so that added a lock so\nthat the temp bitmap doesn\u0027t change from underneath us.\n\nBug: 20043461\n\nChange-Id: Ib427e40bcdf149de0408b4b53e6524f51463f0af\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": "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": "d0e0d4c833b82ac2639de9dea6042ccb87fe37ed",
      "tree": "d1508d0dcd02fdca393c609b9244e5ae1c76fcd9",
      "parents": [
        "6b1497421c7c81cb9bf2ce077f1ef3d8ac24cfcb"
      ],
      "author": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Fri Dec 12 21:54:47 2014 +0800"
      },
      "committer": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Fri Dec 12 21:54:47 2014 +0800"
      },
      "message": "Disable HomogeneousSpaceCompact for GSS collector\n\nHomogeneousSpaceCompact is not suitable when GSS is forground collector.\nThis will fix issue that device can not boot with GSS collecor.\n\nChange-Id: Iafdf431c207351571f41bbc9196dff02ba674ab4\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\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": "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": "2796a1669ae0f3b96db8432fbd8be1b93bf335c4",
      "tree": "fe73fdfc344333a33e1f6001b90d9649d6dfea1d",
      "parents": [
        "d190d989ac92d2a5b9a342692564f40bd2080895"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 25 11:50:47 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 25 11:54:07 2014 -0700"
      },
      "message": "Fix main space memory leak and add checks.\n\nThe hypothesis is that we were leaking the main space and its\nbitmaps, then eventually we would run out of virtual address space,\nwhich would cause a null bitmap (DCHECK). Finally when we tried\nadding the space with a null bitmap to the heap bitmap it segfaulted.\n\nChanged some non performance critical DCHECK -\u003e CHECK.\n\nBug: 16563323\nChange-Id: I08a1f873752e28ebcf63ebbd90f92d994d7ca96b\n"
    },
    {
      "commit": "be2a1df15a31a5223ee9af3015a00c31d2ad2e10",
      "tree": "87e214c9e2b2049af4cf1b89698cd00f8148d022",
      "parents": [
        "c4f72ec44660f804b595bfaf2b959f46fd2ff00d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 10 00:56:36 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 10 01:02:58 2014 -0700"
      },
      "message": "Fix GC to use art::Atomic rather than compiler intrinsics.\n\nChanges to SpaceBitmap::AtomicTestAndSet and Space::end_. Space::end_ is made\natomic rather than volatile to fully capture all its uses multi-threaded or not\nuses.\n\nChange-Id: I3058964b8ad90a8c253b3d7f75585f63ca2fb5e3\n"
    },
    {
      "commit": "10fb83ad7442c8cf3356a89ec918e0786f110981",
      "tree": "652a07afa83c4afb482702f4f571a024368491ad",
      "parents": [
        "2d2d6bb1ff8692efdddf104dabfb4a2d39877ff6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jun 15 15:15:43 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 20 13:00:23 2014 -0700"
      },
      "message": "Shared single GC iteration accounting for all GCs.\n\nPreviously, each garbage collector had data that was only used\nduring collection. Since only one collector can be running at any\ngiven time, we can make this data be shared between all collectors.\nThis reduces memory usage since we don\u0027t need to have redundant\ninformation for each GC types. Also reduced how much code is required\nto sweep spaces.\n\nBug: 9969166\nChange-Id: I31caf0ee4d572f75e0c66863fe7db12c08ae08e7\n"
    },
    {
      "commit": "447a914ab28fe7b295403189d550c2759b2777e4",
      "tree": "66927bc9e25028ff1810a45b1e622ac16891cd7d",
      "parents": [
        "697726d42eaf804a1124c25dec58c2b0013a30e9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 23 21:27:30 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 23 21:42:27 2014 -0700"
      },
      "message": "Allocate large enough space bitmaps for malloc spaces.\n\nFix a bug that we don\u0027t allocate space bitmaps for a malloc space that\nare large enough to cover the non-growth-limited capacity.\n\nChange-Id: I2e99a70eb8cddc284dffafa2d2afcc2f0c9074c7\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": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "bbd695c71e0bf518f582e84524e1cdeb3de3896c",
      "tree": "6fe6a128b629abc6a396a192b2e8da1180afeded",
      "parents": [
        "a092ee404ababbf8fc945111dc4a571284c9f02f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 16 09:48:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 19:01:34 2014 -0700"
      },
      "message": "Replace ObjectSet with LargeObjectBitmap.\n\nSpeeds up large object marking since large objects no longer required\na lock. Changed the GCs to use the heap bitmap for marking objects\nwhich aren\u0027t in the fast path. This eliminates the need for a\nMarkLargeObject function.\n\nMaps before (10 GC iterations):\nMean partial time: 180ms\nMean sticky time: 151ms\n\nMaps after:\nMean partial time: 161ms\nMean sticky time: 101ms\n\nNote: the GC durations are long due to recent ergonomic changes and\nbecause the fast bulk free hasn\u0027t yet been enabled. Over 50% of the\nGC time is spent in RosAllocSpace::FreeList.\n\nBug: 13571028\n\nChange-Id: Id8f94718aeaa13052672ccbae1e8edf77d653f62\n"
    },
    {
      "commit": "c4d095bba4d2cbc63ca6ca85787122c0f3e131cf",
      "tree": "de3dd89b0d2bb405ee75bbf8ba9024f6ac0ca7b4",
      "parents": [
        "c311d0c85e17773042daaa7a4abc58b3e3c0a0c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:01:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 12:13:36 2014 -0700"
      },
      "message": "Don\u0027t call SetFootprintLimit in CreateZygoteSpace.\n\nSince SetFootprintLimit uses the allocators accounting it can set a\nword inside of the zygote space mem map. This was causing issues\nsince it was occasionally clobbering one of the object classes. This\noccured since we compact objects into the space which was used by the\nallocator\u0027s internal accounting during zygote bin packing.\n\nAlso addressed some TODO.\n\nBug: 14056343\nChange-Id: I9fc5a61174fa141c0f44d0ed0ae0cc6d77cb4e0a\n"
    },
    {
      "commit": "a8e8f9c0a8e259a807d7b99a148d14104c24209d",
      "tree": "d8ed041dd3cf490163f6b405102ea36d3b4b0828",
      "parents": [
        "043a7a6182870964021476484b1534106ff20600"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 09 14:51:05 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 14 10:07:47 2014 -0700"
      },
      "message": "Refactor space bitmap to support different alignments.\n\nRequired for:\nUsing space bitmaps instead of std::set in mod union table +\nremembered set.\nUsing a bitmap instead of set for large object marking.\n\nBug: 13571028\n\nChange-Id: Id024e9563d4ca4278f79607cdb2f81895121b113\n"
    },
    {
      "commit": "31f441464c0c8f840aba37e236ad133f30308d70",
      "tree": "54dba5521790d0038478f7cdf5103299d5149970",
      "parents": [
        "9b417e4f0f87da6bfe8dc5f02c987acfcb6dca31"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 08 14:40:03 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 11 14:47:35 2014 -0700"
      },
      "message": "Clean-up heap spaces.\n\nWe now use the CMS collector instead of the semispace collector when\nthe phone is booting. We still perform compaction during the zygote\nspace creation. This reduces time spent in GC by ~2s during boot\nand doesn\u0027t affect zygote space size.\n\nChanged the space creation logic to create the temp space when a\nbackground transition occurs.\n\nAdded a flag to each space which is true if you are allowed to\nmove objects that are within this space.\n\nRemoved SwapSemiSpaces call from the semi space collector, it is now\nthe job of the caller to do this with threads suspended. This\nsimplifies the logic in the zygote compaction / heap transition code\nsince these do not copy from one semispace to another.\n\nAdded Space::Clear to RosAllocSpace and DlMallocSpace. This greatly\nsimplifies the code used for collector transitions.\n\nTime spent in GC creating zygote space:\nBefore: 3.4s, After: 1.28s\nNo change in zygote space size.\n\nBug: 13878055\n\nChange-Id: I700348ab7d5bf3aa537c0cd70c0fed09aa4b0623\n"
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac",
      "tree": "5ac4599dd8198cf4c6e8d265bf509dcef8acd89b",
      "parents": [
        "a9242dfd0a9547141ddaba84cd4e2ea0117dff5b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 11:27:10 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 03 17:44:15 2014 -0800"
      },
      "message": "Decrease lock uses in RosAlloc::BulkFree().\n\nRead rosalloc page map entries without a lock.\n\nDisabled for now.\n\nThis change speeds up Ritz MemAllocTest by ~25% on host and reduces\nthe GC sweep time, but somehow slows it down by ~5% on N4, which is\nwhy it\u0027s disabled for now. TODO: look into the slowdown on N4 more.\n\nBug: 8262791\nBug: 11790317\nChange-Id: I936bbee9cfbd389e70d6343503bf0923865d2a2c\n"
    },
    {
      "commit": "4e30541a92381fb280cd0be9a1763b713ee4d64c",
      "tree": "84093651bbf0ad95b66b846c4f4cf4101994037b",
      "parents": [
        "e266ba9935bd12d685d83f73cd8d759e46c3014d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 19 10:54:44 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 21 15:24:04 2014 -0800"
      },
      "message": "Fix and optimize verify object.\n\nVerifyObject no longer resides in heap. You can now enable\nVerifyObject for non-debug builds. VerifyStack is still slow, so it\nis now guarded by its own flag.\n\nFixed the image writer to not use verification at places where\nverification fails due to invalid reads.\n\nFixed RosAlloc to use SizeOf which doesn\u0027t call verify object.\n\nAdded a flag paremeter to some of the mirror getters / setters to\nbe able to selectively disable VerifyObject on certain calls.\n\nOptimized the GC to not verify each object multiple times during\nobject scanning if verify object is enabled.\n\nAdded 3 verification options: verify reads, verify this, and verify\nwrites so that you can select how much verification you want for\nmirror getters and setters.\n\nRemoved some useless DCHECKs which would slow debug builds without\nproviding any benefits.\n\nTODO: RosAlloc verification doesn\u0027t currently work with verify\nobjects.\n\nBug: 12934910\nBug: 12879358\n\nChange-Id: Ic61033104dfc334543f89b0fc0ad8cd4f4015d69\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": "1f3b5358b28a83f0929bdd8ce738f06908677fb7",
      "tree": "81545b9a91de8bde45f55c7dbc8a9d5358a89bdb",
      "parents": [
        "1f00671edaaa34578319d0fdaf605600ed539d41"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 03 14:00:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 03 16:00:05 2014 -0800"
      },
      "message": "Move SwapBitmaps to ContinuousMemMapAllocSpace.\n\nMoved the SwapBitmaps function to ContinuousMemMapAllocSpace since\nthe zygote space uses this function during full GC.\n\nFixed a place where we were casting a ZygoteSpace to a MallocSpace,\nsomehow this didn\u0027t cause any issues in non-debug builds.\n\nMoved the CollectGarbage in PreZygoteFork before the lock to prevent\nan occasional lock level violation caused by attempting to enqueue\njava lang references with the a lock.\n\nBug: 12876255\n\nChange-Id: I77439e46d5b26b37724bdcee3a0948410f1b0eb4\n"
    },
    {
      "commit": "a1602f28c0e3127ad511712d4b08db89737ae901",
      "tree": "44d7abfcaa57de85fd3c3c40d5bff3173cc60387",
      "parents": [
        "a0e4b01b6b1ef5c88e340e6b2c09f83e535777a1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 13 17:19:19 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 31 09:45:09 2014 -0800"
      },
      "message": "Add zygote space as its own space type.\n\nHelps prevent errors caused from doing invalid operations on the\nold alloc space.\n\nRemoved some duplicated code in mark_sweep.cc and semi_space.cc.\n\nChange-Id: I67a772cab30d698744c918aad581053f282a4a99\n"
    },
    {
      "commit": "85a43c055fcdc366293c61df6f65e586d6967841",
      "tree": "674337ec748dd93aea082637044478ee355390f3",
      "parents": [
        "0adc680c388913a63666797e907f87c4c6b0b4ea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 07 17:59:00 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 09 09:38:22 2014 -0800"
      },
      "message": "Bin packing the zygote (best fit).\n\nWe now use bin packing to fill holes in the non movable space with\nobjects from the bump pointer space when we create the zygote.\n\nZygote space PSS reduction on AOSP: ~300k.\nZygote size on AOSP: 2121040 bytes -\u003e 1597944 bytes.\n\nDeleted some unreachable code.\n\nBug: 11902311\n\nChange-Id: Idc957d69e93b3a941e0c298d47a21b73526dd286\n"
    },
    {
      "commit": "e6da9af8dfe0a3e3fbc2be700554f6478380e7b9",
      "tree": "127a0565fce79f05d82d0ff242fbbffa6e2bc6b3",
      "parents": [
        "977d409b959497eecc44a35cff16115d0f04ccab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 16 11:54:42 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 08 14:16:12 2014 -0800"
      },
      "message": "Background compaction support.\n\nWhen the process state changes to a state which does not perceives\njank, we copy from the main free-list backed allocation space to\nthe bump pointer space and enable the semispace allocator.\n\nWhen we transition back to foreground, we copy back to a free-list\nbacked space.\n\nCreate a seperate non-moving space which only holds non-movable\nobjects. This enables us to quickly wipe the current alloc space\n(DlMalloc / RosAlloc) when we transition to background.\n\nAdded multiple alloc space support to the sticky mark sweep GC.\n\nAdded a -XX:BackgroundGC option which lets you specify\nwhich GC to use for background apps. Passing in\n-XX:BackgroundGC\u003dSS makes the heap compact the heap for apps which\ndo not perceive jank.\n\nResults:\nSimple background foreground test:\n0. Reboot phone, unlock.\n1. Open browser, click on home.\n2. Open calculator, click on home.\n3. Open calendar, click on home.\n4. Open camera, click on home.\n5. Open clock, click on home.\n6. adb shell dumpsys meminfo\n\nPSS Normal ART:\nSample 1:\n    88468 kB: Dalvik\n     3188 kB: Dalvik Other\nSample 2:\n    81125 kB: Dalvik\n     3080 kB: Dalvik Other\n\nPSS Dalvik:\nTotal PSS by category:\nSample 1:\n    81033 kB: Dalvik\n    27787 kB: Dalvik Other\nSample 2:\n    81901 kB: Dalvik\n    28869 kB: Dalvik Other\n\nPSS ART + Background Compaction:\nSample 1:\n    71014 kB: Dalvik\n     1412 kB: Dalvik Other\nSample 2:\n    73859 kB: Dalvik\n     1400 kB: Dalvik Other\n\nDalvik other reduction can be explained by less deep allocation\nstacks / less live bitmaps / less dirty cards.\n\nTODO improvements: Recycle mem-maps which are unused in the current\nstate. Not hardcode 64 MB capacity of non movable space (avoid\nreturning linear alloc nightmares). Figure out ways to deal with low\nvirtual address memory problems.\n\nBug: 8981901\n\nChange-Id: Ib235d03f45548ffc08a06b8ae57bf5bada49d6f3\n"
    },
    {
      "commit": "ec05007f8619f8b0cc868d06731e07f84bb74c5b",
      "tree": "5ead8619ecdde844b0e0af2e2a790e50c331fe7a",
      "parents": [
        "5a2ced515a456f15dcf194843c024e835eda7dbe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 07 16:00:07 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 07 16:32:26 2014 -0800"
      },
      "message": "Refactor sweeping logic into malloc space.\n\nRemoves duplicated code in MarkSweep/SemiSpace.\n\nDeleted VerifyImageRoots since it had race conditions and is tested\nby pre/post GC heap verification.\n\nChange-Id: I9636359ff6adb3e93d56ce77a3e15299ed23dfd5\n"
    },
    {
      "commit": "573f7d2d68e1838a0485e6b40d90c967526e00c2",
      "tree": "c2f979480290e0248e878d7c78ab5aed743565d4",
      "parents": [
        "0bf1f266869776c2dd21b3242599d74ac80855f0"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Dec 17 11:54:23 2013 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Dec 17 17:27:53 2013 -0800"
      },
      "message": "Fix an array copy benchmark regression.\n\nAdd different page release modes to rosalloc.\n\nBug: 12064551\nChange-Id: Ib837bbd1a2757741a4e2743e0a1272bf46a30252\n"
    },
    {
      "commit": "cf58d4adf461eb9b8e84baa8019054c88cd8acc6",
      "tree": "c49fa473b17e299bc649688076e7d69938741e4e",
      "parents": [
        "be56c9e63335ce99f1042e8660aeac4690b965a9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 14:21:22 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Sat Nov 16 21:35:03 2013 -0800"
      },
      "message": "A custom \u0027runs-of-slots\u0027 memory allocator.\n\nBug: 9986565\nChange-Id: I0eb73b9458752113f519483616536d219d5f798b\n"
    }
  ]
}
