)]}'
{
  "commit": "8f2a5a0b40fc82126c691d5c30131d908772aab7",
  "tree": "0b29a5dc82395c076387edb5af9ca271a91264c0",
  "parents": [
    "e23ed8c6441389a79c6504295184f7249e01a197"
  ],
  "author": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Fri Mar 15 15:30:25 2013 -0700"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Fri Mar 15 16:12:58 2013 -0700"
  },
  "message": "Clean up internal libc logging.\n\nWe only need one logging API, and I prefer the one that does no\nallocation and is thus safe to use in any context.\n\nAlso use O_CLOEXEC when opening the /dev/log files.\n\nMove everything logging-related into one header file.\n\nChange-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "98399d59bac85a503369598c9af6b456ab64d148",
      "old_mode": 33188,
      "old_path": "libc/Android.mk",
      "new_id": "b4613bae34ce21f153dc4d3eb024395383cf3bda",
      "new_mode": 33188,
      "new_path": "libc/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "6e299ac08b6e9c401e89490205384e1e8246b19c",
      "old_mode": 33188,
      "old_path": "libc/arch-arm/bionic/atexit_legacy.c",
      "new_id": "f35c68d11a6d14bf1d5b2e15b0a0d44dfb0a89ed",
      "new_mode": 33188,
      "new_path": "libc/arch-arm/bionic/atexit_legacy.c"
    },
    {
      "type": "modify",
      "old_id": "19116877ef904ede2449cd2f0eae248dda8acf3e",
      "old_mode": 33188,
      "old_path": "libc/arch-mips/bionic/cacheflush.c",
      "new_id": "97e67d4d20cbafe06c6f02020658576772e9499d",
      "new_mode": 33188,
      "new_path": "libc/arch-mips/bionic/cacheflush.c"
    },
    {
      "type": "modify",
      "old_id": "6ae97ccc059209d5f6c9a6a2f5893b1bcd35a73f",
      "old_mode": 33188,
      "old_path": "libc/bionic/__fgets_chk.cpp",
      "new_id": "429eda5154685b7815bb119f93a7411273b9be7e",
      "new_mode": 33188,
      "new_path": "libc/bionic/__fgets_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "7a98cb7165a4a1725ac4536c9a61cc16dd586255",
      "old_mode": 33188,
      "old_path": "libc/bionic/__memcpy_chk.cpp",
      "new_id": "b36cfdda5dd7b905b15391fc25b00fe51395bfba",
      "new_mode": 33188,
      "new_path": "libc/bionic/__memcpy_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "51f2e1cca9be5faa68b5baaf4227f2ae98f2d128",
      "old_mode": 33188,
      "old_path": "libc/bionic/__memmove_chk.cpp",
      "new_id": "ff770b5aa4e1e1f623cc7067c818acd1ef6b719d",
      "new_mode": 33188,
      "new_path": "libc/bionic/__memmove_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "99a12ad09aacd25df090435bb72e9ca0cc12503b",
      "old_mode": 33188,
      "old_path": "libc/bionic/__memset_chk.cpp",
      "new_id": "b201ed2ea7870cb8b6b9b715fbd1be75d703818c",
      "new_mode": 33188,
      "new_path": "libc/bionic/__memset_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "cae66b10a88330dda7f82d23278335de25b7ebc7",
      "old_mode": 33188,
      "old_path": "libc/bionic/__stack_chk_fail.cpp",
      "new_id": "d5031ac7b497509bebe92689efc47736c48f9ca3",
      "new_mode": 33188,
      "new_path": "libc/bionic/__stack_chk_fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "2450da6ccaddb904cd4b191fb55ed12e8f32058f",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strcat_chk.cpp",
      "new_id": "fb46e0d7d47e16e821b1db4d4babc7b3177e4156",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strcat_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "74ceda1bc38b69df957089479a062d3d22c75f73",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strcpy_chk.cpp",
      "new_id": "bfb6642356de81aa86231d74d9d8a728e7a34563",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strcpy_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "12676f4f0106aade291bbc532965046adcf5cda1",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strlcat_chk.cpp",
      "new_id": "96f62f9aa11e628ab75b49e510285314eb39087e",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strlcat_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "62fa14bc5b16d7ab643965aa3894c9f666b19a70",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strlcpy_chk.cpp",
      "new_id": "636966b5f49bf4c44cfa1cd0af42800d52472e92",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strlcpy_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "5cc052e56081061a72fe540703452ff27f0bf036",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strlen_chk.cpp",
      "new_id": "6ebf09c6fe5ac7ab4570a692e332accdc5edb231",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strlen_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "32a3962ff3b9504bbf62acb959e0953529b7111a",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strncat_chk.cpp",
      "new_id": "ab2854175ff39433d03615561dff1b6f250fac66",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strncat_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9676ed851da0ab870cb82898859dfd2b2312fe0",
      "old_mode": 33188,
      "old_path": "libc/bionic/__strncpy_chk.cpp",
      "new_id": "0f1797e2a2b41259ba03380e53c24affa0dcb3c2",
      "new_mode": 33188,
      "new_path": "libc/bionic/__strncpy_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e1bc96d287f47feae2f40896be3687de11b6deb2",
      "old_mode": 33188,
      "old_path": "libc/bionic/__umask_chk.cpp",
      "new_id": "ff67ed69d6d91bf2d69585a559e0f176849191c1",
      "new_mode": 33188,
      "new_path": "libc/bionic/__umask_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "95d491569f47131a28eb5eb078ead5354d3d3589",
      "old_mode": 33188,
      "old_path": "libc/bionic/__vsnprintf_chk.cpp",
      "new_id": "0fdda3ecedcb726ff4a5d7e36813d90ac06ece10",
      "new_mode": 33188,
      "new_path": "libc/bionic/__vsnprintf_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e1d10f55a4543ef890ab5f544117f3d71d5b5c3a",
      "old_mode": 33188,
      "old_path": "libc/bionic/__vsprintf_chk.cpp",
      "new_id": "12b0ca6ab5b8dfd29bfdbff286f2e356873bf684",
      "new_mode": 33188,
      "new_path": "libc/bionic/__vsprintf_chk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e38c16dbc442346a65a0c839bac249e8e58c7dac",
      "old_mode": 33188,
      "old_path": "libc/bionic/assert.cpp",
      "new_id": "6f221a56acc48aa99b6cc49de7529d64766a33f3",
      "new_mode": 33188,
      "new_path": "libc/bionic/assert.cpp"
    },
    {
      "type": "modify",
      "old_id": "9d53ad2b3e6aa38344eb768f650f45d6f74ea15b",
      "old_mode": 33188,
      "old_path": "libc/bionic/debug_stacktrace.cpp",
      "new_id": "87dbba3d9b347443774c20f79bbbd3e396d87dd7",
      "new_mode": 33188,
      "new_path": "libc/bionic/debug_stacktrace.cpp"
    },
    {
      "type": "modify",
      "old_id": "1ed3205a034dd5e9f26abdd8a828a013eb0f4615",
      "old_mode": 33188,
      "old_path": "libc/bionic/dlmalloc.c",
      "new_id": "7d4ef0f71c66e0bcac6eac683a53ba121494af4e",
      "new_mode": 33188,
      "new_path": "libc/bionic/dlmalloc.c"
    },
    {
      "type": "rename",
      "old_id": "793f8b19fe4d1635503499742f0b58f5e2bf3373",
      "old_mode": 33188,
      "old_path": "libc/bionic/debug_format.cpp",
      "new_id": "755dc8111844498c8d7b28efbfb9ca4b79f20cf0",
      "new_mode": 33188,
      "new_path": "libc/bionic/libc_logging.cpp",
      "score": 85
    },
    {
      "type": "delete",
      "old_id": "03ac6063d63ed56caae0ba6a4d5bbf2f08f96cc8",
      "old_mode": 33188,
      "old_path": "libc/bionic/logd_write.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "2ae98b6c0bdaa2ed9259e7a867d85bf06014b7cb",
      "old_mode": 33188,
      "old_path": "libc/bionic/malloc_debug_check.cpp",
      "new_id": "91cf2879963feef7a839b15378d2d40c0d6dcf63",
      "new_mode": 33188,
      "new_path": "libc/bionic/malloc_debug_check.cpp"
    },
    {
      "type": "modify",
      "old_id": "a05a5ef407e0e0d239f2d0c4e70ecbe79f87d4c4",
      "old_mode": 33188,
      "old_path": "libc/bionic/malloc_debug_common.cpp",
      "new_id": "2148d202f5ced5f9fdba110fb42c13cc8f16b159",
      "new_mode": 33188,
      "new_path": "libc/bionic/malloc_debug_common.cpp"
    },
    {
      "type": "modify",
      "old_id": "e15ccd0384f4f182f7c361226a0e69c48568ee52",
      "old_mode": 33188,
      "old_path": "libc/bionic/malloc_debug_common.h",
      "new_id": "12d0e65e201f7f1ba291d2a2bd2e91c65075bba9",
      "new_mode": 33188,
      "new_path": "libc/bionic/malloc_debug_common.h"
    },
    {
      "type": "modify",
      "old_id": "9e63a863fcdaae8ab5359e5041590af78017797b",
      "old_mode": 33188,
      "old_path": "libc/bionic/malloc_debug_leak.cpp",
      "new_id": "2db8a1f62e817b0089e9f8e25e993d78d077ae80",
      "new_mode": 33188,
      "new_path": "libc/bionic/malloc_debug_leak.cpp"
    },
    {
      "type": "modify",
      "old_id": "812a4512061ab1962d86ad302b94fd7fda6552af",
      "old_mode": 33188,
      "old_path": "libc/bionic/malloc_debug_qemu.cpp",
      "new_id": "08225c1e14fcaf863c38c9eca0cdab14c16d492c",
      "new_mode": 33188,
      "new_path": "libc/bionic/malloc_debug_qemu.cpp"
    },
    {
      "type": "modify",
      "old_id": "be4f04b5858eb12277ad0e1ad5eb20d11c17b8f9",
      "old_mode": 33188,
      "old_path": "libc/bionic/open.c",
      "new_id": "e3573a3cafd1c8a42dd9eff781f9172282be294d",
      "new_mode": 33188,
      "new_path": "libc/bionic/open.c"
    },
    {
      "type": "modify",
      "old_id": "c1abbaa1b7a3a75703cf7b50bcb86f2527fc1da4",
      "old_mode": 33188,
      "old_path": "libc/bionic/openat.c",
      "new_id": "2d09d17fcdfa4708ac0238ba1ffc3a2c7c199249",
      "new_mode": 33188,
      "new_path": "libc/bionic/openat.c"
    },
    {
      "type": "modify",
      "old_id": "368c46de2f5d5074b7ef2caaf9d4cf8369a03da9",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_create.cpp",
      "new_id": "15f18aa2fa3180dfddb758c671c1663fbd0ebfec",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_create.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8f0c5953584434e8de3b53b9eb46997964379c5",
      "old_mode": 33188,
      "old_path": "libc/bionic/pthread_debug.cpp",
      "new_id": "94c23de35df5f8c5afdf57afb989c5b4aa5eec62",
      "new_mode": 33188,
      "new_path": "libc/bionic/pthread_debug.cpp"
    },
    {
      "type": "modify",
      "old_id": "8ddc326e0d4723bd93bc98af670aa14b8c18044a",
      "old_mode": 33188,
      "old_path": "libc/bionic/stubs.cpp",
      "new_id": "e8411b7745fbf501fbe519474d45f7a832f46b60",
      "new_mode": 33188,
      "new_path": "libc/bionic/stubs.cpp"
    },
    {
      "type": "modify",
      "old_id": "838e084e236ca7eb2d9636e91d8b5b5441587066",
      "old_mode": 33188,
      "old_path": "libc/netbsd/resolv/res_cache.c",
      "new_id": "a2bc7ca440bc8c4bdddbdf4393a785fa97d06538",
      "new_mode": 33188,
      "new_path": "libc/netbsd/resolv/res_cache.c"
    },
    {
      "type": "modify",
      "old_id": "f3ee53979edb6b4fa815678fb6f0ef2fa44e1568",
      "old_mode": 33188,
      "old_path": "libc/netbsd/resolv/res_send.c",
      "new_id": "c6c863bfa116d518533e2cb8ff456fc8f5ee6b1b",
      "new_mode": 33188,
      "new_path": "libc/netbsd/resolv/res_send.c"
    },
    {
      "type": "modify",
      "old_id": "e05846a939d98dd3493ffd5aefb20be77bca64d6",
      "old_mode": 33188,
      "old_path": "libc/netbsd/resolv/res_state.c",
      "new_id": "3e1f67b82c3e10c8c54c98c7aaf86ebe564d1e1c",
      "new_mode": 33188,
      "new_path": "libc/netbsd/resolv/res_state.c"
    },
    {
      "type": "modify",
      "old_id": "438dc0496c7b01a32f2ffe0ffdd465a7dd07e5f7",
      "old_mode": 33188,
      "old_path": "libc/private/arpa_nameser.h",
      "new_id": "81195b526149af8ccc658f3099c25fe68c04738e",
      "new_mode": 33188,
      "new_path": "libc/private/arpa_nameser.h"
    },
    {
      "type": "rename",
      "old_id": "0bc1148344181f65a0d745be60cb5519eaf44055",
      "old_mode": 33188,
      "old_path": "libc/private/debug_format.h",
      "new_id": "4c9dc219098fe1d902c2b1e95333d19ce91c51f2",
      "new_mode": 33188,
      "new_path": "libc/private/libc_logging.h",
      "score": 64
    },
    {
      "type": "delete",
      "old_id": "a2828ec09a76418764311dbcc46d5aae00151e71",
      "old_mode": 33188,
      "old_path": "libc/private/logd.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "564ea80518817d90e5915fe14ce650d70ff58207",
      "old_mode": 33188,
      "old_path": "libc/string/strchr.c",
      "new_id": "93cb250b0d2780bb0b29d7c548589fd6fc89cdc0",
      "new_mode": 33188,
      "new_path": "libc/string/strchr.c"
    },
    {
      "type": "modify",
      "old_id": "5d0415e131815c8e05e90d8e4e349331380fd220",
      "old_mode": 33188,
      "old_path": "libc/string/strrchr.c",
      "new_id": "14f29c551cf3442412e62c94b8f3a52ead0dd59c",
      "new_mode": 33188,
      "new_path": "libc/string/strrchr.c"
    },
    {
      "type": "modify",
      "old_id": "affb80fcc85db4a512752a63203bce16626d3a0c",
      "old_mode": 33188,
      "old_path": "libstdc++/src/pure_virtual.cpp",
      "new_id": "6b5e3287b74bbc136afeece505898a70093e7fc5",
      "new_mode": 33188,
      "new_path": "libstdc++/src/pure_virtual.cpp"
    },
    {
      "type": "modify",
      "old_id": "586cd2f8fc3a8678baef0137b6d897f78770a3b1",
      "old_mode": 33188,
      "old_path": "linker/debugger.cpp",
      "new_id": "6fddb1c75b900376a8541d9c1061b660825f61da",
      "new_mode": 33188,
      "new_path": "linker/debugger.cpp"
    },
    {
      "type": "modify",
      "old_id": "2f119e44a5f6482c5fa0c6c695c8775894b77e52",
      "old_mode": 33261,
      "old_path": "linker/linker.cpp",
      "new_id": "3afd314058b5087d637e33f040ee49b42ee2e1e9",
      "new_mode": 33261,
      "new_path": "linker/linker.cpp"
    },
    {
      "type": "modify",
      "old_id": "d6a4fc502509f105a766039fa759aaf590d50896",
      "old_mode": 33188,
      "old_path": "linker/linker.h",
      "new_id": "6196bec02670d3cd108243e25cf7095f0167d506",
      "new_mode": 33188,
      "new_path": "linker/linker.h"
    },
    {
      "type": "modify",
      "old_id": "8fc235fbbfcb8f1f52cd46040c12539e6955a3a3",
      "old_mode": 33188,
      "old_path": "linker/linker_debug.h",
      "new_id": "7d2485342c11af1e05ed49743c3c705e4aff0436",
      "new_mode": 33188,
      "new_path": "linker/linker_debug.h"
    },
    {
      "type": "modify",
      "old_id": "46427ecea20467de313bac236a3917e0f81bae71",
      "old_mode": 33188,
      "old_path": "tests/Android.mk",
      "new_id": "491b13c158644f62f46a2bb74596db6da4e988f6",
      "new_mode": 33188,
      "new_path": "tests/Android.mk"
    },
    {
      "type": "rename",
      "old_id": "8419e4afc4f3e8acb214ccf15891568a7c993657",
      "old_mode": 33188,
      "old_path": "tests/debug_format_test.cpp",
      "new_id": "d9c615ef46f1fc1d0de8789bd3c1e89d519a7b63",
      "new_mode": 33188,
      "new_path": "tests/libc_logging_test.cpp",
      "score": 93
    }
  ]
}
