)]}'
{
  "log": [
    {
      "commit": "bf72cf21dcc9bb1caa84e417be52c6fa685fc426",
      "tree": "738a5411bab2e5805a7e66f9bcbc8944ee068de9",
      "parents": [
        "920011b64bb12927fc7abafe763b0f0cda157f56",
        "28423b86fe86053b13c73eca9a836a723956abe1"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Thu Oct 13 22:26:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 13 22:26:11 2016 +0000"
      },
      "message": "Merge \"Add native_handle_init\" am: d790aae4bc\nam: 28423b86fe\n\nChange-Id: Ied7a062c6ce40864ea181819f5da21e64cae04de\n"
    },
    {
      "commit": "b843791b61ee3912515ce3f82f296823c17e10c9",
      "tree": "b7f971c5716db2841b33e858b746449f23c176ac",
      "parents": [
        "5980fe4aff67579a1708e560df3d51bc4030d1b4"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Fri Sep 23 11:17:11 2016 +0800"
      },
      "committer": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Wed Oct 12 18:04:41 2016 -0700"
      },
      "message": "Add native_handle_init\n\nHIDL requires file descriptors to be wrapped in native_handle_t.  We want\na low overhead way to do that when the number of file descriptors is known\nat compile time.  Instead of\n\n  // wrap an fd in native_handle_t\n  native_handle_t* fd_handle \u003d native_handle_create(1, 0);\n  if (!fd_handle) {\n    // clean up and return error\n  }\n  fd_handle-\u003edata[0] \u003d fd;\n\n  hidl_cb(..., fd_handle);\n\n  native_handle_delete(fd_handle);\n\nthis change adds native_handle_init to allow for\n\n  // wrap an fd in native_handle_t\n  NATIVE_HANDLE_DECLARE_STORAGE(fd_storage, 1, 0);\n  native_handle_t* fd_handle \u003d native_handle_init(fd_storage, 1, 0);\n  fd_handle-\u003edata[0] \u003d fd;\n\n  hidl_cb(..., fd_handle);\n\nTest: make libcutils\nBug: 32021609\nChange-Id: If1fd07482243d37492fdea57c602a1b13c8953cc\n"
    },
    {
      "commit": "4b5456eacc2164948c2e1b440f9bb7ca42249534",
      "tree": "9b913faa9a7d7797b54cfe77dbd73510f8a0c070",
      "parents": [
        "e758b2b3d3d98d9f867b5651c564458c2cb0a666",
        "586c6985cfc58559763f58e32e8273fdd09e9c37"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 10 23:29:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 10 23:29:55 2016 +0000"
      },
      "message": "Merge \"liblog: adb: move security interfaces to private\" am: 09dac589f1\nam: 586c6985cf\n\nChange-Id: I8c54bdc1a3582be1fc7c4a9be83b555624fcb0a3\n"
    },
    {
      "commit": "6debf985aa5127b43f1f79a010dc000f733793b8",
      "tree": "06811d9081a1853f20f52c5fdc1736dd08a3a3dc",
      "parents": [
        "db7715c7ddd667b9b540c8fd5a842b214ecc312d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Oct 05 08:13:56 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 10 15:15:45 2016 +0000"
      },
      "message": "liblog: adb: move security interfaces to private\n\nTest: Compile \u0026 adb functioning\nBug: 19235719\nBug: 26552300\nBug: 31289077\nBug: 31456426\nChange-Id: I7ad8963bcca3d8b5c37b547c11d163b652d35556\n"
    },
    {
      "commit": "cb52dc258ee5174ae49f0c18cc32249bda24ab67",
      "tree": "bbcf4c98bb4489099d9239c1224fce384a320968",
      "parents": [
        "010818f31315670d8d0978adfc83553f646ae3ca",
        "462e087e408e8984d73707cf944da3c6eceed311"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Sat Oct 08 01:34:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Oct 08 01:34:05 2016 +0000"
      },
      "message": "Merge \"Add native_handle_clone\" am: e8f6c7398b\nam: 462e087e40\n\nChange-Id: I745341bf4c76fc8c75f36e578cf1086808119426\n"
    },
    {
      "commit": "e8f6c7398b96e11119ef968a8a1bbda9e2895502",
      "tree": "cc4bd93e79b24c2d1fa22d52ea242ee1059f758a",
      "parents": [
        "8caf4e7443527a7b587020cec1559f7e498d0023",
        "fd3ea3d11805aef555eca08e2c2a0e1a40714726"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Sat Oct 08 01:25:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 08 01:25:35 2016 +0000"
      },
      "message": "Merge \"Add native_handle_clone\""
    },
    {
      "commit": "04819403d61fa3e3f55ebf79db401e0cf5c4f217",
      "tree": "555599d5a627d6535a20338cfe19003b31ee60a2",
      "parents": [
        "06515d32315938db885365e1978f51956ae8cc72",
        "2e7e065db9fcde53bdfcf8a9d20e205c80a9ee08"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 18:35:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 05 18:35:40 2016 +0000"
      },
      "message": "Merge \"Test for _WIN32 in instead of USE_MINGW.\" am: ec99158580\nam: 2e7e065db9\n\nChange-Id: I9c7bee42bf1d7522d4dd95b5bb8a925841f96624\n"
    },
    {
      "commit": "ec991585803bbcbc9abb1ba9510836e770d6f459",
      "tree": "b7eec720311167e51ab8dcd5ed45e1ba6b2622de",
      "parents": [
        "891d0ba904d3937e0d0c0e06966bf4d3577c03d3",
        "34a4f0b8c75e2c5a347e04454423cf55c5406075"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 18:30:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 18:30:06 2016 +0000"
      },
      "message": "Merge \"Test for _WIN32 in instead of USE_MINGW.\""
    },
    {
      "commit": "34a4f0b8c75e2c5a347e04454423cf55c5406075",
      "tree": "9c4e7f6807ec36d74d010c2114ce916e9fe40323",
      "parents": [
        "093951a2307f6572f911883c1ae6d01996e872c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 09:37:18 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 09:37:44 2016 -0700"
      },
      "message": "Test for _WIN32 in instead of USE_MINGW.\n\nBug: http://b/23392815\nTest: builds\nChange-Id: I7fce8de1f0e2314170cce456cd49346dcee9d134\n"
    },
    {
      "commit": "6e5ffe26807419987f2a6f536e5d1db2318fcb03",
      "tree": "372dc66acc6385b409c7ee24fe3a27c0b4e7cbc7",
      "parents": [
        "2acb41b46c0a669a0cd329cf8de7f38d7195def2",
        "cb670780be80e52168f5e992f8b8ddf1bdde1789"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 18:33:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 04 18:33:44 2016 +0000"
      },
      "message": "Merge \"system/core: drop or replace log/logger.h\" am: 1f90485804\nam: cb670780be\n\nChange-Id: I532a0f6143511f53f3303751f95de115ac034cd7\n"
    },
    {
      "commit": "37c9451349425652eb90434f61b8fe9a064957ba",
      "tree": "aa007e9a35c58fd76f0371d00238f763e60e397a",
      "parents": [
        "093951a2307f6572f911883c1ae6d01996e872c2"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 08:54:28 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Oct 04 09:09:10 2016 -0700"
      },
      "message": "system/core: drop or replace log/logger.h\n\ndebuggerd does not require log/logger.h, can use android/log.h\nIn some cases, mark why log/logger.h was required.\n\nTest: Compile and boot smoke test\nBug: 26552300\nBug: 31289077\nBug: 31456426\nChange-Id: Ia34987e25a01d81971ec8d785415f732b8376c4f\n"
    },
    {
      "commit": "2acb41b46c0a669a0cd329cf8de7f38d7195def2",
      "tree": "6f0c6ada449fa79ba58a28bcb657305107be8c3f",
      "parents": [
        "1814d808f3cabc0bb8af2801647754a4695255bf",
        "aed39f1f3d322069ce5937a8d04ebb42247a1abc"
      ],
      "author": {
        "name": "Mohan Srinivasan",
        "email": "srmohan@google.com",
        "time": "Mon Oct 03 22:42:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 03 22:42:20 2016 +0000"
      },
      "message": "Merge \"liblog: logd: Add android_lookupEventTag_len()\" am: 093951a230\nam: aed39f1f3d\n\nChange-Id: If1615c62df20df58eda2910455f2a1e05268fba7\n"
    },
    {
      "commit": "807e40ecc9786755e2f74a7a6a9b20c812588119",
      "tree": "fecfeb7ccd2f8cb3bd5afdfd4a902f17345b0d6f",
      "parents": [
        "57513bd5a359f735894b39f386e235cce9524a9b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 22 09:56:51 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 03 11:08:34 2016 -0700"
      },
      "message": "liblog: logd: Add android_lookupEventTag_len()\n\nAllows us to mitigate the impact of MAP_PRIVATE and copy on write by\ncalling android_lookupEventTag_len instead of android_lookupEventTag,\nand delaying the copy on write impact to the later.  We return a\nstring length in a supplied location along with the string pointer\nwith android_lookupEventTag_len(const EventTagMap* map, size_t* len,\nint tag).  The string is not guaranteed to be nul terminated.  Since\nandroid_lookupEventTag() called even once can cause the memory\nimpact, we will mark it as deprecated, but we currently have no\ntimeframe for removal since this is a very old interface.\n\nAdd an API for __android_log_is_loggable_len() that accepts the non\nnull terminated content and fixup callers that would gain because the\nlength is known prior to the call either in the compiler or at\nruntime.  Tackle transition to android_lookupEventTag_len() and\nfixup callers.\n\nOn any application that performs logging (eg: com.android.phone)\n\n/proc/\u003cpid\u003e/smaps before:\n\nxxxxxxxxxx-xxxxxxxxxx rw-p 00000000 fd:00 463 /system/etc/event-log-tags\nSize:                 20 kB\nRss:                  20 kB\nPss:                   1 kB\nShared_Clean:          0 kB\nShared_Dirty:         20 kB\nPrivate_Clean:         0 kB\nPrivate_Dirty:         0 kB\nReferenced:            0 kB\nAnonymous:            20 kB\nAnonHugePages:         0 kB\nSwap:                  0 kB\nSwapPss:               0 kB\nKernelPageSize:        4 kB\nMMUPageSize:           4 kB\nLocked:                0 kB\nVmFlags: rd wr mr mw me ac\n\n/proc/\u003cpid\u003e/smaps after:\n\nxxxxxxxxxx-xxxxxxxxxx rw-p 00000000 fd:00 1773 /system/etc/event-log-tags\nSize:                 20 kB\nRss:                  20 kB\nPss:                   1 kB\nShared_Clean:         20 kB  (was 0kB)\nShared_Dirty:          0 kB  (was 20kB)\nPrivate_Clean:         0 kB\nPrivate_Dirty:         0 kB\nReferenced:           20 kB  (was 0kB)\nAnonymous:             0 kB  (was 20kB)\nAnonHugePages:         0 kB\nSwap:                  0 kB\nSwapPss:               0 kB\nKernelPageSize:        4 kB\nMMUPageSize:           4 kB\nLocked:                0 kB\nVmFlags: rd wr mr mw me ac\n\nAdded liblog-unit-tests --gtest_filter\u003dliblog.event_log_tags to\ncheck for Shared_Clean: to not be 0 and Anonymous: to be 0 for\nall processes referencing event-log-tags.  Which can include multiple\nreferences to /system/etc/event-log-tags and future possible refs to\n/data/misc/logd/event-log-tags and /dev/event-log-tags.  We want\nfailure messages to help point to errant code using the deprecated\ninterface.\n\nThis change saves 1/4MB of memory or more on a typical system.\n\nTest: gTest liblog-unit-tests\nBug: 31456426\nChange-Id: I9e08e44d9092bd96fe704b5709242e7195281d33\n"
    },
    {
      "commit": "0308b0eabd1b484819c507f99e919e4a49f7fbc3",
      "tree": "087c46723f4b62ff179285a264ae437043120f2f",
      "parents": [
        "16f77860326dbcc9a34e0b7e3eab3ca8a2027e76",
        "cac331afd9bbea1730d001b3c246262f76e2ba78"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:13:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:13:00 2016 +0000"
      },
      "message": "system/core Replace log/log.h with android/log.h am: ff2dcd9af9\nam: cac331afd9\n\nChange-Id: I95c6a64bc35a041688303fcee4d506865d0a19a4\n"
    },
    {
      "commit": "16f77860326dbcc9a34e0b7e3eab3ca8a2027e76",
      "tree": "0f417f50301198522f842d42e361442158e4f6a6",
      "parents": [
        "a8d0a469566d462dad94e78c3f7582489b0568ac",
        "eb189f147b701315bfacf7fdc4338b9153964ed1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:55 2016 +0000"
      },
      "message": "system/core Replace cutils/log.h with android/log.h am: 66ce3e08c5\nam: eb189f147b\n\nChange-Id: I3f2b13e259d9bbb7bc714f21eab7181fa72c35bf\n"
    },
    {
      "commit": "9fd2eaf827ffd3cc600a2851b74a1bcc52d19c70",
      "tree": "54df91aa122bcd3fdc4a27ff10a8fe0f8a68361d",
      "parents": [
        "c528ac0fe81d334324cffb43b3ec3183042bb1c3",
        "f56fce02407b876338611c638d7f4b7fdc0f5d24"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:45 2016 +0000"
      },
      "message": "libcutils: Replace cutils/log.h with android/log.h am: 23ed4c242a\nam: f56fce0240\n\nChange-Id: I588c3a252594e1ecd4b34242217cf23c84e4af67\n"
    },
    {
      "commit": "c528ac0fe81d334324cffb43b3ec3183042bb1c3",
      "tree": "6fe117a7dec56d6f8dfeb036daa69daf520ea98b",
      "parents": [
        "2b42b87d8c166c253f8ad95ff61163de3220edb6",
        "499a33d6dc34763ccc30a2bed2cd7e71c5d8708d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:41 2016 +0000"
      },
      "message": "liblog: Replace log/log.h with android/log.h am: 6584d0a35a\nam: 499a33d6dc\n\nChange-Id: If28b70b199b4bbf99f853d6c6d14b73a72fafacb\n"
    },
    {
      "commit": "2b42b87d8c166c253f8ad95ff61163de3220edb6",
      "tree": "19736f94667e3537dada9bf502c2ef25d8de4b3c",
      "parents": [
        "13c68b09d9575ee81745df54c5ea8cad7d15e139",
        "772ed1c63cc1ff3c022c95aad92074b04ccd263a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:36 2016 +0000"
      },
      "message": "liblog: logcat: Replace log/logd.h with log/log.h am: a166708d15\nam: 772ed1c63c\n\nChange-Id: Ibd14ac6a57994019e188e6ec138682b50d1f7e69\n"
    },
    {
      "commit": "13c68b09d9575ee81745df54c5ea8cad7d15e139",
      "tree": "2f15860705a35c6fa619dd848bb4bd8a1f4c95c8",
      "parents": [
        "848da90978d46af784737b60cc7d9cfed227eb3a",
        "78a459a8c8a4948cb3d0bf6788d2541d97235e1a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:32 2016 +0000"
      },
      "message": "liblog: logd: logcat: deprecate log/log_read.h am: 004cd3c55d\nam: 78a459a8c8\n\nChange-Id: If1a76043e7941191b3c6ba07ca0277b7f9b7f2e6\n"
    },
    {
      "commit": "848da90978d46af784737b60cc7d9cfed227eb3a",
      "tree": "4140aa5068c7d2bab18895547037269e22e686e8",
      "parents": [
        "f610eaac14a863334ea35c923b3c1c9635578d1a",
        "8b4cab3f6913b7ced1187e33b8e9723cb4b7645b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 22:12:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 22:12:28 2016 +0000"
      },
      "message": "liblog: Add C++ wrapper for C event log handler am: 8eaaac0103\nam: 8b4cab3f69\n\nChange-Id: I2760c8480818f30dd126e7cfbb900a0f5796c8b1\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": "66ce3e08c5632a20ea66bde6dd76397041edf034",
      "tree": "e77589e0f6c62e8ac1c8faabe2d9dd2934d3ecee",
      "parents": [
        "0dd4431072cce3c62876b728cb20aa5b77b11a8d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 10:07:20 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "system/core Replace cutils/log.h with android/log.h\n\nShould use android/log.h instead of cutils/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: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031\n"
    },
    {
      "commit": "23ed4c242a01052696dde84babd7631a7ec5a691",
      "tree": "62fcd90d415d77216ac354f76dd4a26b85cdb4d3",
      "parents": [
        "6584d0a35ab7722bdc6590525dee29f72f0ec576"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 13:33:27 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "libcutils: Replace cutils/log.h with android/log.h\n\nReplace references to cutils/log.h and log/log.h with android/log.h.\nPoint cutils/log.h to android/log.h. Adjust header order to comply\nwith Android Coding standards.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I4b00c0dff3a0a50cbb54301fdc5a6c29c21dab65\n"
    },
    {
      "commit": "6584d0a35ab7722bdc6590525dee29f72f0ec576",
      "tree": "6781f6f444cfab89b4e1b6bc4dc6ac555afefa39",
      "parents": [
        "a166708d1541007ab5502040051e31863a29edce"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 13:26:55 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "liblog: Replace log/log.h with android/log.h\n\nMove all liblog related content into android/log.h, and make\nlog/log.h points to android/log.h.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I858e0ebe047b86f2a8530a99bc9c380d3d58edbb\n"
    },
    {
      "commit": "a166708d1541007ab5502040051e31863a29edce",
      "tree": "3a4db3c7680a5cf2b5d120528ed2e4e8d021ebe5",
      "parents": [
        "004cd3c55def10a92888295a9bad5fd0a18b725e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 09:58:56 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "liblog: logcat: Replace log/logd.h with log/log.h\n\nShould use log/log.h and in some cases android/log.h instead. Can\nnot remove file because still in use by partners, so log/logd.h\npoints to log/log.h.\n\nTest: Compile\nBug: 26552300\nBug: 31289077\nChange-Id: I3580d46154617abb7231027a44f4ab9ee023febf\n"
    },
    {
      "commit": "004cd3c55def10a92888295a9bad5fd0a18b725e",
      "tree": "6c2e251f63f58ac23cf4e6053df03bf2f9513a45",
      "parents": [
        "8eaaac010320b722a653f04c3b4afd98f65cb3ff"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 08:38:21 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "liblog: logd: logcat: deprecate log/log_read.h\n\nAlways used in combination with log/logger.h except in log_time.cpp,\nand not used externally.  As a result liblog has to support stl, a\nsmall price to pay since goal is to convert liblog to C++ internally.\n\nTest: compile\nBug: 31456426\nBug: 26552300\nBug: 31289077\nChange-Id: I72828ec807d0a2c8e40bbdebd7a69f147a7ca5a9\n"
    },
    {
      "commit": "8eaaac010320b722a653f04c3b4afd98f65cb3ff",
      "tree": "f06265054295cb69cc711bf00aab6f5535e47501",
      "parents": [
        "e5976bea7a54f3b0c3f9840b732af12fb7d1d224"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Sep 27 11:18:29 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Sep 30 12:47:05 2016 -0700"
      },
      "message": "liblog: Add C++ wrapper for C event log handler\n\nAdd android_log_event_context class.\n\nTest: in context of \u0027logd: add getEventTag command and service\u0027\nBug: 31456426\nBug: 26552300\nBug: 31289077\nBug: 19235719\nChange-Id: Icf918b443f01e04040c8d3efe0cdb7a8e70be10c\n"
    },
    {
      "commit": "f610eaac14a863334ea35c923b3c1c9635578d1a",
      "tree": "7bb78adf1281e5cf731923c5752ec353295b5890",
      "parents": [
        "fe807214ef228c56261d49f3ec4af145c809d524",
        "8c274361fb5e8a1c692cb537c0e5424b3a1dbaba"
      ],
      "author": {
        "name": "Miodrag Dinic",
        "email": "miodrag.dinic@imgtec.com",
        "time": "Fri Sep 30 17:49:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 17:49:11 2016 +0000"
      },
      "message": "Merge \"[qemu]: Fix payload size format in qemu_pipe_frame_send()\" am: e5976bea7a\nam: 8c274361fb\n\nChange-Id: I7c80343b0002ec68ef9cde40dad2202aa9b70c00\n"
    },
    {
      "commit": "192be1dcaef48e4bba8d4b0e466203450e7799e2",
      "tree": "995c4568b45a2f1fa6097ba632cb8fe8ed427a52",
      "parents": [
        "06460bf466a00306dad53d98a2501077443148e0"
      ],
      "author": {
        "name": "Miodrag Dinic",
        "email": "miodrag.dinic@imgtec.com",
        "time": "Fri Sep 30 13:48:27 2016 +0200"
      },
      "committer": {
        "name": "Miodrag Dinic",
        "email": "miodrag.dinic@imgtec.com",
        "time": "Fri Sep 30 13:58:11 2016 +0200"
      },
      "message": "[qemu]: Fix payload size format in qemu_pipe_frame_send()\n\nThe following change introduced regression for booting AOSP\non emulator for all architectures:\n\n7c7990e Fix warnings in system/ headers\n\nqemu_pipe expects payload size in the message header to be in hex format,\nas stated in the comment for qemu_pipe_frame_send().\n\nChange-Id: I32cfa9c9b2af56f93bbda0ea5597451c389ae45e\nSigned-off-by: Miodrag Dinic \u003cmiodrag.dinic@imgtec.com\u003e\n"
    },
    {
      "commit": "b5ca47989cd579b119446df57977391992844cba",
      "tree": "32aa053f4bf92f73f5f1d77b34229162247f2308",
      "parents": [
        "1456ddd921ad5bfe51b2be621c6d5934fb75483c",
        "5fe194a9fd08680d34db551f25c76ae2876dc7d3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 29 17:42:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 29 17:42:19 2016 +0000"
      },
      "message": "Merge \"Fix more system/core/include warnings\" am: 18fbd80504\nam: 5fe194a9fd\n\nChange-Id: I8e561ab27f93ed10efa8a0e864cd7d1283bb6163\n"
    },
    {
      "commit": "18fbd80504d367313993b1ce3e015d54b34a602a",
      "tree": "b5db8ada5ea8aaaacc0665aa66a76f0c8b4d4fed",
      "parents": [
        "833df5cd54e85e359c2a9ccb38221658090cf77d",
        "1811d156e9c6b5486d25090ec3e911632dc6edff"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 29 17:20:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 29 17:20:30 2016 +0000"
      },
      "message": "Merge \"Fix more system/core/include warnings\""
    },
    {
      "commit": "71b38def04ee80925d064fb2a89a81cdbdab5bf2",
      "tree": "7104813c5c3cce7651af90d4469104e017dc50c3",
      "parents": [
        "dde69001c29b4c2743f88468b0a010d635e350a4",
        "930ff186ce2f4b6f9c0f0f071b87579dd8a21d5b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 18:17:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 28 18:17:49 2016 +0000"
      },
      "message": "Merge \"liblog: fix errno issues with event tag map\" am: dfd30c4a16\nam: 930ff186ce\n\nChange-Id: Iac84f40e9e79063bee7f213eb21ff5f866462a32\n"
    },
    {
      "commit": "1811d156e9c6b5486d25090ec3e911632dc6edff",
      "tree": "c37354e50a853c4ed9ccfedd8c0c2b9ce904c6ef",
      "parents": [
        "b98317ff1cd85158fde27413c0dbc0d180935de6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 26 14:24:48 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 27 16:21:12 2016 -0700"
      },
      "message": "Fix more system/core/include warnings\n\nThe warnings in these files were hidden by -isystem\nframework/native/include.\n\nBug: 31752268\nTest: m -j\nChange-Id: I2a54376aea380ee24e6483fb7d35fdfe8991c490\n"
    },
    {
      "commit": "70a83dc7b3bfd56098079c95de5d80daa9998a77",
      "tree": "72ee9cdcecfa7be4753f6dd9b96f4b53bde0346d",
      "parents": [
        "ba1a798fd8073b6069165cc03289fb9399f0495b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 01 15:17:04 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Sep 26 09:23:55 2016 -0700"
      },
      "message": "liblog: fix errno issues with event tag map\n\nCleanup.\n\nSave the errno for the calls that fail, and reinstate them for\nreturn. Drop fprintf stutter, one succinct line. Solve a memory\nleak in close.  Change android_lookupEventTag() to use an\nunsigned int so that we can use the full range of uint32_t tags.\n\nMake sure this file compiles clean in C++.\n\nTest: gTest liblog-unit-tests\nBug: 30963384\nBug: 31456426\nChange-Id: I6a5efa6fb7e991431caba75ef0971e111968f6bf\n"
    },
    {
      "commit": "fd3ea3d11805aef555eca08e2c2a0e1a40714726",
      "tree": "a7eebbe759e7e56b143fc2822a1049331ff2e5c0",
      "parents": [
        "aa00f5852f3c495184a14d1cd8bf39cc5c9be8db"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Fri Sep 23 11:13:52 2016 +0800"
      },
      "committer": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Mon Sep 26 21:59:04 2016 +0800"
      },
      "message": "Add native_handle_clone\n\nlibhwbinder\u0027s Parcel::readNativeHandleNoDup returns a temporary\nnative_handle_t.  We want a way to save the temporary handle for later\nuse.\n\nChange-Id: I16f32043aa8b7d2c0aa57d67551500259b411410\n"
    },
    {
      "commit": "9f106bece820f61962d2b45fdb2653c4139fc8ab",
      "tree": "793f3eac52276eb0f62d225f376936d57500ab66",
      "parents": [
        "ea2b61c7a8029f016d006816a424c6a670fb9a6d",
        "bb276d8555f5eccbb5b6095bc061ba0d3349d76c"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Sep 23 22:53:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 22:53:48 2016 +0000"
      },
      "message": "Merge \"Flattenable: switch from assignment to memcpy().\" am: b2356a6993\nam: bb276d8555\n\nChange-Id: I2d7317f601dcfc85705f2e71408c314de55a0f69\n"
    },
    {
      "commit": "b2356a6993883ef971a8a1cce9f2f5f91d06059e",
      "tree": "43dbfe16fc2ff5fd78297af278c9b5a57dbc45c6",
      "parents": [
        "4b5abcdba2d4f2728e2c1853b97c978b985edc33",
        "2ebce7384bc7bc6c31122096326c9384d09bdce1"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Sep 23 22:46:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 23 22:46:03 2016 +0000"
      },
      "message": "Merge \"Flattenable: switch from assignment to memcpy().\""
    },
    {
      "commit": "ea2b61c7a8029f016d006816a424c6a670fb9a6d",
      "tree": "df6ead4a760b638e90df91fc7a8f04f2e18bcade",
      "parents": [
        "9fef9255424b8edeb013b035caaa50f9ed998f2e",
        "4873829953aec9d2a9eda17059f2908713b06c04"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 23 20:58:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 20:58:40 2016 +0000"
      },
      "message": "Merge \"Move android_get_control_socket out of line\" am: 4b5abcdba2\nam: 4873829953\n\nChange-Id: I45e8b86e43a47213664acf486a5de266bab6deb8\n"
    },
    {
      "commit": "2ebce7384bc7bc6c31122096326c9384d09bdce1",
      "tree": "91d5cc81bb719faaadf09d05e1ff12ee829d7ef9",
      "parents": [
        "91811d2d34551d48ed8774c284852a099fd43b51"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Sep 23 09:19:12 2016 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Sep 23 13:56:40 2016 -0700"
      },
      "message": "Flattenable: switch from assignment to memcpy().\n\nFlattenableUtils read() and write() currently use assignment to copy\nbytes. However, by casting the void* buffer to type T, the compiler is\nallowed to assume that buffer obeys the alignment requirements of T,\nwhich is not necessarily the case during serialization. On some\narchitectures, we can get SIGBUS when this alignment is violated.\n\nWe don\u0027t want the users of these routines to have to worry about\nalignment when packing structures, so use memcpy() instead which should\nalways be safe since the compiler won\u0027t assume any alignment for the\nvoid* buffer.\n\nOn architectures that can handle unaligned direct read/write of type T,\nthe compiler should be smart enough to optimize this code back to a\ndirect read/write anyway, but architectures that can\u0027t handle it will\nfall back to memcpy; this means that this change shouldn\u0027t have any\nimpact on current Android devices. See the linked bug for more details.\n\nBug: http://b/31671510\nTest: libgui Sensor serialization no longer gives SIGBUS.\nTest: libgui.so unchanged on Shamu before and after this CL.\nChange-Id: I2197127e8cbfb43f4f553bda6464f6ebe087febd\n"
    },
    {
      "commit": "e8ffa449fdeb7a97131805c96a7acb35957242af",
      "tree": "0c672db958845b7fc7e1e0c8a4ac2950c2cbc644",
      "parents": [
        "6fc7eaaad0ff6193bb7499899a3e19c6c4660fb5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 23 10:06:28 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 23 11:26:08 2016 -0700"
      },
      "message": "Move android_get_control_socket out of line\n\nandroid_get_control_socket has a warning from the implicit cast from\nlong to int.  The warning was being hidden because cutils/sockets.h was\nincluded with -isystem.  Move android_get_control_socket to sockets.cpp,\nsince we don\u0027t want header only dependencies anyways, and fix the\nwarning with a range check and a static_cast.\n\nBug: 31492149\nTest: m -j \u003cmodule that uses sockets.h and -Wall\u003e\nChange-Id: I1f394ab26d4ec8a7dd0e7907c10416d7f8647624\n"
    },
    {
      "commit": "1446cbac58bb7d840ca29ffa8b27bf8a7ebd8cd8",
      "tree": "6ad3ff7adcbed0f64b52e88406b194ebaa112410",
      "parents": [
        "749181c10be1295bbe50f9c5a7c8397a623af5b1",
        "0f79b62bf633fbd18b01e21d59bb94d4393cebe1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 22:51:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 22:51:15 2016 +0000"
      },
      "message": "Merge \"Fix warnings in libutils headers\" am: 65a1633ec3\nam: 0f79b62bf6\n\nChange-Id: I62fea8f4ed3f2a9d16d68539eb073965531944da\n"
    },
    {
      "commit": "749181c10be1295bbe50f9c5a7c8397a623af5b1",
      "tree": "ebc7f195a8f09fe1109f329b89e1d77471bfd60d",
      "parents": [
        "298571ec199c44b341aa183d09b1bb9338adc6fd",
        "85942090f606af2a7043bb3195864ab60061e838"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 20:33:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 20:33:40 2016 +0000"
      },
      "message": "Merge \"Remove has_trivial_move trait from Vector\u003cT\u003e\" am: 588b3b0c03\nam: 85942090f6\n\nChange-Id: Ic41410047760bff11063d12839921ae008fe7e65\n"
    },
    {
      "commit": "17b5b82d64686d482e6dcf96ee54fd62234d5f27",
      "tree": "59c9126e3cbcecbc0b06178f55bc3b39cadef1ce",
      "parents": [
        "588b3b0c03690573bb8147d9645f0400e5db9a22"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 18:15:37 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 13:03:15 2016 -0700"
      },
      "message": "Fix warnings in libutils headers\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  Fix warnings in libutils\nheaders in preparation for moving from -isystem to -I.\n\n- Fix implicit cast from int64_t to long in Condition.h.  Remove\n  the __LP64__ check and always compare against LONG_MAX before\n  casting.\n- Fix implicit cast from size_t to ssize_t in KeyedVector.h\n- Fix -Wshadow-field-in-constructor warnings in Looper.h and RefBase.h\n- Move destructors for MessageHandler and LooperCallback to Looper.cpp\n  and ReferenceRenamer and VirtualLightRefBase to RefBase.cpp to prevent\n  vtables in every compilation unit.\n- Declare template variables in Singleton.h\n- Fix old-style casts in StrongPointer.h and TypeHelpers.h\n- Use template metaprogramming in TypeHelpers.h to avoid warnings on\n  memmove on non-trivial types.\n- Add an assignment operator to key_value_pair_t to complete\n  rule-of-three\n- Use memcpy instead of dereferencing a reinterpret_casted pointer to\n  treat the bits of a float or double as int32_t or int64_t\n- Escape unicode sequences inside doxygen comments between \\code and\n  \\endcode\n- Remove WIN32 ZD definition in Compat.h, %zd works fine with mingw\n- Fix WIN32 printf warnings in Filemap.cpp\n- Initialize mNullValue with 0 in LruCache.h, some of the tests use a\n  non-pointer type for TValue.\n\nTest: m -j native\nBug: 31492149\nChange-Id: I385a05a3ca01258e44fe3b37ef77e4aaff547b26\n"
    },
    {
      "commit": "588b3b0c03690573bb8147d9645f0400e5db9a22",
      "tree": "d7afb83b75c12e14a4967a64ea5cf37eb4bc45d9",
      "parents": [
        "53171e5f97a286a9a53cf9d52e3deb4accdf8edc",
        "097395532b8eb7310bac50597531f4551e2db636"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 19:44:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 19:44:28 2016 +0000"
      },
      "message": "Merge \"Remove has_trivial_move trait from Vector\u003cT\u003e\""
    },
    {
      "commit": "097395532b8eb7310bac50597531f4551e2db636",
      "tree": "dc922cced7d4896f4e385573765c3b25ce6fab3b",
      "parents": [
        "5cf3db6d2b3a024d33d660d07b3ea8d5106cf208"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 10:14:05 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 10:14:05 2016 -0700"
      },
      "message": "Remove has_trivial_move trait from Vector\u003cT\u003e\n\nVector\u003cT\u003e objects are a dynamic type with a vtable, which is not\ntrivially moveable.\n\nImpact on aapt for frameworks-res is negligible, ~3%.\n\nBug: 31595853\nTest: m -j framework-res\nChange-Id: I8a3269c35d95affb6e86d60588bcfca46db7f445\n"
    },
    {
      "commit": "88fd7e2ec412d6ce1ded193e0b17a57a17f2ad9c",
      "tree": "3dd8cbfcc922bd4db0c066153c1e643b93499fc4",
      "parents": [
        "71970fc473907a4976574e0425b8ef9cd51aec14",
        "299df0bf01eabd087bf5363ad150b0076cb34574"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 11:54:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 11:54:20 2016 +0000"
      },
      "message": "Merge \"Fix warnings in system/ headers\" am: d7f60fd871\nam: 299df0bf01\n\nChange-Id: Ie6b83fdc3b97601e1021b104d4b42eec6b30bfc4\n"
    },
    {
      "commit": "b0db9714bbb0828c89c0bc1fd0c38f9a3470de83",
      "tree": "10822dc9b170212170f27ada026e0b44f933894b",
      "parents": [
        "06ec4b135230f6b3569c1032b913f99bfe3c0c54",
        "f924c252bd0ea32251791bb3f51a883a6d2e9bf3"
      ],
      "author": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Thu Sep 22 11:23:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 11:23:53 2016 +0000"
      },
      "message": "Merge \"Remove net_bt_stack group and replace it with bluetooth\" am: 7875407bb7\nam: f924c252bd\n\nChange-Id: I99e0ed5e52c71b2e41e54faf03678e57a853d140\n"
    },
    {
      "commit": "d7f60fd871e6752350efef3a7a9fe2895b3ec69e",
      "tree": "023d19f220d396b0b3755f004b6906a13ec360a6",
      "parents": [
        "7e4d1db9579bd914a75a90e032ae096061a692d0",
        "7c7990e6fdb3cbf7f3ce2cf220767ba5fa5e18c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 02:46:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 02:46:51 2016 +0000"
      },
      "message": "Merge \"Fix warnings in system/ headers\""
    },
    {
      "commit": "7875407bb74d85ad96585687c448e98a586aa608",
      "tree": "61fcce664c60d806914217563e87a425947089d9",
      "parents": [
        "5cf3db6d2b3a024d33d660d07b3ea8d5106cf208",
        "604208e957ad6fb692c445b0f598579051d2071a"
      ],
      "author": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Thu Sep 22 01:32:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 01:32:34 2016 +0000"
      },
      "message": "Merge \"Remove net_bt_stack group and replace it with bluetooth\""
    },
    {
      "commit": "06ec4b135230f6b3569c1032b913f99bfe3c0c54",
      "tree": "22ff76649fbc0f0fb10878ce3e3016d2808d7680",
      "parents": [
        "4df8e4580bcd745af9b176751c05b5c81f6282bf",
        "a802e570b39bee4dcf63656eb57641efe998ffa6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 01:02:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 01:02:40 2016 +0000"
      },
      "message": "Merge \"Hide warning in cutils/trace.h\" am: 5cf3db6d2b\nam: a802e570b3\n\nChange-Id: I216420b21d71087b2e3a5bc864f9d419270dc749\n"
    },
    {
      "commit": "4df8e4580bcd745af9b176751c05b5c81f6282bf",
      "tree": "911541e444ed7dd95e6d49c2f534fedd73c7b064",
      "parents": [
        "837f2cef9a4d8081b9553ac5dc0662758057a7ba",
        "9eb3592e62501efeabddcdb58ff4c90d18c96b6b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 01:02:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 01:02:27 2016 +0000"
      },
      "message": "Merge \"Hide gnu extension warnings in log/log.h\" am: 21049e5c91\nam: 9eb3592e62\n\nChange-Id: I3c155d9b0ca9f5e87e35159e578fbe91af0ed4ec\n"
    },
    {
      "commit": "7c7990e6fdb3cbf7f3ce2cf220767ba5fa5e18c7",
      "tree": "7c6fb195f174eee93b90a6dd62d7b1a9ff1ea769",
      "parents": [
        "5cf3db6d2b3a024d33d660d07b3ea8d5106cf208"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 18:04:04 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 21 17:46:59 2016 -0700"
      },
      "message": "Fix warnings in system/ headers\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  Fix warnings in\nsystem/core/include/system in preparation for moving from -isystem to -I.\n\n- Fix invalid doxygen syntax in graphics.h\n- Use a pragma to hide a C99 extension warning on the flexible length\n  array in graphics.h\n- Make static functions in radio.h static inline\n- Fix size_t printf and size_t vs. ssize_t comparision in qemu_pipe.h\n- Fix old style cast in window.h\n\nTest: m -j native\nBug: 31492149\nChange-Id: I857f289e4c8e303494831873282bbb69de155c10\n"
    },
    {
      "commit": "5cf3db6d2b3a024d33d660d07b3ea8d5106cf208",
      "tree": "9520b73d065006e76d78250b72b2783aa64a4639",
      "parents": [
        "21049e5c911f268befbee068c94a2127520b89ac",
        "9993e799f1bffc20837eaf4a0260152f58041bae"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 00:46:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 00:46:13 2016 +0000"
      },
      "message": "Merge \"Hide warning in cutils/trace.h\""
    },
    {
      "commit": "9993e799f1bffc20837eaf4a0260152f58041bae",
      "tree": "aaaa9ac0e78ad3f045c1933cf6d92327af477dec",
      "parents": [
        "efee71c2defdea4f105d2ff71950f935d6ff2a27"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 10:12:52 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 21 17:45:31 2016 -0700"
      },
      "message": "Hide warning in cutils/trace.h\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  cutils/trace.h has an ignored\nreturn value warning, move the implementation to trace-dev.c so it\ndoesn\u0027t cause warnings in every module that includes it in preparation\nfor moving from -isystem to -I.\n\nTest: m -j native\nBug: 31492149\nChange-Id: If8b3fe13059c9e59c2d5208294d427d84fa6e588\n"
    },
    {
      "commit": "21049e5c911f268befbee068c94a2127520b89ac",
      "tree": "ae8591811fade186800590583b3444107d660559",
      "parents": [
        "efee71c2defdea4f105d2ff71950f935d6ff2a27",
        "412ad0dad8e362aa0a588034bf755666bde7134f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 00:45:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 00:45:02 2016 +0000"
      },
      "message": "Merge \"Hide gnu extension warnings in log/log.h\""
    },
    {
      "commit": "604208e957ad6fb692c445b0f598579051d2071a",
      "tree": "f842542dc1ced26f85bd688e78f6b50aa25900b3",
      "parents": [
        "91811d2d34551d48ed8774c284852a099fd43b51"
      ],
      "author": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Tue Sep 20 11:52:14 2016 -0700"
      },
      "committer": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Tue Sep 20 12:01:33 2016 -0700"
      },
      "message": "Remove net_bt_stack group and replace it with bluetooth\n\nBug: 31549206\nChange-Id: I667963e5f9fd1a5dc9ad74378b318e3b782e6883\n"
    },
    {
      "commit": "e3d8246c0bfd10bad2c825ea7ab0a31de3adb141",
      "tree": "e5fe5cb4d2399a4fc50dd39c09dc74de6cde8daf",
      "parents": [
        "18b1a9901e9e1551207c2e1216a2d39a7cf7945d",
        "6f5edc78d86110a2442b2214e57b3defa69e0882"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 18:37:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 18:37:19 2016 +0000"
      },
      "message": "Merge \"Fix warnings in libziparchive\" am: 91811d2d34\nam: 6f5edc78d8\n\nChange-Id: I3f2869a94cebaf86647443bdc7a2f3520e5dd555\n"
    },
    {
      "commit": "7c6c7f0b9f96650ab12056965e223a735ea92ada",
      "tree": "8e593c0fbf49d07da72ef68e9f2a228129e350b2",
      "parents": [
        "36b88ce9754424a9ed6742dbc1931a0e9a1b8116"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 10:15:51 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 09:23:47 2016 -0700"
      },
      "message": "Fix warnings in libziparchive\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  zlib.h is included through\nsystem/core/include/ziparchive/zip_archive.h, which was hiding warnings\nin it.  Use a #pragma around the call to deflateInit2, it is a macro\nthat expands to an old-style cast, in preparation for moving from\n-isystem to -I.  Also move the ZipString constructor to zip_archive.cc\nso it can assert on the length of the string parameter and fix an\nimplicit conversion from size_t to uint16_t.\n\nTest: m -j native\nBug: 31492149\nChange-Id: I74cdad7fe9c723859b5cfbea73c8f27d9d9ca265\n"
    },
    {
      "commit": "1cde9655bb7e77e685d77bb49a5183e19ef3e573",
      "tree": "b8663ff8c76e34311f32b25e4495365f7aa5f147",
      "parents": [
        "e1fcb21fa24e73541c1ee3b630b9656e54719d92",
        "d141edfb3c38758736e8a2e8ba53928b4d5dbae9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 17 01:41:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 17 01:41:09 2016 +0000"
      },
      "message": "Move libusbhost\u0027s headers into libusbhost. am: e0a7c773ed\nam: d141edfb3c\n\nChange-Id: I3eed13355c67ff09b6f61aee5b6329ec15ce8b21\n"
    },
    {
      "commit": "d141edfb3c38758736e8a2e8ba53928b4d5dbae9",
      "tree": "e33ab0fdf2184085e55f205455bdd8d3c2f7d0bb",
      "parents": [
        "88c992f0807ac414f4e6e94b65d9309d4fac0548",
        "e0a7c773edf401df3f8170174030912e49526842"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 17 01:38:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 17 01:38:39 2016 +0000"
      },
      "message": "Move libusbhost\u0027s headers into libusbhost.\nam: e0a7c773ed\n\nChange-Id: Ia6b0131c9405650a8c9934a7010c7723f028f6dd\n"
    },
    {
      "commit": "36b88ce9754424a9ed6742dbc1931a0e9a1b8116",
      "tree": "abbf6bfe9e670a96a9291e99e4280f0473bba888",
      "parents": [
        "33414a8b5fed704f808439aad0d74f9698be949f",
        "e0a7c773edf401df3f8170174030912e49526842"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 17 01:33:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 17 01:33:11 2016 +0000"
      },
      "message": "Merge \"Move libusbhost\u0027s headers into libusbhost.\""
    },
    {
      "commit": "a205ed0aadf20137a5fd90f0c02a0cdf0924f6c4",
      "tree": "de64827a9b99c00dece237bb5df9d88f058a2e7a",
      "parents": [
        "5646010f75a723d8bb6315c30860eff0d8c786b4",
        "6f292bcab9c0ffecf9a23c45b3d75919fd62dd9f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 19:47:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 19:47:31 2016 +0000"
      },
      "message": "Merge \"Fix warnings in cutils/atomic.h\" am: 5e093f367c\nam: 6f292bcab9\n\nChange-Id: I69dc6ea6ec78f48710be69e287f1610726894466\n"
    },
    {
      "commit": "5e093f367ce7ff131b529fd5ec9754cc89e34838",
      "tree": "d0dff12b6a69738785f23011f4b3ccc252bed574",
      "parents": [
        "4127ccbda502eef2ff71b72caaa3ce28a0d4b7c6",
        "ec69c05463c93b41335c5037a452a51d6e544214"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 19:31:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 19:31:10 2016 +0000"
      },
      "message": "Merge \"Fix warnings in cutils/atomic.h\""
    },
    {
      "commit": "412ad0dad8e362aa0a588034bf755666bde7134f",
      "tree": "7b34881d199644f80a1ea94de492aec643d01445",
      "parents": [
        "4127ccbda502eef2ff71b72caaa3ce28a0d4b7c6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 18:02:46 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 11:13:20 2016 -0700"
      },
      "message": "Hide gnu extension warnings in log/log.h\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  Fix warnings in log/log.h\nin preparation for moving from -isystem to -I.\n\nlog/log.h uses gnu extensions for zero-argument variadic macro token\npasting, which clang warns about with -Weverything.  Hide the warnings\nusing pragmas.\n\nTest: m -j native\nBug: 31492149\nChange-Id: Ib2113f877d811a6ecc0e91c035640b506f04bd86\n"
    },
    {
      "commit": "761c529b374e1c151a010e96ceffb84ec869c8d8",
      "tree": "8e09aff26199415c37c22bec47d8b1715ce1d679",
      "parents": [
        "60cc3c37ec5e1e0f46b5d1a75ad163bd800ef18f",
        "c5cc02999303b57383f21fe12b96d3698bb51d34"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:51:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 17:51:24 2016 +0000"
      },
      "message": "Move libbinderwrapper\u0027s headers into libbinderwrapper. am: 40104501fa\nam: c5cc029993\n\nChange-Id: I351680f306d7fb8814f8b41eb9e895a1a4153827\n"
    },
    {
      "commit": "e0a7c773edf401df3f8170174030912e49526842",
      "tree": "13f72458945439a245a1861b028e25e145fc3558",
      "parents": [
        "67855d8454644ba84931b17013c040154a86fbc5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 10:43:56 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 10:43:56 2016 -0700"
      },
      "message": "Move libusbhost\u0027s headers into libusbhost.\n\nChange-Id: Ic5ff65bd6456ea3cc92e0c8f9d7a6f499e58dbfc\n"
    },
    {
      "commit": "40104501faba8b46a5ed465863c426258d28671d",
      "tree": "84ac880a777845acc1204a260d8f5d2b4e9b051e",
      "parents": [
        "67855d8454644ba84931b17013c040154a86fbc5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 09:02:47 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 09:02:47 2016 -0700"
      },
      "message": "Move libbinderwrapper\u0027s headers into libbinderwrapper.\n\nIt was probably the LOCAL_EXPORT_C_INCLUDE_DIRS that made me miss this on the\noriginal code review...\n\nChange-Id: I55bc0b0698604338cd206bf5f336798929b6d8f9\n"
    },
    {
      "commit": "ec69c05463c93b41335c5037a452a51d6e544214",
      "tree": "fcfa259818b51115412e8aea7e88061db79b70da",
      "parents": [
        "67855d8454644ba84931b17013c040154a86fbc5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 18:01:41 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 19:22:32 2016 -0700"
      },
      "message": "Fix warnings in cutils/atomic.h\n\nsystem/core/include is included in the global include path using\n-isystem, which hides all warnings.  Fix warnings in cutils/atomic.h in\npreparation for moving from -isystem to -I.\n\nTest: m -j native\nBug: 31492149\nChange-Id: I2a212f192309090a16d507e9ab6acf0fd7cac02d\n"
    },
    {
      "commit": "7ae63a8cbd5764c546798bd7eb8213a644d2254b",
      "tree": "7913641c65cdfd978969fd5131e62e10676424d0",
      "parents": [
        "ef8322329e0688fc836f750aee89cd98483d18ca",
        "ae93122c0ee814b86111ba13a3c964404ab01b47"
      ],
      "author": {
        "name": "Courtney Goeltzenleuchter",
        "email": "courtneygo@google.com",
        "time": "Fri Sep 09 18:47:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 18:47:13 2016 +0000"
      },
      "message": "Add color mode enums am: a2e874eabc\nam: ae93122c0e\n\nChange-Id: Ifaef323f9804c36ca5271fd3eafcef75cf67e9c5\n"
    },
    {
      "commit": "ef8322329e0688fc836f750aee89cd98483d18ca",
      "tree": "d26d37faba117f75cec639bb0be0d8c56c8041e7",
      "parents": [
        "19da013df97093366f3ad5f6f50970a4f915e1b6",
        "a2d46813fc3f026b56eb679e73249326d0a273dd"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Sep 09 18:47:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 18:47:07 2016 +0000"
      },
      "message": "add android_flex_layout for describing all flexible formats. am: 0e10df4dd6\nam: a2d46813fc\n\nChange-Id: I47fbc1c78ac1458150d5231a85b4cf5c3e17a62f\n"
    },
    {
      "commit": "a2e874eabca3dfd22ee8c73961f2d058bb93c19f",
      "tree": "0fd15e935e3abf63ff8d48b2d3a1ea701aebf46b",
      "parents": [
        "0e10df4dd6ebd300d8054dbe5016ef1a582995e8"
      ],
      "author": {
        "name": "Courtney Goeltzenleuchter",
        "email": "courtneygo@google.com",
        "time": "Mon Jun 20 14:49:39 2016 -0600"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Sep 08 11:39:32 2016 -0700"
      },
      "message": "Add color mode enums\n\nThe android_color_mode_t defines the color modes supported\nby a display. A display can support multiple different\ncolor modes.\n\nsRGB mode and AdobeRGB are deliberately placed at 7 and 8\nso that they match mode ID\u0027s used on prior devices.\n\nbug: http://b/27926012\nChange-Id: I9ab41b56ec0b495c02539665da5be158ffddf843\n"
    },
    {
      "commit": "0e10df4dd6ebd300d8054dbe5016ef1a582995e8",
      "tree": "aa4f8d5830cbf51eb3fdb43c7d2edd4008c1a09b",
      "parents": [
        "88b5af68bd5f272d72aab23e9aedad3ea929fe54"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 08 21:18:12 2016 -0700"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Sep 08 11:38:53 2016 -0700"
      },
      "message": "add android_flex_layout for describing all flexible formats.\n\nBug: 22767098\nBug: 24759202\nChange-Id: I61e4ca9bd71e8da88a9571ec4effc7165026715b\n"
    },
    {
      "commit": "ade3876260ac645913f326a83da847a306f5e3c7",
      "tree": "473d8451d72602d6e05bf6321f5c1bdeff3db5df",
      "parents": [
        "87ff463d6e8e6c5112f7722032b5a2f8ff6a6240",
        "aa7fd8a3ec40e30849e4e3a862015ad92d0ba8b0"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 20:24:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 20:24:14 2016 +0000"
      },
      "message": "Merge changes from topic \u0027utf\u0027 am: 3a07e5bf94\nam: aa7fd8a3ec\n\nChange-Id: I3c90317d492a84ff99b18463d6f489e7b1cca61b\n"
    },
    {
      "commit": "1cfa56d46c7c31300c25dafd722ff60a5294c3b3",
      "tree": "37864264edcd1e95c36b76f3f8f78c3d60cbf587",
      "parents": [
        "9de6776321b80d387e6108683547bc043f868925"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:02:29 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 20:07:51 2016 +0000"
      },
      "message": "libutils/Unicode.cpp: Correct length computation and add checks for utf16-\u003eutf8\n\nInconsistent behaviour between utf16_to_utf8 and utf16_to_utf8_length\nis causing a heap overflow.\n\nCorrecting the length computation and adding bound checks to the\nconversion functions.\n\nTest: ran libutils_tests\nBug: 29250543\nChange-Id: I6115e3357141ed245c63c6eb25fc0fd0a9a7a2bb\n(cherry picked from commit c4966a363e46d2e1074d1a365e232af0dcedd6a1)\n"
    },
    {
      "commit": "9de6776321b80d387e6108683547bc043f868925",
      "tree": "7a35f99e63fe7a332202194d845964458d1fd7fb",
      "parents": [
        "e461b37965ff609ea36c1fbb6e4e8df1fb7b7d7f"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Wed Jul 20 20:01:33 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 19:57:06 2016 +0000"
      },
      "message": "Unicode: specify destination length in utf8_to_utf16 methods\n\nString16(const char *utf8) now returns the empty string in case\na string ends halfway throw a utf8 character.\n\nBug: 29267949\nClean cherry-pick from 1dcc0c82394ec9cd6887c7ca39f9b5024db01ac9\n\nChange-Id: I5223caa7d42f4582a982609a898a02043265c6d3\n"
    },
    {
      "commit": "7dddf9433cbf50e8422e2cc5b6fc248c4cbb5b82",
      "tree": "588014bfcde0fa734a1c8f09b5d55e58f6a6c992",
      "parents": [
        "ed421af68d6c01de92c0f7f2df828997e76fdefd",
        "7bf3d21fde63a1ac3d82ff1cdc46206dc138148a"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 24 23:49:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 23:49:14 2016 +0000"
      },
      "message": "Merge \"Make RefBase more robust and debuggable\" am: daac359be7\nam: 7bf3d21fde\n\nChange-Id: I643c4bd38062b80d382c50ed161f5440f35c1dd9\n"
    },
    {
      "commit": "daac359be7cba18e414536a497a5bd1fc594ba50",
      "tree": "caae0ef396e1cda3e76a1d0ed979e28533f1e8a8",
      "parents": [
        "6322efe5229ed6ae5af1681568e63cb90d9df7d7",
        "23c857ebd68fec4296f8483a41a0fff6692c9ac2"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Aug 24 23:36:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 23:36:13 2016 +0000"
      },
      "message": "Merge \"Make RefBase more robust and debuggable\""
    },
    {
      "commit": "ed421af68d6c01de92c0f7f2df828997e76fdefd",
      "tree": "dd51d0a12bf90df65ed0b5f473c483fb0f3c9b65",
      "parents": [
        "098b5887c68b1fcfee6882c2338fc9f59e9ea9e4",
        "6322efe5229ed6ae5af1681568e63cb90d9df7d7"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:07:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:07:39 2016 +0000"
      },
      "message": "Merge \"liblog: add __android_log_close()\" am: 812d1c7ea2\nam: 6322efe522\n\nChange-Id: Ib61d4ec5102fcfb12c48250c019fcdf019c2ffc5\n"
    },
    {
      "commit": "098b5887c68b1fcfee6882c2338fc9f59e9ea9e4",
      "tree": "8e2dc6098762694baa5397ce8381b0b6c44e2ca0",
      "parents": [
        "da07f7880c1f1dcbb66f7bef26889d44d351e2a3",
        "2d562c9dce78098cef1dfd9d8658c777a4c973af"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:07:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:07:38 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\" am: fcf7ab8b1b\nam: 2d562c9dce\n\nChange-Id: I5721e8614079a04c2dc364304d0ffed10d74be90\n"
    },
    {
      "commit": "6322efe5229ed6ae5af1681568e63cb90d9df7d7",
      "tree": "c89e4bd76a63326b4abb6110782cf6e59df30cfe",
      "parents": [
        "2d562c9dce78098cef1dfd9d8658c777a4c973af",
        "812d1c7ea257dc9a06f540a764f491120080f0b0"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:05:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:05:05 2016 +0000"
      },
      "message": "Merge \"liblog: add __android_log_close()\"\nam: 812d1c7ea2\n\nChange-Id: I2ba5ed22e78564a864bab6b550b6d2bd2609a629\n"
    },
    {
      "commit": "2d562c9dce78098cef1dfd9d8658c777a4c973af",
      "tree": "070fffda06859c76934a0c450fe3f5f88ff988c9",
      "parents": [
        "8b1f7b595c51268086d89e830d1046d123160ca3",
        "fcf7ab8b1b0a50afa4bb9f41cb0d5c0db5fc417d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 16:05:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 16:05:04 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\"\nam: fcf7ab8b1b\n\nChange-Id: Ic88fe616256ab4949040771d3bed1dfb823ab981\n"
    },
    {
      "commit": "812d1c7ea257dc9a06f540a764f491120080f0b0",
      "tree": "5cf1a2191659c5afa07f5da14ddecd6d5e58e210",
      "parents": [
        "fcf7ab8b1b0a50afa4bb9f41cb0d5c0db5fc417d",
        "df7a4c6bae5f85532d79a93b7d9197a2aab17825"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 15:58:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 15:58:48 2016 +0000"
      },
      "message": "Merge \"liblog: add __android_log_close()\""
    },
    {
      "commit": "fcf7ab8b1b0a50afa4bb9f41cb0d5c0db5fc417d",
      "tree": "d3a971ab622ca8427ffa2c4b7529027f1a3ab348",
      "parents": [
        "d00c7470eacaa953b8396c5813b24a933d90e179",
        "305374cf0f8cf28b58a108cf4f45df92fc0dde86"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 15:56:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 15:56:23 2016 +0000"
      },
      "message": "Merge \"logger: validate hdr_size field in logger entry\""
    },
    {
      "commit": "da07f7880c1f1dcbb66f7bef26889d44d351e2a3",
      "tree": "d3fc9ce189f651b01ab462e86cffcfe4eacc5fe1",
      "parents": [
        "66e5e2432a88a4b2ba8bacbc3137438e95eb4011",
        "8b1f7b595c51268086d89e830d1046d123160ca3"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 15:51:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 15:51:08 2016 +0000"
      },
      "message": "Merge \"libcutils: Add ashmem_valid() function\" am: d00c7470ea\nam: 8b1f7b595c\n\nChange-Id: I1be0fc5d74c609ec42578c29c7af9d897708f8c6\n"
    },
    {
      "commit": "8b1f7b595c51268086d89e830d1046d123160ca3",
      "tree": "5fbbc2e7e8577beaf97974a3f03f9934abecaf6d",
      "parents": [
        "8615d79d85e53c86028b702152bc00864b18f9d5",
        "d00c7470eacaa953b8396c5813b24a933d90e179"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Aug 24 15:48:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 24 15:48:55 2016 +0000"
      },
      "message": "Merge \"libcutils: Add ashmem_valid() function\"\nam: d00c7470ea\n\nChange-Id: Ib09d3ee7bb131c30f59ea273f357c045394206fb\n"
    },
    {
      "commit": "ee431112ff0d9bab8b4bd4259adc361d46f130cc",
      "tree": "dfbcb7bab11fa192955456df82236394f513f8a8",
      "parents": [
        "ad52cbb9ec16ecee443c72286845e0f3a336e350"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 13:58:37 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 15:29:28 2016 -0700"
      },
      "message": "libcutils: Add ashmem_valid() function\n\nBug: 30310689\nChange-Id: I14c52c5d52745a725799652b87c86281ac214899\n"
    },
    {
      "commit": "df7a4c6bae5f85532d79a93b7d9197a2aab17825",
      "tree": "13f001b7c317ec5725a7985d6c27143712465bf6",
      "parents": [
        "ad52cbb9ec16ecee443c72286845e0f3a336e350"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 10:23:36 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 15:25:03 2016 -0700"
      },
      "message": "liblog: add __android_log_close()\n\nBug: 30963384\nChange-Id: I901e6ac2cc3c601bbecc2d64e00a98e2ab448210\n"
    },
    {
      "commit": "305374cf0f8cf28b58a108cf4f45df92fc0dde86",
      "tree": "4f7ae56a180ae568508f5da1f4f83e25a054d712",
      "parents": [
        "82b67fff06363c8e7a17058cb5ce748f21a27f11"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Aug 18 14:59:41 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Aug 23 14:51:50 2016 -0700"
      },
      "message": "logger: validate hdr_size field in logger entry\n\n- check hdr_size to make sure it is in the expected range\n  from sizeof entry_v1 to entry (entry_v4).\n- alter msg() method to report NULL on invalid hdr_size\n- alter all users of msg() method.\n\nBug: 30947841\nChange-Id: I9bc1740d7aa9f37df5be966c18de1fb9de63d5dd\n"
    },
    {
      "commit": "233c9902cf5a7074b0498ad65447ea06f8735bc5",
      "tree": "befade80439b980d71661b44417735c2a02fbdf8",
      "parents": [
        "de9e6fb4b006a17179805fd4647beed1cc4c7dc2",
        "2f16eeede62be75301b1b0c786dce94f0bfac5ae"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:53:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:53:32 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0 am: 6b155c1cc4\nam: 2f16eeede6\n\nChange-Id: I3d2fdfc10f91080ca32aa6557b13391355427edc\n"
    },
    {
      "commit": "2f16eeede62be75301b1b0c786dce94f0bfac5ae",
      "tree": "af1ab7732a7249ee9a785059de77f35bdb6dbf07",
      "parents": [
        "9008a5cb8091b0deb98192c5aa239eca72858423",
        "6b155c1cc4db114f5bc9a3c47cb2f21e492eaa01"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:50:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:50:00 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb am: 9745b11db1 am: 2f78b2c3d6 am: 2b5e6d8ffc am: 2427a462c0\nam: 6b155c1cc4\n\nChange-Id: Ie6c2bcee1deacb94259a6153097757674fa19251\n"
    },
    {
      "commit": "2f78b2c3d6b3d1311e7ca21a25925d3bbb09ff9f",
      "tree": "8d04557a12388a955cc19f013b66b08f705430fa",
      "parents": [
        "07909364731c8a102676e1f276ce29cb5b956bb2",
        "9745b11db15876b5081d2042093e13941823b661"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:36:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:36:29 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4 am: e04054d9bb\nam: 9745b11db1\n\nChange-Id: I61f685976803f51db9ba85729554fc14efaa4b2c\n"
    },
    {
      "commit": "9745b11db15876b5081d2042093e13941823b661",
      "tree": "c6dcef6835b0ab47de6a0c76618d3191b2bc49b5",
      "parents": [
        "fdb4cd42f6c8f78a17906adc4c1935aaf69245f6",
        "e04054d9bba8c203b08f8caa01fdc2f2801dd18e"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:34:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:34:46 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a am: b906ad88b9 am: 2fadbb93a4\nam: e04054d9bb\n\nChange-Id: Ia5f46e5b9622946ca0e44fbe7399729807d2d08a\n"
    },
    {
      "commit": "2fadbb93a4e654b2f8d48cbe0163eab0ca953f32",
      "tree": "0f822ec1bdf54b059913a03caed6940d6ae9b921",
      "parents": [
        "55259f320b54bc4c0828fde8427a02560381732a",
        "b906ad88b9dbd17f947cce963626abfbc4da950f"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:14:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:14:57 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c am: 109024f74a\nam: b906ad88b9\n\nChange-Id: Ida2b33bd1db284dfa8ad3f130219481a92785e97\n"
    },
    {
      "commit": "b906ad88b9dbd17f947cce963626abfbc4da950f",
      "tree": "ec3f73eddf97f6fa9f6ee2f1339bc7558f2ae531",
      "parents": [
        "58dd6f7cba7d439bbc5eb527e4badd2a05baa89a",
        "109024f74a4cb12dfb4b2e34fd1e913aae1e0d3e"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:11:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:11:27 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2 am: e9e046df6c\nam: 109024f74a\n\nChange-Id: Ia6e8dca36bc28d442a6e374ecf033b79176f4b93\n"
    },
    {
      "commit": "109024f74a4cb12dfb4b2e34fd1e913aae1e0d3e",
      "tree": "43fd67e895cd1ad554105b330d87497e5809036a",
      "parents": [
        "7ed099593049f07d9939e0149c3e77b6f08ea341",
        "e9e046df6ca5cdfdb068526d764263d608dd4516"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 22:08:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 22:08:22 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener am: 470484d2a2\nam: e9e046df6c\n\nChange-Id: I8f2452782817ddf03051af08e70ba9d4c4fa578a\n"
    },
    {
      "commit": "470484d2a25ad432190a01d1c763b4b36db33c7e",
      "tree": "339c658f3eb38f6ce3f731e50bbb810ed9a5b0cc",
      "parents": [
        "23effb07ee20a5e8ed923eb236fe2b3e492fa934"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 12 11:52:46 2016 -0700"
      },
      "committer": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Fri Aug 19 17:05:25 2016 +0000"
      },
      "message": "Fix vold vulnerability in FrameworkListener\n\nModify FrameworkListener to ignore commands that exceed the maximum\nbuffer length and send an error message.\n\nBug: 29831647\nChange-Id: I9e57d1648d55af2ca0191bb47868e375ecc26950\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\n(cherry picked from commit baa126dc158a40bc83c17c6d428c760e5b93fb1a)\n"
    },
    {
      "commit": "de9e6fb4b006a17179805fd4647beed1cc4c7dc2",
      "tree": "688f251be4d24592856fb05be811aef5f0536ffa",
      "parents": [
        "d1f49a43fdbc9be97b87191a4f6f77cd668b76fc",
        "97e3cb70742ed030a2959003910dd0cf139269c2"
      ],
      "author": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Fri Aug 19 01:33:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 01:33:31 2016 +0000"
      },
      "message": "Merge \"Remove process_name.c\" am: e5b7ad1c39\nam: 97e3cb7074\n\nChange-Id: I8ddeceadedd4ca689d96f3a854ba34f31d16683f\n"
    },
    {
      "commit": "97e3cb70742ed030a2959003910dd0cf139269c2",
      "tree": "951d9472ff1e3d060cf4400181668deebe7d9077",
      "parents": [
        "46bfc918d04a59baec50abae7ea01ff754aed7e3",
        "e5b7ad1c3969da554da5fe479cb874436b75ac5c"
      ],
      "author": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Fri Aug 19 01:30:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 01:30:34 2016 +0000"
      },
      "message": "Merge \"Remove process_name.c\"\nam: e5b7ad1c39\n\nChange-Id: I8f98f5fe9ff526ed8780971eddef128ed46de271\n"
    },
    {
      "commit": "1bb49f483be6f3bab7864996a7f2dbc18a56db62",
      "tree": "5c437b0f66a389421066e8101e3d3a5f7f0d91f5",
      "parents": [
        "35569e9d682aab9a30a79359b650d58f94c7ba59"
      ],
      "author": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Wed Aug 17 18:01:22 2016 -0700"
      },
      "committer": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Thu Aug 18 23:54:46 2016 +0000"
      },
      "message": "Remove process_name.c\n\nBUG: 29824203\n\nChange-Id: I88d67cafb8ec0c4eea3db047bac0671de698ba02\n"
    },
    {
      "commit": "23c857ebd68fec4296f8483a41a0fff6692c9ac2",
      "tree": "bee2569fb78084bc6f04e456aefc06dad863b836",
      "parents": [
        "07f14c9cdde718bface371d075ccc7f8bf16f098"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Aug 02 18:39:30 2016 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Aug 13 11:17:51 2016 -0700"
      },
      "message": "Make RefBase more robust and debuggable\n\nThis prevents two different kinds of client errors from causing\nundetected memory corruption, and helps with the detection of others:\n\n1. We no longer deallocate objects when the weak count goes to zero\nand there have been no strong references.  This otherwise causes\nus to return a garbage object from a constructor if the constructor\nallocates and deallocates a weak pointer to this. And we do know\nthat clients allocate such weak pointers in constructors and their\nlifetime is hard to trace.\n\n2. We abort if a RefBase object is explicitly destroyed while\nthe weak count is nonzero.  Otherwise a subsequent decrement\nwould cause a write to potentially reallocated memory.\n\n3. We check counter values returned by atomic decrements for\nplausibility, and fail immediately if they are not plausible.\n\nWe unconditionally log any cases in which 1 changes behavior\nfrom before. We abort in cases in which 2 changes behavior, since\nthose reflect clear bugs.\nIn case 1, a log message now indicates a possible leak. We have\nnot seen such a message in practice.\n\nThe third point introduces a small amount of overhead into the\nreference count decrement path. But this should be negligible\ncompared to the actual decrement cost.\n\nAdd a test for promote/attemptIncStrong that tries to check for\nboth (1) above and concurrent operation of attemptIncStrong.\n\nAdd some additional warnings and explanations to the RefBase\ndocumentation.\n\nBug: 30503444\nBug: 30292291\nBug: 30292538\n\nChange-Id: Ida92b9a2e247f543a948a75d221fbc0038dea66c\n"
    }
  ],
  "next": "f997434b06d9326cac369f1c5b6f6a28fe18bd8f"
}
