)]}'
{
  "log": [
    {
      "commit": "ed59ff4729124ac49fa042c60b7391c509e5adb9",
      "tree": "a56504cc2030a6dd192662a25836417bd53ad32e",
      "parents": [
        "07c2c9a58df5c85880c559882e98f9cd54c599e0"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Aug 24 11:57:57 2018 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Aug 24 12:30:09 2018 -0700"
      },
      "message": "Remove ashmem from system/core\n\nThis topic removes ashmem from ART. Changes the names in system/core\ntoo. It only affects \"dalvik-\" ashmem regions which are the majority.\n\nChange-Id: Id993b4510d9b1461954cd8a6bf8ccede45fdaacc\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "95c34a72af2c34c75710f6d109d006ad19603e39",
      "tree": "cd0d4673e1ebd2e39fddb02fe904c816d408e707",
      "parents": [
        "56d079b40a4978c3bc929c9d9513119c62d0de1c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 12:06:20 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 22 12:06:20 2018 -0700"
      },
      "message": "bionic supplies PR_SET_VMA now.\n\nBug: N/A\nTest: builds\nChange-Id: I8254711543cbf11bdf905ea441655ca1c1e82aac\n"
    },
    {
      "commit": "38488907a09c88d2c3954a2dc69e5a4785d6a5af",
      "tree": "160d2c2cca2c491e1b905793e6f0d6b90d78beef",
      "parents": [
        "1db3789252342c5bfd34d889792866c3b4357b0c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:13:16 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 13:55:07 2018 -0700"
      },
      "message": "Move libbacktrace off cutils.\n\nThere\u0027s still \u003ccutils/atomic.h\u003e in a test, but I don\u0027t understand why\nthat isn\u0027t just std::atomic.\n\nAlso add a shared tgkill wrapper to libbase.\n\nBug: N/A\nTest: ran tests\nChange-Id: Idd4baa1e1670a84b3a8f35803cc5ffe5aae008a6\n"
    },
    {
      "commit": "1c1b6a0cdb8eb46cbf042e63b77faa1b7dcfd89f",
      "tree": "5d0e0a0d1395c7788b2c59003bfeba57a43136f1",
      "parents": [
        "d580c441ab45a6b7278da003e19af64e9ea2cc71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 30 10:53:46 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 30 10:53:46 2018 -0700"
      },
      "message": "libmemunreachable: fix docs formatting.\n\nBug: N/A\nTest: gittiles\nChange-Id: I59e7d22562cffa4e4a3c2a186523ae0f15623950\n"
    },
    {
      "commit": "18f368560090619bb4284a408262feb86c747002",
      "tree": "48f57ae54016bd7645990fb1f95f5cc7f8d5097e",
      "parents": [
        "3464bc4b439e01244c0a6b5f35e8e949e0f16096"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 17 16:11:53 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 17 16:17:28 2018 -0700"
      },
      "message": "Document using libmemunreachable on an app\n\nDocument dumpsys meminfo --unreachable, and how to enable\nmalloc_debug backtraces on a single app.\n\nTest: none\nChange-Id: I649afdfff1c7438f74950395639b06c39cae3ca0\n"
    },
    {
      "commit": "0f837fe8ca3a9494876abc481dbe73b0c07d16bb",
      "tree": "f3967373b991f135e9018aee07877f306cd9bb12",
      "parents": [
        "da6ab73420760da9fe39ba3f26068c6d1ad46537",
        "3841accba82b47087647d023e670219ac3627710"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue May 15 18:01:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 18:01:56 2018 +0000"
      },
      "message": "Merge \"libprocinfo: add functions reading process map file.\""
    },
    {
      "commit": "ca71f170b78e4707dbaa5bf4ddace47a455b4699",
      "tree": "5f8e73aca9d8d0b597af10320520334560fc98a5",
      "parents": [
        "86dade8f6fcf3b0e72667b78341d8a74a1bb9162"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 14:55:39 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 15:24:28 2018 -0700"
      },
      "message": "Make memunreachable_test more robust against false negative leaks\n\nFor some reason, the memunreachable tests are rock solid on the\ndevices covered by APCT, but catch a ton of false-negatives on\nhikey960, which show up as failures that look like:\nsystem/core/libmemunreachable/tests/MemUnreachable_test.cpp:200: Failure\nExpected equality of these values:\n  1U\n    Which is: 1\n  info.leaks.size()\n    Which is: 0\n\nThese happen when a stray copy of a pointer is lying around that\npoints to the memory it is expected to leak.  The stray pointers\ncan be on the stack or in the jemalloc thread cache of freed\nallocations, which is always considered active memory.\n\nAdd some extra cleanups to get rid of old pointers.\n1.  Clear the tcache when destructing UnreachableMemoryInfo\n2.  Clear the stack and tcache before and after each test\n3.  Make MemunreachbleTest.twice match MemunreachableTest.stack\n\nAlso fix MemunreachableTest.notdumpable, which was only passing\nwhen run as root, which was bypassing what the test was trying\nto cover.  Make the test pass when run as non-root, and skip\nwhen the test is running as root.\n\nBug: 79701104\nTest: memunreachable_test\nTest: memunreachable_test as root\nChange-Id: Ia6c6df11e76405d08118afcc19c1fe80a6684c56\n"
    },
    {
      "commit": "3841accba82b47087647d023e670219ac3627710",
      "tree": "2e5d901771563dded16721f694530b3ddc53e8ed",
      "parents": [
        "3607fe672a1aa0fa775df01b60d18d287e7f8686"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Thu May 10 17:19:12 2018 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 14 14:00:18 2018 -0700"
      },
      "message": "libprocinfo: add functions reading process map file.\n\nAdd test and benchmark.\nAlso switch libbacktrace, libunwindstack, libmemunreachable\nto use libprocinfo for map file reading.\nThe benchmark shows using libprocinfo speeds up map file reading\nin libbacktrace and libunwindstack 18% - 36% on walleye.\n\nBug: http://b/79118393\nTest: run procinfo_test.\nTest: run libunwindstack_test.\nTest: run libbacktrace_test.\nTest: run memunreachable_test.\n\nChange-Id: Icf281c352f4103fc8d4ba6732c5c07b943330ca1\n"
    },
    {
      "commit": "40fdf3f4ab587f01d95b2ec119d817499b0edece",
      "tree": "ca59f23937fb33ebf7c1a6cf088eda0d0f7ce835",
      "parents": [
        "f88905d231367eeeb72379d9eb2debbadb47b788"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 27 16:12:06 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 27 16:12:06 2018 -0700"
      },
      "message": "Add test_suites lines.\n\nBug: N/A\nTest: builds\nChange-Id: Ic5e2b9206bcfcb53c774989013b5db6aab462e42\n"
    },
    {
      "commit": "29e54f8e75d546dc51db8bd7fc1c625c9647b616",
      "tree": "b136d3bed2fc00e73286158b501a7c9fe38090f3",
      "parents": [
        "22dc27b9fa46b20aca4f5982979681a858a97284"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 09 14:43:17 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Apr 16 16:00:15 2018 -0700"
      },
      "message": "Use ld when lld fails\n\n* Android\u0027s clang lld link rules do not work with the special link order of\n  libunwind_llvm yet.\n\nBug: 78118944\nTest: make checkbuild and boot\nChange-Id: Ife9707f111dfd24cb84b56754a4fc3f826f722c4\n"
    },
    {
      "commit": "f013b621520bbfaaeb165ddd430accbe3fe66df2",
      "tree": "336f6657fbf6872533143ada5d94969d5e73d445",
      "parents": [
        "dbfbf85f0cbdce188b9516789fe701ddadbcf3cb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 15 14:22:20 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 15 14:57:22 2018 -0700"
      },
      "message": "Remove test_suites: [\"vts\"] from memunreachable_binder_test\n\nmemunreachable_binder_test is pulled in by\ntest/vts/tools/build/tasks/list/vts_test_bin_package_list.mk, it\ndoesn\u0027t need to be listed in test_suites.\n\nFixes warnings:\nbuild/make/core/base_rules.mk:620: warning: overriding commands for target `out/host/linux-x86/vts/android-vts/testcases/memunreachable_binder_test\u0027\nbuild/make/core/base_rules.mk:620: warning: ignoring old commands for target `out/host/linux-x86/vts/android-vts/testcases/memunreachable_binder_test\u0027\n\nTest: vts-tradefed run commandAndExit vts -m VtsKernelBinderTest\nChange-Id: Ifd282b2f5bb652295fa34ad247919eb85ea7abc8\n"
    },
    {
      "commit": "51e6c252c495234fc4acc256d65fcb04888357a2",
      "tree": "03ee62be59bfcff292a4c52e19ed6254973a5d54",
      "parents": [
        "cdf778f5d92ab8748897a4d95693524d3273c23a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 27 16:00:00 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 27 18:29:18 2018 -0800"
      },
      "message": "Make memunreachable_binder_test suitable for VTS\n\nLink statically against libmemunreachable to avoid runtime\ndependency on libmemunreachable.so.\nProvide a better error when run as non-root.\nRename the test to MemunreachableBinderTest.\nAdd comments explaining the test sequence.\n\nBug: 28275695\nTest: memunreachable_binder_test\nChange-Id: Iddfba636205b7ca3ad31a6ba2c4e85abadd32d0d\n"
    },
    {
      "commit": "dc699a269f6a22af6cbba0f6e1359fde103dc4d3",
      "tree": "db8830dc9e776480c4bc2170d276582d57a9a83a",
      "parents": [
        "8c0c1ba98939a201f758fc3952ab59c7429132c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 17:58:14 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 16 17:58:14 2018 -0800"
      },
      "message": "bpfmt.\n\nBug: N/A\nTest: builds\nChange-Id: I89ad00e1c4c7e0767bc80a7ac7935a4d55e090ac\n"
    },
    {
      "commit": "b650aef2a031fbb6cc2a7bef832fa60eb355f9a1",
      "tree": "25b4166dff5d60404d41e3b5db67af25e27ce7b4",
      "parents": [
        "2ccde89153321d2c98787d6320ac15602494a78d"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Thu Feb 08 15:06:43 2018 -0800"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Thu Feb 08 15:07:47 2018 -0800"
      },
      "message": "Add explanation for clone use\n\nTest: no code changes\nChange-Id: I70c8af8261cda3163677557fd78ae0119b1f1be0\n"
    },
    {
      "commit": "693d63f9cfc21e3334c6f8f228d73c4fb60ced8b",
      "tree": "f0cc35536aff301e680302b8f3654517b8863acc",
      "parents": [
        "aaa0bbce8eadf1a428493f3524066a74447eded4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 11:31:02 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 07 13:30:03 2017 -0800"
      },
      "message": "Add OWNERS.\n\nBug: N/A\nTest: N/A\nChange-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65\n"
    },
    {
      "commit": "80136a1e4142d66846cf9024ac83346a9444cdca",
      "tree": "e090abd375b3570d59ea39f96d38626831e697d2",
      "parents": [
        "7229576bfed017f78d90102db357de2f9f1f5b45"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Sun Sep 24 13:36:29 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Sun Sep 24 13:36:29 2017 -0700"
      },
      "message": "Silence static analyzer warnings about memory leaks\n\nThe static analyzer complains that this memory is leaked regardless of\nhow I try to work around it (unless we escape the memory by using a\nglobal or something, but...). Basically, as long as there\u0027s some sort\nof operation on the reinterpret_cast\u0027ed pointer, it complains. If we\nremove the bitwise negations, it doesn\u0027t. Doing so would presumably\ndefeat the purpose of this test, though, so add a NOLINT.\n\nBug: 27101951\nTest: mma. No more static analyzer warning for this file.\nChange-Id: If9008946a2145d17b8651535141bfd7ec9224739\n"
    },
    {
      "commit": "180e5e7021d17176bf2f5f110970e58cb19d6310",
      "tree": "2bfa06335390fe0ceb35a31bc05712ab9c790288",
      "parents": [
        "cfadedb1391f82a25bc0209aaa2e069875657776"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 12 16:54:53 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 12 17:01:20 2017 -0700"
      },
      "message": "Fix static analyzer warnings\n\nThe static analyzer was complaining that we were potentially leaking\nmemory here (in `ASSERT_NE(ptr, nullptr)` after `new (char)`). This\nwasn\u0027t correct, but it\u0027s also not possible for `new` to return nullptr\nwithout std::nothrow.\n\nIn any case, swap to direct calls to `::operator new`, since it looks\nlike this test explicitly wants calls to `::operator new` to be emitted\n(which the C++ standard doesn\u0027t guarantee for all `new` expressions).\n\nBug: 27101951\nTest: mma; static analyzer warnings are gone. Also ran\nmemunreachable_test on marlin; no failures.\nChange-Id: Ia740e41079f263040da978ba1ccc71c9c39f53fd\n"
    },
    {
      "commit": "b6ba817de4b80ec2430383899b051e86dd2bec27",
      "tree": "d89607250656b47a2a55ac2a159e0f640ff84df1",
      "parents": [
        "7f16cad877571ce8ef0808dcdb81234d61b771ca"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Aug 23 10:25:22 2017 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Aug 23 20:46:38 2017 +0200"
      },
      "message": "Define current ABI string in android-base/macros.h\n\nTest: make\nChange-Id: I8200d7b3232edba43a583c5ff1e1b0f78c768f69\n"
    },
    {
      "commit": "cd15fc7ba80b31539e85792ec35d7ebe0c8ff764",
      "tree": "b834af3b7e5dbb8562b06face0bd2bbaecf0e10a",
      "parents": [
        "603cae8b4812c21b92f559d190c7d21534dbeef7"
      ],
      "author": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Mon Jul 24 19:32:07 2017 +0200"
      },
      "committer": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Tue Jul 25 14:29:50 2017 +0200"
      },
      "message": "Remove LOCAL_CLANG and clang: true\n\nclang is the default compiler since Android nougat\n\nTest: mma \u0026 verified it´s still build with clang\nChange-Id: I34adaeef2f6558a09f26027271222bad94780507\nSigned-off-by: Lennart Wieboldt \u003clennart.1997@gmx.de\u003e\n"
    },
    {
      "commit": "454285dfcc6467a4745017134458fdc16c1c0220",
      "tree": "1bb58447a2c8cb32dc072115ef0510db3cab6e2d",
      "parents": [
        "f42d02830de827096150fea42e99c55fdb2b7df7",
        "f572b91c4f5acf739742da53ae3406e615c2d756"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 13 19:41:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 13 19:41:26 2017 +0000"
      },
      "message": "Merge \"libmemunreachable: track kernel binder references\""
    },
    {
      "commit": "f572b91c4f5acf739742da53ae3406e615c2d756",
      "tree": "3b1cf54be248ae7b2293abd8a383c89fe2feb0e3",
      "parents": [
        "c31963b5c255d57e162f4666f80b438ac74413ac"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 20 18:07:29 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 12 14:59:11 2017 -0700"
      },
      "message": "libmemunreachable: track kernel binder references\n\nThe kernel can hold references to binder objects that have no userspace\nreferences.  Allow libmemunreachable to call into libbinder and\nlibhwbinder to get lists of kernel references.  Use undefined weak\nsymbols so that libmemunreachable will continue to work in processes\nthat do not have libbinder.\n\nTest: memunreachable_binder_test\nBug: 28275695\nChange-Id: I9eae73f2a51a49a7025ffe6309ccdc2693a2391b\n"
    },
    {
      "commit": "b9e74ba40004b15624a606da47a2b9a57c5d49dc",
      "tree": "050649e47578efcf9b2e1cc7174dde3b5f381fbc",
      "parents": [
        "508e0b8b34b841f85f1269826bb2ae33967f081f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 06 17:52:23 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jul 07 01:07:05 2017 +0000"
      },
      "message": "Add test config for memunreachable_test\n\nTest: none\nChange-Id: Ieb297a2fcece6365a074cd470b3ca56e2baea926\n"
    },
    {
      "commit": "eac4ecc34f4e440ba8317a2f1819d2d5eac7160a",
      "tree": "3d40d2db6ca2abc8a52ed7397028f42b24083b8a",
      "parents": [
        "51b4f48280bed76bdc8c1758ff6c77435989a33e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 29 17:12:01 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 29 17:13:35 2017 -0700"
      },
      "message": "Fix ScopedSignalHandler\n\nI4ae2d82fdfdd58cf8ef1dfb6c401cef4ba9d3e88 broke memunreachable_test\nby replacing signal_ with signal.\n\nTest: memunreachable_test\nChange-Id: I8148321e3a94530867106708a33b5b63ed867380\n"
    },
    {
      "commit": "76464d958bd17f365e16c0dcb2d3123aab67c36a",
      "tree": "16ba7ed2f1dd2e8009dfda43067c8b9a22465e4a",
      "parents": [
        "f3ce8bc8aed76b07d928971e627e21c81be75e91"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 14:19:18 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 14:21:52 2017 -0700"
      },
      "message": "Fix stack test on arm32\n\nThe stack test puts a pointer to an allocation on the stack, checks\nthat there are no leaks, then lets it go out of scope and checks\nthat libmemunreachable can find a leak.  This works on arm64, but\non arm32 the pointer on the stack doesn\u0027t get overwitten and the\nleak is not detected.  Rewrite the pointer to be NULL instead.\n\nTest: memunreachable_test\nChange-Id: I5959a34cbb572a5d8670270077a85d247a3a4880\n"
    },
    {
      "commit": "f3ce8bc8aed76b07d928971e627e21c81be75e91",
      "tree": "2bf9b699f9269764059c657221bb4b8756b1a599",
      "parents": [
        "a9939e9a23ea21f4f8dc69cf1dae8e95debadcfb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 13:45:44 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 13:46:56 2017 -0700"
      },
      "message": "libmemunreachable: turn off MEM_ALOGV messages\n\nThe move to async safe logging in I3d3b2111f6f6bf8a0d7039295d34d5168c191651\ncaused MEM_ALOGV messages to print even when NDEBUG was set.\n\nTest: builds\nChange-Id: Ibebe69d8c96f8f2556991c1eb5446a77782d43c7\n"
    },
    {
      "commit": "a9939e9a23ea21f4f8dc69cf1dae8e95debadcfb",
      "tree": "3ff7dc55ea77d15b821d1f4b011390a881449044",
      "parents": [
        "a83881e33ce29ee236c924d669cb41a9d816962d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 21 13:13:00 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 10:58:23 2017 -0700"
      },
      "message": "Move libmemunreachable into namespace android\n\nPutting libmemunreachable in the global C++ namespace was an oversight,\nmove it into namespace android.\n\nTest: m -j checkbuild\nChange-Id: I0799906f6463178cb04a719bb4054cad33a50dbe\n"
    },
    {
      "commit": "a83881e33ce29ee236c924d669cb41a9d816962d",
      "tree": "10d1c371968a5a726641e1d2c0e92739008be678",
      "parents": [
        "07a57f0f283938c5e558d79c62d4c2d4c24d3d03"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 10:50:05 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 22 10:58:05 2017 -0700"
      },
      "message": "libmemunreachable: clang-format everything\n\nclang-format -i --sort-includes $(find . -name \"*.cpp\" -o -name \"*.h\")\n\nTest: builds\nChange-Id: Ia8e0677fe7f3f26dddba3a851cd2dfab9f14e421\n"
    },
    {
      "commit": "199c27734f0e27aab5ed26ca20b2c93945c29732",
      "tree": "43ff0261926590e78d9d53c0f5c5328b5e63b307",
      "parents": [
        "b6d3f282875416c3817aa163802f4b46b10bd981",
        "56731b4e2f9856a1d87a7672bfb621e68a5ad547"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 21 15:09:53 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 21 15:09:55 2017 +0000"
      },
      "message": "Merge \"Shave a stack frame off asserts.\""
    },
    {
      "commit": "56731b4e2f9856a1d87a7672bfb621e68a5ad547",
      "tree": "bf6f34d38b60f229b4093b3e41cf36558580903f",
      "parents": [
        "b001cc5b1c544efe5b0db5c7a10dd6efdb8fad4d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 20 17:31:29 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 20 17:31:29 2017 -0700"
      },
      "message": "Shave a stack frame off asserts.\n\nWe can\u0027t implement MEM_LOG_ALWAYS_FATAL_IF any more, but it wasn\u0027t really\nuseful anyway.\n\nBug: N/A\nTest: ran `crasher assert` and `crasher64 assert`\nChange-Id: I4ae2d82fdfdd58cf8ef1dfb6c401cef4ba9d3e88\n"
    },
    {
      "commit": "ce102dd74f02157f7f4f974843d334c18cd09b22",
      "tree": "13ce41cb0979de1991c3eae6f8e3641084ccd06b",
      "parents": [
        "ad4aa9e169529615ba7c74b942aaee53a1425a78"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 20 10:10:59 2017 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jun 20 10:11:55 2017 -0700"
      },
      "message": "Remove libmemunreachable from the VNDK.\n\nIt depends on functionality in the bionic\nallocator, which may get updated independently\nof the vendor partition (as libc is in the LL-NDK).\n\nBug: 33241851\nTest: builds\nChange-Id: I435679843229d0d4d2e2be7bfe8c27f558a016dd\n"
    },
    {
      "commit": "72d3881412d012bfa06583e4b06bdff16a2e6d8e",
      "tree": "12448f01ac1f7d4c79ef4b4fbb92f342d90f0245",
      "parents": [
        "6cc5927e0d35e2e349268b9688c84f5a28878a10"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 13 16:41:58 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 15 10:57:37 2017 -0700"
      },
      "message": "Add a helpful error message if GetUnreachableMemory fails\n\nThe primary reason for GetUnreachableMemory failing is selinux\nblocking system apps from ptracing themselves.  Add a helpful\nerror message suggesting setenforce 0.\n\nBug: 27945735\nTest: dumpsys meminfo --unreachable com.android.systemui\nChange-Id: Ibfa9507860be36dffd514f82027f7a2f8a72ac48\n"
    },
    {
      "commit": "52eaeb48255082ceaafea20dd9339545b6174fb4",
      "tree": "da06c51137fa60ea626eaa139618d3b118620bbf",
      "parents": [
        "efb30b0ccdd22500897033a0923a079d4454adb8"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Wed May 17 15:04:23 2017 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed May 24 14:32:28 2017 -0700"
      },
      "message": "Add vendor_available:true to libmemunreachable\n\nBug: 38244611\nTest: build sailfish\nChange-Id: Ieb7fdcae4b96a1e1622ba98a7cfb56a95b798452\n"
    },
    {
      "commit": "9a4f572a9551c925c75fb47be901813082f2a1f4",
      "tree": "3a74f0ea6ea5d219c970cd428b35df1178eb9931",
      "parents": [
        "ddfd5056a29ad8a92cee075a558129cee7c64a84",
        "47e02f429d049d42afd4e10203aa64ae1c229032"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 06 06:30:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 06 06:30:41 2017 +0000"
      },
      "message": "Merge \"Small test fixes.\""
    },
    {
      "commit": "47e02f429d049d42afd4e10203aa64ae1c229032",
      "tree": "4b95c4778685459bdeafc705ed326fe880f41b31",
      "parents": [
        "484acce026c14c8303dee845b8021d5a11e7d1a7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 05 16:29:50 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 05 17:09:49 2017 -0700"
      },
      "message": "Small test fixes.\n\nBug: 31919199\n\nTest: Ran the unit tests.\nChange-Id: I62bdb007f9cfa57e3faaa05993fd6e23ce32b82f\n"
    },
    {
      "commit": "ae797ec305f44c6ef6b2db9861f27e5fed5de6a5",
      "tree": "78f0b73be7bc30b64894ba091f375583134c5b1a",
      "parents": [
        "fd8fab19df622e37007946a504c33549a4710af1"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri May 05 14:09:10 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri May 05 14:09:10 2017 -0700"
      },
      "message": "Remove unused lambda captures\n\nTest: build\nBug: 37752547\nChange-Id: Id318f412ad81b6e7de3ad644cba4405bb04f2729\n"
    },
    {
      "commit": "47dea71b165c855ec40e855f7514fb745dacac38",
      "tree": "16a4c2a15d9ded4438d1dd7d45a64764c16b8047",
      "parents": [
        "c7988b1f684d7c0b86a0e3d58228ebc45297c858"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 17:34:29 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 18:04:18 2017 -0700"
      },
      "message": "Move all logging to use the async safe logging.\n\nAlso, add a link to the .clang-format-2 for this directory and clang\nformat the files that changed.\n\nBug: 31919199\n\nTest: Boot bullhead.\nTest: Run unit tests on bullhead. There are a few that fail, but they\nTest: failed before and are not a result of this change.\nChange-Id: I3d3b2111f6f6bf8a0d7039295d34d5168c191651\n"
    },
    {
      "commit": "ac225780dd6ccf217e5fb64c7af8f41f9c54f4a1",
      "tree": "e1d7d6ac5060a784e0ed675e3dfb6ef7da963e8a",
      "parents": [
        "8fc6cc8910dbb4c77333aa432b4732237157ed0b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 25 11:23:10 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 02 18:38:46 2017 -0700"
      },
      "message": "Move libc_logging to libasync_safe.\n\nMove the name of the \"private/libc_logging.h\" header to \u003casync_safe/log.h\u003e.\n\nFor use of libc_malloc_debug_backtrace, remove the libc_logging library.\nThe library now includes the async safe log functions.\n\nRemove the references to libc_logging.cpp in liblog, it isn\u0027t needed because\nthe code is already protected by a check of the __ANDROID__ define.\n\nTest: Compiled and boot bullhead device.\nTest: Run debuggerd unit tests.\nTest: Run liblog unit tests on target and host.\nTest: Run libmemunreachable unit tests (these tests are flaky though).\nChange-Id: Ie79d7274febc31f210b610a2c4da958b5304e402\n"
    },
    {
      "commit": "30f991f251940be3ed11566fb71139852286f68a",
      "tree": "5cef5c112aa400da1ad1572d26fcc3b6b3099b6e",
      "parents": [
        "cdd7ec12be3dfb6a7fa2f597d2220445c96725cf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 13:19:54 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jan 11 09:31:15 2017 -0800"
      },
      "message": "liblog: use log/log.h when utilizing ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943\n"
    },
    {
      "commit": "36e0d390a2de7d13cdf667d9a7d125f0d66b3107",
      "tree": "b7ae89c6bbe40c5e820b8ddc2e2f073a67794911",
      "parents": [
        "0d762648d0b9cb29f13f3f8cb7815236078fafbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I18a1d816d63b64601485045070851f32d44e85eb\n"
    },
    {
      "commit": "ff2dcd9af994a23ed483939a416b48bdc10eefd5",
      "tree": "6e5a0dfe4e39c407eea7e39840eef5d56b720de4",
      "parents": [
        "66ce3e08c5632a20ea66bde6dd76397041edf034"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 15:54:45 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace log/log.h with android/log.h\n\nShould use android/log.h instead of log/log.h as a good example\nto all others.  Adjust header order to comply with Android Coding\nstandards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I33a8fb4e754d2dc4754d335660c450e0a67190fc\n"
    },
    {
      "commit": "8b31627b923ef3a4ada5bf63f019bc682a7c8db9",
      "tree": "79ce7791ea0843ff8208ffd2281139acd380b6f5",
      "parents": [
        "91811d2d34551d48ed8774c284852a099fd43b51"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 21 16:21:52 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 21 16:21:52 2016 -0700"
      },
      "message": "Add missing include.\n\nTest: mm\nBug: None\nChange-Id: I8be335ed677e8646d3912ac3db49451bff66eb65\n"
    },
    {
      "commit": "194edf772e4df2ade86acf97f616243aaef205fc",
      "tree": "32bb95c53295dcccdde4afa28eeb1cec46f36f39",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 15:01:36 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 16:19:21 2016 -0700"
      },
      "message": "Convert to Android.bp\n\nSee build/soong/README.md for more information.\n\nI tested the following tests on a Nexus9 and linux host, and they\ncontinued to pass:\n\n/data/nativetest{,64}/bootstat_tests/bootstat_tests\nout/host/linux-x86/bin/nativetest{,64}/bootstat_tests/bootstat_tests\n/data/nativetest64/memunreachable_test/memunreachable_test\nout/host/linux-x86/bin/nativetest{,64}/memunreachable_test/memunreachable_test\n\nThese continue to fail just like before this change:\n\n/data/nativetest{,64}/sync_test/sync_test (was /system/bin/sync_test)\n/data/nativetest{,64}/sync-unit-test/sync-unit-test\n/data/nativetest/memunreachable_test/memunreachable_test\n\nTest: See above\nChange-Id: I691e564e0cf008dd363e3746223b153d712e024d\n"
    },
    {
      "commit": "6dc68cb5f97a2f4fd3e0d105f34cd29dd73e0da5",
      "tree": "533121e90d08e695f1f9243fd82049876411904e",
      "parents": [
        "060b15e20ade882821e9f673abcd27c4e36f8857",
        "034c475931e8e4da54b499c0056121490f029865"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jul 29 16:57:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 16:57:17 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in system/core.\""
    },
    {
      "commit": "223bb4e21dab1d298473208ed91aca99a58b2a1b",
      "tree": "1fddf8cab0ec69fe6e50e2bea1b89324cd85c907",
      "parents": [
        "02ccdc5db9bb39488a3fe22a907b3211c3a464b9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jul 27 16:01:41 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Jul 27 16:01:41 2016 -0700"
      },
      "message": "Suppress clang-tidy performance warnings in libmemunreachable.\n\nBug: 30413862\nChange-Id: If3ed64d2e1ca1f46599de9fe97c769f468ee1a68\nTest: build with WITH_TIDY\u003d1\n"
    },
    {
      "commit": "034c475931e8e4da54b499c0056121490f029865",
      "tree": "d07eac290b1d3744cd60ebe76486e0c2c937ea3d",
      "parents": [
        "02ccdc5db9bb39488a3fe22a907b3211c3a464b9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 12 13:50:44 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 26 11:26:01 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in system/core.\n\n* Declare explicit conversion constructors.\n* Add NOLINT for implicit conversion constructors.\n* Fix also some misaligned indendations.\n\nBug: 28341362\nChange-Id: Idf911f35923b408d92285cc1a053f382ba08c63e\nTest: build with clang-tidy\n"
    },
    {
      "commit": "749ae2d32f81301a2f998cf09d7a7d67aefd4104",
      "tree": "7b3c43a72cde1d68c5516c3c8ba424a01f09f567",
      "parents": [
        "54c121962bdf68c7c66724159260c926ce58e351"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 28 14:48:45 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 28 14:48:45 2016 -0700"
      },
      "message": "Remove unnecessary ARRAY_SIZE macros.\n\nUse the canonical one instead.\n\nChange-Id: Id80f19455f37fd2a29d9ec4191c1a0af80c5c0e7\n"
    },
    {
      "commit": "eabd5108b310c7dcc773285a15de5cd62b16575e",
      "tree": "24f17d7cbfb0911bc311321efe9ec2b99ee62120",
      "parents": [
        "9b0eb7cdf4ac4650fc3f476c2f5a91c50a18e524"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 18 15:41:16 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 18 15:41:16 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings in libion, libsparse, libmem*\n\nBug: 28705665\nChange-Id: I3dd5c086787f5e48ab100a71a42109ea0e417bf9\n"
    },
    {
      "commit": "7bdd6a8b5a24214ae9f8d47b0236c1bcd6319c89",
      "tree": "9f925529b99f00bf2171f020fb9afa00a65a54ba",
      "parents": [
        "3b9ba98e9eda85baa6f08409177fd1f23307b2d0",
        "1c563d96f000876d77b2d33fbfb03c241bc503e1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Apr 30 05:10:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 30 05:10:05 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings.\""
    },
    {
      "commit": "1c563d96f000876d77b2d33fbfb03c241bc503e1",
      "tree": "2b4938eda86ade588cc77bbee202075d3f659bb4",
      "parents": [
        "3abd03232efd53bb3a73d1e76f6f72754457e18d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Apr 29 15:44:04 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Apr 29 15:44:04 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings.\n\nBug: 28341362\nChange-Id: I4504e98a8db31e0edcbe63c23f9af43eb13e9d86\n"
    },
    {
      "commit": "583a25083020802541d90ceb892a8c36bf1f49a0",
      "tree": "724b870f48b3ad22b2479a22e804379334d73a33",
      "parents": [
        "0965c0247bff0ed97dc1c67d129d19fe4707c623"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 26 17:10:04 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 29 15:14:06 2016 -0700"
      },
      "message": "Silently ignore duplicate heap entries\n\nVendor blobs on ryu mprotect heap pages, causing a single chunk mapping\nto appear as multiple mappings.  The heap iterator has to expand the\nrequested range to cover the beginning of the chunk to find the chunk\nmetadata, which will lead to duplicate identical allocations being\nreported from iterating over each of the split mappings.  Silently\nignore identical allocations, and only warn on non-identical allocations\nthat overlap.\n\nBug: 28269332\nChange-Id: Ied2ab9270f65d00a887c7ce1a93fbf0617d69be0\n(cherry picked from commit cecd64012db013331ff1071254ab543dcdf327bd)\n"
    },
    {
      "commit": "0965c0247bff0ed97dc1c67d129d19fe4707c623",
      "tree": "0174912bc771a3f7f7d2b38fadb1102193d470d8",
      "parents": [
        "17f3b1bad76925c327a6572f6058b32651499d3c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Apr 26 16:51:32 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 29 15:14:06 2016 -0700"
      },
      "message": "Handle segfaults while walking native heap\n\nVendor blobs on ryu mprotect heap pages, causing segfaults when dumping\nunreachable memory.  Handle segfaults within HeapWalker by mapping a\nzero page over any unreadable pages.  HeapWalker runs in the forked\nprocess, so the mapping will not affect the original process.\n\nBug: 28269332\nChange-Id: I16245af722123f2ad467cbc6f245a70666c55544\n(cherry picked from commit ba5d9ff6d9674a0f1e985b49f53863045aff558d)\n"
    },
    {
      "commit": "2c5d1d7cd914ec8ebf76c8a59d0889ebf5b538cd",
      "tree": "727283a4b1547819f686ac25d8167fff3d0c9544",
      "parents": [
        "3761365735de4cbc3c8581f0a5e972ad01f8378c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 28 12:15:36 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 28 12:15:36 2016 -0700"
      },
      "message": "Add operator int() to unique_fd.\n\nChange-Id: I7512559be7befbb8772d5529e06550267a2f1543\n"
    },
    {
      "commit": "33e601ac30c37ca3e8abcea804d74b11ba1f2bfb",
      "tree": "224c26713b3144e38d78d77591e25137f7142dd7",
      "parents": [
        "0f10562b56d40c7d2d895e7dba36492cb43919be"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 17:19:28 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Mar 08 14:25:23 2016 -0800"
      },
      "message": "Fix mac build\n\nDisable memunreachable_test for mac.\n\nChange-Id: Ie9594b6e5dfc661c4d709b419dbcb7b610434a84\n(cherry picked from commit e33686b7cad8169ba799f2348d86a670b4224220)\n"
    },
    {
      "commit": "0f10562b56d40c7d2d895e7dba36492cb43919be",
      "tree": "0e03ad3eea9b0cf4efd5e583517236eec3916167",
      "parents": [
        "c1228c7f2b21c3a21e462a48eb49e3ccfd2290d9"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 04 16:37:02 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 15:52:39 2016 -0800"
      },
      "message": "Add ABI to leak report\n\nAdd the ABI to the leak report so that it can be piped through\ndevelopment/scripts/stack.\n\nBug: 27208635\nChange-Id: I2e050a377305d48d2f904f34ea921f64e13dd00e\n(cherry picked from commit 11185af983f955f5c5d59c15e1a96ac610a528be)\n"
    },
    {
      "commit": "c1228c7f2b21c3a21e462a48eb49e3ccfd2290d9",
      "tree": "f2ecfb689bfb62861b14ff35c8723066eed9aba6",
      "parents": [
        "e4cbe0ec9a4c0389409024c54c9413082954d0ee"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 04 16:36:12 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 15:52:39 2016 -0800"
      },
      "message": "Combine leaks with same stacktrace\n\nCombine similar leaks (those with identical stack traces) into a single\nleak report, and sort the resulting leaks by total leak size across all\nsimilar leaks and their references.\n\nBug: 27208635\nChange-Id: Ia2bf2ccf3fcbc110d1c7ba60e3b77348d1c63d8d\n(cherry picked from commit 7a22e81c20e9a28b9cf7b99e0f46659a2b2a9de7)\n"
    },
    {
      "commit": "e4cbe0ec9a4c0389409024c54c9413082954d0ee",
      "tree": "b6f576f6036d391f2bef767b3d670bda9559399a",
      "parents": [
        "d6b3a2a0a36bf37f9c9d6ffc5fd8eaa43c214c71"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 04 16:34:42 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 15:52:39 2016 -0800"
      },
      "message": "Fix allocator::map template argument ordering\n\nallocator::map reversed Key and T from std::map\n\nBug: 27208635\nChange-Id: I4e4db704539d01b060cb948aa573cb674da48c7d\n(cherry picked from commit 4c5bccdd863f5369282771a156218041862cc9f1)\n"
    },
    {
      "commit": "d6b3a2a0a36bf37f9c9d6ffc5fd8eaa43c214c71",
      "tree": "00443966d813eeef4331bbef91d9525a75ff6b16",
      "parents": [
        "54a1610404986c998216a41b4c61c8b7aea4126c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 02 17:53:39 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 15:52:39 2016 -0800"
      },
      "message": "Fold leaks that are referenced by other leaks\n\nFind leaks that have no references at all, or are only referenced by\nother leaks in the same strongly connected component, and hide all\nreferenced leaks.\n\nBug: 27208635\nChange-Id: Ifbfd14e24e2ba0f8af7c1b887e57f34362720f2d\n(cherry picked from commit 8e8f34c5580d3b0b466d35f98bb12175e5dcf30a)\n"
    },
    {
      "commit": "54a1610404986c998216a41b4c61c8b7aea4126c",
      "tree": "08dbb1699493cc8027e0e543ace9896034a51685",
      "parents": [
        "a6680f78d4665b2a936f76311e6f60eb930992c8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 02 17:52:56 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 07 15:52:39 2016 -0800"
      },
      "message": "Compile some tests for the host\n\nCompile some tests for the host to ease debugging with valgrind or gdb.\n\nBug: 27208635\nChange-Id: Ib46fcfa333ceb721f26efca00b2fa60b9fba44e6\n(cherry picked from commit b8e20f557f315d2ab5e21f7bf70657bb16d5d42d)\n"
    },
    {
      "commit": "b1b7923efe96350a6ba31b027cc981bcfd6a7c85",
      "tree": "7eed072c15b1793be409940dcfd5d0ac664000db",
      "parents": [
        "fbaefc4d9d4e7e40ec0262123cd54762b81ed47a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 14 15:35:40 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 19 14:00:17 2016 -0800"
      },
      "message": "libmemunreachable: fix long timeout on error\n\nThe collection thread should unblock the parent when it fails in order\nto prevent a 100 second timeout delay.  Also reduce the timeout to 30\nseconds, and fix a few log messages.\n\nChange-Id: I47f9ce4f645c453810fec57bef557c32a665eefb\n"
    },
    {
      "commit": "bcb4ed3eaa92d23949d4ab33dbf1b2604bba8a18",
      "tree": "3fdec871a3f3ca3762df545224971fa403bb23d4",
      "parents": [
        "aae1eb2c4f10f3d2c49455eb37c4ae4b38ffa47d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 14 15:35:40 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 08 17:08:49 2016 -0800"
      },
      "message": "imprecise mark and sweep native memory leak detector\n\nlibmemunreachable uses an imprecise mark and sweep pass over all memory\nallocated by jemalloc in order to find unreachable allocations.\n\nChange-Id: Ia70bbf31f5b40ff71dab28cfd6cd06c5ef01a2d4\n"
    }
  ]
}
