)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b75f1e55959debe8a1f3924726d40f3d1ea16b8c",
      "new_mode": 33188,
      "new_path": "libmemunreachable/Allocator.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0a4d4cfbac5c1529b443a8b6ea9afb1b5e4e0a3",
      "new_mode": 33188,
      "new_path": "libmemunreachable/Allocator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0df26a84a50bd4a34d30dd733845e05224a82aaf",
      "new_mode": 33188,
      "new_path": "libmemunreachable/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a0c33ddeebb0dc79de2a34c3a48c3e261d81836",
      "new_mode": 33188,
      "new_path": "libmemunreachable/HeapWalker.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4be1934c3cf0458a6becfbf68e91d80218e1fe2b",
      "new_mode": 33188,
      "new_path": "libmemunreachable/HeapWalker.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "080f8a7d5818fb09899fa03e9b42b09c9ed427f3",
      "new_mode": 33188,
      "new_path": "libmemunreachable/LeakPipe.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3f4e0b70d6c2a80df8966c6220048adc2515a985",
      "new_mode": 33188,
      "new_path": "libmemunreachable/LeakPipe.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3580c01719b6b36847a8daec7ded1669146a00a",
      "new_mode": 33188,
      "new_path": "libmemunreachable/LineBuffer.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a015c466e79beba7c1632eb99f81dbdbbd3e8fa0",
      "new_mode": 33188,
      "new_path": "libmemunreachable/LineBuffer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e44035bd866167e5473b2ed1feeebd812a86040",
      "new_mode": 33188,
      "new_path": "libmemunreachable/LinkedList.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cb3f1a52cc4c44f9fcb65f70e148d29f95e16204",
      "new_mode": 33188,
      "new_path": "libmemunreachable/MemUnreachable.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7cca7c15df66853d35ff700b265775c5ea771693",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ProcessMappings.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3b7496df8e225ea511f04cd574a0d7f801b0547",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ProcessMappings.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa5b344a39e3054c8bea464a4869616a3029c3cc",
      "new_mode": 33188,
      "new_path": "libmemunreachable/PtracerThread.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4d6ca9a0dc52c9a3bee7743cf6b724c56b5aba99",
      "new_mode": 33188,
      "new_path": "libmemunreachable/PtracerThread.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61a47de72840d4750c6da74406d4efe223aa6a97",
      "new_mode": 33188,
      "new_path": "libmemunreachable/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "019deea4180a6f34008d27d8b23ca7625a25a79d",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ScopedAlarm.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f9637621d079629ec941fcdb040956c259337ac",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ScopedDisableMalloc.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9beef9a59e05a949bceab1ba53e43629f3226a89",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ScopedPipe.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45e8c819df763b9724b50d6fe94fd45fef54df1c",
      "new_mode": 33188,
      "new_path": "libmemunreachable/Semaphore.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6357840201ded085580a8abc6057b5808d52acda",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ThreadCapture.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1022cad1f57c704a06aa596c654334b3c9ef169c",
      "new_mode": 33188,
      "new_path": "libmemunreachable/ThreadCapture.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e4ade1d33c3e3fb7007150867eeb2ad06ae9ff7",
      "new_mode": 33188,
      "new_path": "libmemunreachable/anon_vma_naming.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "92de24a81da0ce45af387533bba592dc90a5abd1",
      "new_mode": 33188,
      "new_path": "libmemunreachable/bionic.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4f01ce9980506e698c71dcc61abbcac7379fbb9",
      "new_mode": 33188,
      "new_path": "libmemunreachable/include/memunreachable/memunreachable.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cdfbfd9d68a03324161e4287a12d07aec0e9dd17",
      "new_mode": 33188,
      "new_path": "libmemunreachable/log.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d8e473ebaf8e585f4931ca78871b093860d2685c",
      "new_mode": 33188,
      "new_path": "libmemunreachable/tests/Allocator_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9921eb65e59fa2e8751902fd0ec120a93b52d146",
      "new_mode": 33188,
      "new_path": "libmemunreachable/tests/HeapWalker_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0747b12b630fd30afeaab66934a8ff0d9fde5535",
      "new_mode": 33188,
      "new_path": "libmemunreachable/tests/MemUnreachable_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cefe94e6a6c7ac1293556f913d9fe8d01aa4f1f6",
      "new_mode": 33188,
      "new_path": "libmemunreachable/tests/ThreadCapture_test.cpp"
    }
  ]
}
