)]}'
{
  "log": [
    {
      "commit": "63f9f4e9fd66020e67cd07f86bba678919334862",
      "tree": "2210d97de1ff6477c713647c75d2487f31143f95",
      "parents": [
        "f49a7c4712c3b9a10b9490530c142f0e629ae6dd",
        "ff731d8be6048e2aaa857aeae6a60eb5ede43a70"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 28 17:43:40 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 17:43:40 2020 +0000"
      },
      "message": "Merge \"Expose configGroup to DisplayConfig\" into rvc-dev"
    },
    {
      "commit": "4bd7e905a10c7f4f9264bcde61c4aa4437ee7ae8",
      "tree": "a399872f108476a0dcf37c7207c9ef8e299e2843",
      "parents": [
        "85f33da39fe97768da15e65a4787e4ca87573468",
        "882bbf33a2d2d6a8a80d70721cb8e588dab5ea37"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Fri Feb 28 05:02:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 05:02:33 2020 +0000"
      },
      "message": "Merge \"Swap video frame rotation direction.\" into rvc-dev"
    },
    {
      "commit": "ff731d8be6048e2aaa857aeae6a60eb5ede43a70",
      "tree": "f147617f4ca6942857cde8a697f51cfcd508974c",
      "parents": [
        "85f33da39fe97768da15e65a4787e4ca87573468"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Feb 18 17:22:46 2020 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Feb 28 04:36:07 2020 +0000"
      },
      "message": "Expose configGroup to DisplayConfig\n\nBug: 149784270\nTest: Simulate multiple config with debug change ag/10355181\nChange-Id: Id78013918c2f4a30abfe68d458b4d0a1f8147070\n"
    },
    {
      "commit": "85f33da39fe97768da15e65a4787e4ca87573468",
      "tree": "2d334ccacaf7563c98eebce99fcf765bb4caa3de",
      "parents": [
        "d96f483057e53add76fbee59ee801ec04994327b",
        "349fd2d2761b541d83cda739c866a1af315b036f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 28 01:15:47 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 01:15:47 2020 +0000"
      },
      "message": "Merge \"[RenderEngine] Reorder when ImageManager thread starts\" into rvc-dev"
    },
    {
      "commit": "cb322091b7e326ea9a60799e76dce514994f7744",
      "tree": "b40f322bca63010cbc547ddf87b72f3a15f3c228",
      "parents": [
        "b120327aeed39f604eb600101c849c767b0fedf5",
        "fff41d77183dd36604c6849487720bba6f19c666"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 28 00:07:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 00:07:58 2020 +0000"
      },
      "message": "Merge changes I04f5fe51,I6d5790b2 into rvc-dev\n\n* changes:\n  Remove unnecessary blit\n  Have a single blur implementation\n"
    },
    {
      "commit": "349fd2d2761b541d83cda739c866a1af315b036f",
      "tree": "6729dd20b3551ee05c8b324578f2dab54b7e1642",
      "parents": [
        "1c7bc86a9b1bdf16b240a96d083102127f036325"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Feb 27 12:06:10 2020 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Feb 27 12:24:41 2020 -0800"
      },
      "message": "[RenderEngine] Reorder when ImageManager thread starts\n\nPreviously the background thread for managing EglImages was intialized\nas a member variable before the constructor completed running. In very\nrare circumstances this can potentially stop the running thread if the\nthread ran before mRunning was initialized. To be less error-prone,\nrequire that ImageManger::initThread be explicitly called to guarantee\nthat class member variables are well-defined when the thread begins\nexecuting.\n\nIn case the issue resurfaces after this change, added a debug log to add\ncontext.\n\nBug: 146416748\nTest: builds. There is no reliable repro, so this fix is speculative\nTest: systrace to verify thread is running and configured correctly.\nChange-Id: I141c86240b90c7f87c22b3768c2e188293987b76\n"
    },
    {
      "commit": "882bbf33a2d2d6a8a80d70721cb8e588dab5ea37",
      "tree": "ace0e66261995703b9d41a35a1a6d32283aa2880",
      "parents": [
        "a61c7ac25b7f6997a78fe7dcb6149aa4a55ad077"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Wed Feb 26 18:48:28 2020 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Thu Feb 27 19:15:34 2020 +0000"
      },
      "message": "Swap video frame rotation direction.\n\nThe DISPLAY_ORIENTATION_* values indicate the physical rotation of the\ndisplay, and not the rotation of the graphics surface (see\nandroid.view.Display#getRotation()). To compensate for a physical\nrotation in one direction, the video frame needs to be rotated in the\nopposite direction.\n\nBug: 150382187\nTest: atest libinput_tests inputflinger_tests\nChange-Id: Iddd943c35084f7032a8e60273e5e63b59ad10d1c\n"
    },
    {
      "commit": "90df585c8aa799c8b8079839bbe5088c0cdf9a05",
      "tree": "ccf4d97605f17ed86b5e59f8e45207a64e34264a",
      "parents": [
        "a61c7ac25b7f6997a78fe7dcb6149aa4a55ad077"
      ],
      "author": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Thu Feb 27 10:17:02 2020 -0800"
      },
      "committer": {
        "name": "Marissa Ikonomidis",
        "email": "marissaw@google.com",
        "time": "Thu Feb 27 18:19:06 2020 +0000"
      },
      "message": "gralloc4: lockYCbCr shouldn\u0027t return UNSUPPORTED\n\nBug: 150384131\nTest: GraphicBuffer_test\n\nChange-Id: I87876cf82e8e6250ac755792c2302bf511699758\n"
    },
    {
      "commit": "fff41d77183dd36604c6849487720bba6f19c666",
      "tree": "6525e6db36f2ce176d6c752cc083c26873018814",
      "parents": [
        "93c3ef1067011d8d9e3eecff4b35293a885ed9f1"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Wed Feb 26 16:55:41 2020 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Thu Feb 27 09:45:42 2020 -0800"
      },
      "message": "Remove unnecessary blit\n\nIt\u0027s possible to keep a pointer to the current buffer, instead of\ncopying it\u0027s contents.\n\nBug: 149792636\nTest: manual\nTest: presubmit\nChange-Id: I04f5fe51580b53a869a1911eb69c6f04ab2eefcf\n"
    },
    {
      "commit": "93c3ef1067011d8d9e3eecff4b35293a885ed9f1",
      "tree": "c2fe9c27d6eb6838fa23d05ebf89b37435c8558f",
      "parents": [
        "219643eebd19e550100f317ea52854bde4047d8f"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Wed Feb 26 13:25:25 2020 -0800"
      },
      "committer": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Wed Feb 26 13:47:12 2020 -0800"
      },
      "message": "Have a single blur implementation\n\nAfter experimenting with both Gaussian and Kawase, we concluded\nthat Kawase has similar visuals and better performance.\n\nThis CL removes GaussianBlurFilter and promotes KawaseBlurFilter\nto just BlurFilter.\n\nBug: 149792636\nTest: librenderengine_test\nTest: visual\nChange-Id: I6d5790b2735754b5a39dd7367280871ab43f723c\n"
    },
    {
      "commit": "5a1891dc220b8bac9874e2bc4f3e5de44d14f97a",
      "tree": "d91b78fbc83fdba233550d9c3659c72a583abb15",
      "parents": [
        "0705399bf0d10fd5cefa729ff89cfad69b9c58ef",
        "187f68db0dd9fdf369224de3875792b9bb0498c0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 25 22:25:41 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 25 22:25:41 2020 +0000"
      },
      "message": "Merge \"gralloc4: Support RAW plane type\" into rvc-dev"
    },
    {
      "commit": "187f68db0dd9fdf369224de3875792b9bb0498c0",
      "tree": "491afd8e5b07aca73424b70a82356ad121ee09de",
      "parents": [
        "219643eebd19e550100f317ea52854bde4047d8f"
      ],
      "author": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Thu Feb 20 11:01:37 2020 -0800"
      },
      "committer": {
        "name": "Marissa Ikonomidis",
        "email": "marissaw@google.com",
        "time": "Tue Feb 25 17:45:15 2020 +0000"
      },
      "message": "gralloc4: Support RAW plane type\n\nRAW12 and RAW16 buffers will have a PlaneLayoutComponentType of\ntype RAW. Update getPlaneLayoutComponentTypeName to include the\nnew type.\n\nTest: Gralloc4_test\nBug: 149869426\n\nChange-Id: Ib10b7d2c4dc3e7a68fc235391829ae7d6c6b2ea8\n"
    },
    {
      "commit": "1c7bc86a9b1bdf16b240a96d083102127f036325",
      "tree": "b12004992add73c756d0592faa3e8892b560a234",
      "parents": [
        "c51d1ba0d7af0fbc33b8e8dc6e54f6bd7f534267"
      ],
      "author": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Tue Jan 28 13:24:04 2020 -0800"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Mon Feb 24 12:44:18 2020 -0800"
      },
      "message": "Let InputFlinger generate event IDs.\n\nAlso send event IDs via InputMessage and add some atrace calls to form a\ncomplete chain of input event processing.\n\nBug: 144889238\nTest: systrace shows correct event IDs.\nTest: atest inputflinger_tests\nChange-Id: I3c561b03b0ba75c22115ae020e6b41855686ab64\nMerged-In: I3c561b03b0ba75c22115ae020e6b41855686ab64\n(cherry picked from commit ff1f1bb99489fd372c57908dafdd3817a33db0c5)\n"
    },
    {
      "commit": "fbe732ebbb25870086610e9a32acdb37df402612",
      "tree": "321a4806278dffa8afc606eba9579419d507243a",
      "parents": [
        "bd25f1cad839bbe84f1baa0eb1aa3ddd84fcbde5"
      ],
      "author": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Fri Jan 24 11:26:14 2020 -0800"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Mon Feb 24 12:42:59 2020 -0800"
      },
      "message": "Add ID to native events.\n\nTo separate this big work into pieces I introduced a placeholder in\nInputTransport used to initialize native input events received from\nInputFlinger until InputFlinger can generate random sequence numbers.\n\nThe work in InputDispatcher wires up ID between events and notify args\nas well.\n\nBug: 144889238\nTest: Builds and some smoke tests.\nTest: atest libinput_tests\nChange-Id: I1ef7f243cc89a8b6e07ba9ba30a43c21eedb16ce\nMerged-In: I1ef7f243cc89a8b6e07ba9ba30a43c21eedb16ce\n(cherry picked from commit 4cc839fe01cd5bbb16650e85913070386f637e75)\n"
    },
    {
      "commit": "bd25f1cad839bbe84f1baa0eb1aa3ddd84fcbde5",
      "tree": "423d68389b27d966e3cdd9dbd56b7d6f22afeaba",
      "parents": [
        "219643eebd19e550100f317ea52854bde4047d8f"
      ],
      "author": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Thu Jan 23 10:49:05 2020 -0800"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Mon Feb 24 12:42:21 2020 -0800"
      },
      "message": "Add event ID generator.\n\nBug: 144889238\nTest: atest libinput_test\nChange-Id: I0fd192b3c5a08326aa6a6598025c7b8cdc64cce4\nMerged-In: I0fd192b3c5a08326aa6a6598025c7b8cdc64cce4\n(cherry picked from commit 84b087ec591626e8dd7d3d2c877afb74f0de1b09)\n"
    },
    {
      "commit": "219643eebd19e550100f317ea52854bde4047d8f",
      "tree": "febae4c820ed437fc9decca42a3494aed68b5f64",
      "parents": [
        "818ac485917cf803ec72ae27979f06dea26dae4b",
        "d31e6edb8f512fd99229ba3249004d94e04373b4"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:50:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:50:25 2020 +0000"
      },
      "message": "Merge \"Add adbd tls APIs to adbd_auth library.\" am: 61addf0da3 am: e76a58ffcc am: d31e6edb8f\n\nChange-Id: Ie91c81a5f375ca626a26e15be801a1cdd2bdd9e5\n"
    },
    {
      "commit": "d31e6edb8f512fd99229ba3249004d94e04373b4",
      "tree": "a0fa1f4bb0c66d073c1179c4fc1275e1f20d873c",
      "parents": [
        "ad4e7b6bcf256dd578263b1652e0dfd09b2eea27",
        "e76a58ffcc93b8219cb631c8e6d6a85f91f82fb9"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:36:45 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:36:45 2020 +0000"
      },
      "message": "Merge \"Add adbd tls APIs to adbd_auth library.\" am: 61addf0da3 am: e76a58ffcc\n\nChange-Id: I976d7f210f9f4c3d8c93a367ac98cb4ca3a0acfa\n"
    },
    {
      "commit": "e76a58ffcc93b8219cb631c8e6d6a85f91f82fb9",
      "tree": "fd4b9e0fc45217aca228eb37da6c74bf31018451",
      "parents": [
        "93f07fb962a186357d5bd179013d1ff637a75e3c",
        "61addf0da3ec9645c47279e11394d346f98093e5"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:14:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 21:14:20 2020 +0000"
      },
      "message": "Merge \"Add adbd tls APIs to adbd_auth library.\" am: 61addf0da3\n\nChange-Id: I6c410adb5ab54abb702aa6cd91b379bba21f69fb\n"
    },
    {
      "commit": "61addf0da3ec9645c47279e11394d346f98093e5",
      "tree": "bf9c4efdf2602a4e6645974e431168f031de1beb",
      "parents": [
        "26b068e97cc5522a3d519835cc6f30c501fda7dc",
        "3d0860e802830cf3d11afe3851e673091351e2cf"
      ],
      "author": {
        "name": "Joshua Duong",
        "email": "joshuaduong@google.com",
        "time": "Fri Feb 21 20:59:54 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 20:59:54 2020 +0000"
      },
      "message": "Merge \"Add adbd tls APIs to adbd_auth library.\""
    },
    {
      "commit": "1e5c6cc6629d92059720118bac6755b0486cf69b",
      "tree": "2097c08c168bdae6980ed945293f9e772d4f6669",
      "parents": [
        "1c838967a0de30e52a47e437d1b980a73f8d2413",
        "a686bf7989f64eca0dc17fbc79edcd81604c79cc"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 03:29:56 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 03:29:56 2020 +0000"
      },
      "message": "Merge \"LazyServiceRegistrar: Use defaultServiceManager\" am: 7f9edd9bff am: 3e7c0f4069 am: a686bf7989\n\nChange-Id: Ic4983a30ac00e0d1f9beb737e917963678a57782\n"
    },
    {
      "commit": "a686bf7989f64eca0dc17fbc79edcd81604c79cc",
      "tree": "6ddce607b57c8a4358f019a76516445a2be6c1d5",
      "parents": [
        "ef353f4ac90f59c66a667882264570670d5710a7",
        "3e7c0f4069786e3b155fe03234a8b92641f00385"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 03:15:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 03:15:32 2020 +0000"
      },
      "message": "Merge \"LazyServiceRegistrar: Use defaultServiceManager\" am: 7f9edd9bff am: 3e7c0f4069\n\nChange-Id: Ic4c6c4dafa18fa04091a538559211474e0560643\n"
    },
    {
      "commit": "3d0860e802830cf3d11afe3851e673091351e2cf",
      "tree": "37b055f75f4884bfe27da067cd61d4fdc5272c3e",
      "parents": [
        "d7a33473e55717e9ccc7b75d4162fc8d778b48e0"
      ],
      "author": {
        "name": "Joshua Duong",
        "email": "joshuaduong@google.com",
        "time": "Fri Oct 11 15:43:47 2019 -0700"
      },
      "committer": {
        "name": "Joshua Duong",
        "email": "joshuaduong@google.com",
        "time": "Thu Feb 20 19:05:42 2020 -0800"
      },
      "message": "Add adbd tls APIs to adbd_auth library.\n\nBug: 111434128\n\nTest: mmm -j frameworks/native/libs/adbd_auth\nChange-Id: Id285763c2c2dba1666040581d1d2d56e69ff54cb\n"
    },
    {
      "commit": "3e7c0f4069786e3b155fe03234a8b92641f00385",
      "tree": "6982bbd2d296b170805c43883c4952e8b8c183f0",
      "parents": [
        "a95468388f0e92809558f4e183057658d4b2627d",
        "7f9edd9bffac823b3e9bfa57549255c9f2847067"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:54:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:54:18 2020 +0000"
      },
      "message": "Merge \"LazyServiceRegistrar: Use defaultServiceManager\" am: 7f9edd9bff\n\nChange-Id: I1e7aea8ed8a1125f67d5020f9074cfb3ab5d7240\n"
    },
    {
      "commit": "7f9edd9bffac823b3e9bfa57549255c9f2847067",
      "tree": "14f89074307e6b604bc4d1156c4fa1c1f5c92f36",
      "parents": [
        "107b205e9098ccf78c828f4b4aeab6eeb5bc117c",
        "718470ee42aaca26b6e3787f6587b658820766ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 21 02:42:33 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 02:42:33 2020 +0000"
      },
      "message": "Merge \"LazyServiceRegistrar: Use defaultServiceManager\""
    },
    {
      "commit": "c74fb6fb4369656985732776d443317adefa7325",
      "tree": "317e37ed51b03e09cc0188d5f83f3bbe3563bbb4",
      "parents": [
        "9b9629d9fc7a87cf59db01785b2b5d8ab503fc3a",
        "ef353f4ac90f59c66a667882264570670d5710a7"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:23:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:23:18 2020 +0000"
      },
      "message": "Merge \"Remove heap allocations from Parcel::enforceInterface\" am: 107b205e90 am: a95468388f am: ef353f4ac9\n\nChange-Id: Iabd48205dbecfe01508909e859375f9178376a5b\n"
    },
    {
      "commit": "ef353f4ac90f59c66a667882264570670d5710a7",
      "tree": "20e0d67fcca69808a4d08ac87248506829776d37",
      "parents": [
        "6b7a1fe24e788cfe0b50ce45e138683bf9650b08",
        "a95468388f0e92809558f4e183057658d4b2627d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:09:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 02:09:50 2020 +0000"
      },
      "message": "Merge \"Remove heap allocations from Parcel::enforceInterface\" am: 107b205e90 am: a95468388f\n\nChange-Id: If955a0b2fa59bee882d9430af60258390a666a40\n"
    },
    {
      "commit": "a95468388f0e92809558f4e183057658d4b2627d",
      "tree": "19d0bff27d6c998241a8aedf99920ec9f6fb1f92",
      "parents": [
        "e643c3e6ee43ccd84a325023ac99fdb86dd9f4ea",
        "107b205e9098ccf78c828f4b4aeab6eeb5bc117c"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 01:59:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 21 01:59:48 2020 +0000"
      },
      "message": "Merge \"Remove heap allocations from Parcel::enforceInterface\" am: 107b205e90\n\nChange-Id: I54150f59b26ef1cf004547b1291ef8568da55deb\n"
    },
    {
      "commit": "107b205e9098ccf78c828f4b4aeab6eeb5bc117c",
      "tree": "222f5589915abbe311ceb7ba403b14918218038a",
      "parents": [
        "c0ab6a353202ed78bb710a4c5ebe47c1127d7dc5",
        "0bb330d1218e18127eb3b996645da98d320bbf03"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 21 01:48:10 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 01:48:10 2020 +0000"
      },
      "message": "Merge \"Remove heap allocations from Parcel::enforceInterface\""
    },
    {
      "commit": "ac914e8c2031deb5b6be8e4094d3270946cdf2a7",
      "tree": "26ea0447e2745705e829c3bd6d02281ba060fc4a",
      "parents": [
        "ff3a85ec9cd8ca361635603d16033eb54a6886f0",
        "6b7a1fe24e788cfe0b50ce45e138683bf9650b08"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 18:06:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 18:06:39 2020 +0000"
      },
      "message": "Merge \"Log when context manager is unavailable.\" am: c0ab6a3532 am: e643c3e6ee am: 6b7a1fe24e\n\nChange-Id: Ic025fc97fa3a2ef8a953040eb3a04c8cdeae35bb\n"
    },
    {
      "commit": "ff3a85ec9cd8ca361635603d16033eb54a6886f0",
      "tree": "053e1ee6528e57faff6775e28829d14ca52fd7c8",
      "parents": [
        "ab9b94ff24c0f14674123d527ae8b2b8bcedbb76",
        "e3768ad7ac2884e8c3f25f1f89dc9014530a6a1a"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 18:05:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 18:05:55 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: don\u0027t borrow fd into unique_fd\" am: 637113c267 am: ba7a315924 am: e3768ad7ac\n\nChange-Id: Ib8732dd2899f01009875149a7d6d9bba6aa16716\n"
    },
    {
      "commit": "6b7a1fe24e788cfe0b50ce45e138683bf9650b08",
      "tree": "463a8c08cb5295d36e09b9be47d498064fccad05",
      "parents": [
        "e3768ad7ac2884e8c3f25f1f89dc9014530a6a1a",
        "e643c3e6ee43ccd84a325023ac99fdb86dd9f4ea"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:45:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:45:18 2020 +0000"
      },
      "message": "Merge \"Log when context manager is unavailable.\" am: c0ab6a3532 am: e643c3e6ee\n\nChange-Id: I99cb95bd9c1aa4db0f1720782895fcb03de90896\n"
    },
    {
      "commit": "e3768ad7ac2884e8c3f25f1f89dc9014530a6a1a",
      "tree": "6f3d98b9880020dfc47d643425cc9c870d6a340a",
      "parents": [
        "625595bf68d96a04cc310054ffef04ed3ebaca38",
        "ba7a3159249567ea2b2ee52696d949877423f27f"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:44:51 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:44:51 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: don\u0027t borrow fd into unique_fd\" am: 637113c267 am: ba7a315924\n\nChange-Id: I36f95c6a8e40b2535df88ac044116b74150e2279\n"
    },
    {
      "commit": "e643c3e6ee43ccd84a325023ac99fdb86dd9f4ea",
      "tree": "6c1aa1cbc108746ab0dc4b895ca33d0646a0c67d",
      "parents": [
        "ba7a3159249567ea2b2ee52696d949877423f27f",
        "c0ab6a353202ed78bb710a4c5ebe47c1127d7dc5"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:27:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:27:50 2020 +0000"
      },
      "message": "Merge \"Log when context manager is unavailable.\" am: c0ab6a3532\n\nChange-Id: I24a3b2af9522dd7baa85f236e87963a27971b010\n"
    },
    {
      "commit": "ba7a3159249567ea2b2ee52696d949877423f27f",
      "tree": "3fb01c6a60db23ce11c066f741a6e15f1f6cd491",
      "parents": [
        "9e8e6451528bec9b7f25892de8e569bf9d341ff1",
        "637113c267bd541aebdee1fc9e840b39086748f5"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:27:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 17:27:32 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: don\u0027t borrow fd into unique_fd\" am: 637113c267\n\nChange-Id: I0a0b3f98d8c58948d962f11c6645a6cb065550a3\n"
    },
    {
      "commit": "c0ab6a353202ed78bb710a4c5ebe47c1127d7dc5",
      "tree": "246d568c2588d96885ce77ca1a8e59a80d3532a9",
      "parents": [
        "637113c267bd541aebdee1fc9e840b39086748f5",
        "8d93a71ddae25ee8fb79cc9a2c863a3781bc1842"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Feb 20 17:13:27 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 20 17:13:27 2020 +0000"
      },
      "message": "Merge \"Log when context manager is unavailable.\""
    },
    {
      "commit": "8d93a71ddae25ee8fb79cc9a2c863a3781bc1842",
      "tree": "259156ea9c8b9ed0a25096713a72781d387f5104",
      "parents": [
        "f2a15e8742cf33e37e6c96f4731c298c6749bb68"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 15:16:15 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Feb 20 17:13:19 2020 +0000"
      },
      "message": "Log when context manager is unavailable.\n\ndefaultServiceManager loops here, but service manager is always expected\nto be available. If it\u0027s not, log.\n\nBug: N/A\nTest: N/A\nChange-Id: Ie83c7f7136390301651efd6371bae64455b29961\n"
    },
    {
      "commit": "637113c267bd541aebdee1fc9e840b39086748f5",
      "tree": "4e068763dccfc3af536d3df5312baf9dedcc844b",
      "parents": [
        "835546fa3d48cdff6d1cd95c58ba8078411b7463",
        "073c9c1911f071e9091695286a60c491cd54bd35"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Feb 20 17:13:08 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 20 17:13:08 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: don\u0027t borrow fd into unique_fd\""
    },
    {
      "commit": "ab9b94ff24c0f14674123d527ae8b2b8bcedbb76",
      "tree": "847d2a0b6aeb18492bf9fdb488b4fe5a8b63634b",
      "parents": [
        "343631d8811966f046e9824e8f91a000c2a8c1a1",
        "6a446a247edf6b909e103754e18d6e35166993fa"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 08:00:52 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 08:00:52 2020 +0000"
      },
      "message": "Merge \"Revert^2 \"Update statsd binary path for apex\"\""
    },
    {
      "commit": "6a446a247edf6b909e103754e18d6e35166993fa",
      "tree": "f38421c0168978b7a67185bedffcf80864e59eee",
      "parents": [
        "3be1c493d03ca1b091b191da83777a5e16e909c8"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 04:57:00 2020 +0000"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 04:57:00 2020 +0000"
      },
      "message": "Revert^2 \"Update statsd binary path for apex\"\n\n3be1c493d03ca1b091b191da83777a5e16e909c8\n\nChange-Id: If487f503cc5f0d04d9ea0b9a37fa8d17c997cf48\n"
    },
    {
      "commit": "2be7ce4b0ad02b1047b758d973d2aa4e90b364f8",
      "tree": "ddf155fb5a959152fda8b6b529b3053176fc49b2",
      "parents": [
        "aed85d84f87c510b7079b160afca62882c73db0b",
        "3be1c493d03ca1b091b191da83777a5e16e909c8"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 04:22:01 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 04:22:01 2020 +0000"
      },
      "message": "Merge \"Revert \"Update statsd binary path for apex\"\""
    },
    {
      "commit": "3be1c493d03ca1b091b191da83777a5e16e909c8",
      "tree": "be52dae8a6f37b700e54e1ed978bc8d5510cb873",
      "parents": [
        "b572e10d9f42021dc9b52d168f173ef668bd9ee6"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 04:19:41 2020 +0000"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 04:19:41 2020 +0000"
      },
      "message": "Revert \"Update statsd binary path for apex\"\n\nRevert submission 10356003-statsd_apex\n\nReason for revert: https://android-build.googleplex.com/builds/quarterdeck?branch\u003dgit_master\u0026target\u003dbuild_test\u0026lkgb\u003d6221366\u0026fkbb\u003d6221428\nReverted Changes:\nIc84e77269:Update init.rc for statsd setup\nI6f3fab4b4:Update statsd binary path for apex\nIb4ea98aed:Migrate Statsd to the apex\n\nChange-Id: If6ce6de80710be4c4e02f2875cac17303fefbd16\n"
    },
    {
      "commit": "718470ee42aaca26b6e3787f6587b658820766ce",
      "tree": "bff0ecd4704d15f96e61d978706084e93d7d0e6d",
      "parents": [
        "6a1aed6f64c5991ffab1aa0e12df22bc9333c5ca"
      ],
      "author": {
        "name": "Jon Spivack",
        "email": "spivack@google.com",
        "time": "Wed Feb 19 19:18:21 2020 -0800"
      },
      "committer": {
        "name": "Jon Spivack",
        "email": "spivack@google.com",
        "time": "Wed Feb 19 19:18:21 2020 -0800"
      },
      "message": "LazyServiceRegistrar: Use defaultServiceManager\n\nThis is cleaner and more robust than partially reimplementing IServiceManager\u0027s code.\n\nBug: N/A\nTest: aidl_lazy_test\nChange-Id: I0fb696f5fb7c7d905ceb803d4cab898099aaaead\n"
    },
    {
      "commit": "aed85d84f87c510b7079b160afca62882c73db0b",
      "tree": "a588c01770c1d937f9bcce20b6585dc246438615",
      "parents": [
        "c704c627d3c287a0495a77b0af6a66d38b09277c",
        "625595bf68d96a04cc310054ffef04ed3ebaca38"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:30:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:30:41 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: initialize current freq before starting tracking\" am: 835546fa3d am: 9e8e645152 am: 625595bf68\n\nChange-Id: I25073e59e87b0a669d3162926bb19453e4550d2f\n"
    },
    {
      "commit": "625595bf68d96a04cc310054ffef04ed3ebaca38",
      "tree": "ff2aebd80d04ea84608bf1e109e9f6d35256d5a1",
      "parents": [
        "e1b97ae9d5d18bb6081844eb727a01e719f72ef2",
        "9e8e6451528bec9b7f25892de8e569bf9d341ff1"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:18:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:18:15 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: initialize current freq before starting tracking\" am: 835546fa3d am: 9e8e645152\n\nChange-Id: I0b19516fae5109e3b1d234d9a2e4fa97ee9e85b6\n"
    },
    {
      "commit": "9e8e6451528bec9b7f25892de8e569bf9d341ff1",
      "tree": "f2af30caaf62a2903fbd806691a55360c513747d",
      "parents": [
        "30b68545ac6faa3220ef763df11a7aa014a45542",
        "835546fa3d48cdff6d1cd95c58ba8078411b7463"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:04:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 02:04:30 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: initialize current freq before starting tracking\" am: 835546fa3d\n\nChange-Id: I7bdd76809552e29149cf50bdf3975a676422f036\n"
    },
    {
      "commit": "c85a1bf976a95a12df9078a17245f7f55b72442c",
      "tree": "2959fb05809652ba5f70318540cb688827435706",
      "parents": [
        "e956a74577eeed26ace80a0773861d62f8426630",
        "b572e10d9f42021dc9b52d168f173ef668bd9ee6"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Feb 20 01:53:20 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 01:53:20 2020 +0000"
      },
      "message": "Merge \"Update statsd binary path for apex\""
    },
    {
      "commit": "835546fa3d48cdff6d1cd95c58ba8078411b7463",
      "tree": "1c2ead9cb568627609a8f7a492419f602bf89767",
      "parents": [
        "15ebf44563130070c652f4e402f88fd036b3b86d",
        "ab51dca9e65929825231d392a458a9c366d07aec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 01:52:01 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 20 01:52:01 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: initialize current freq before starting tracking\""
    },
    {
      "commit": "e956a74577eeed26ace80a0773861d62f8426630",
      "tree": "b59d054cdc444d30712cb09b0745e9e725f5f850",
      "parents": [
        "0f7c42eeeec4022e4b8b9d68d0f39ab6aa6e8bf8",
        "0889c62cba1873c45da9d6ec2731abbd760e0e12"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 01:17:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 01:17:33 2020 +0000"
      },
      "message": "Merge \"Set timeout on dequeue buffer for BLAST Adapter\""
    },
    {
      "commit": "073c9c1911f071e9091695286a60c491cd54bd35",
      "tree": "89f24c8cd2f7c53dc051d8cb7faa29f69f3bd92a",
      "parents": [
        "15ebf44563130070c652f4e402f88fd036b3b86d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 17:02:08 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 17:02:08 2020 -0800"
      },
      "message": "libbinder_ndk: don\u0027t borrow fd into unique_fd\n\nSome tests are checking that this fd isn\u0027t double-owned, but it appears\nto be for a brief duration. Instead, avoiding creating a\nParcelFileDescriptor at all.\n\nFixes: 149851140\nTest: CtsNdkBinderTestCases\nChange-Id: Ibb90203bd7b9c9481756df64b84c048d01f0843e\n"
    },
    {
      "commit": "aa80666753d1a6e3d0d72dfe66f72a2bfbf99574",
      "tree": "c5e788cc004523e984ed1ef4faad92eff595b55a",
      "parents": [
        "ab3ea1d466394ed192fa50629222ba1e0470d130",
        "e1b97ae9d5d18bb6081844eb727a01e719f72ef2"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:50:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:50:43 2020 +0000"
      },
      "message": "Merge \"binderLibTest: cleanup child processes on error\" am: 15ebf44563 am: 30b68545ac am: e1b97ae9d5\n\nChange-Id: I3f01f6981ad43b4efe83544e8cb2df8100540dad\n"
    },
    {
      "commit": "e1b97ae9d5d18bb6081844eb727a01e719f72ef2",
      "tree": "f67ba065c72020fe5e8e0ba0ca232500529d7885",
      "parents": [
        "7e0c617aaabe940cdc399c1bd7d9f3f6294b880e",
        "30b68545ac6faa3220ef763df11a7aa014a45542"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:39:01 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:39:01 2020 +0000"
      },
      "message": "Merge \"binderLibTest: cleanup child processes on error\" am: 15ebf44563 am: 30b68545ac\n\nChange-Id: Ie74775cd2f492d21456c085e31e521e1ce635e38\n"
    },
    {
      "commit": "30b68545ac6faa3220ef763df11a7aa014a45542",
      "tree": "3ebf894ca17a131d394a080b1684237adde40a3b",
      "parents": [
        "b1512d3d1eb9ffc35bffb7205a547f494f71af44",
        "15ebf44563130070c652f4e402f88fd036b3b86d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:23:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 00:23:18 2020 +0000"
      },
      "message": "Merge \"binderLibTest: cleanup child processes on error\" am: 15ebf44563\n\nChange-Id: I30753200e594bbee830a55be9897882884d45b84\n"
    },
    {
      "commit": "15ebf44563130070c652f4e402f88fd036b3b86d",
      "tree": "c8257855eda16d4c7d5239dc48dee9e55f29d31f",
      "parents": [
        "6a1aed6f64c5991ffab1aa0e12df22bc9333c5ca",
        "da0483532f1401c705983de9352ea24db313f1c3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 19 23:55:35 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 23:55:35 2020 +0000"
      },
      "message": "Merge \"binderLibTest: cleanup child processes on error\""
    },
    {
      "commit": "0889c62cba1873c45da9d6ec2731abbd760e0e12",
      "tree": "7e88a12ecd53ab83e6decee2a8fcd17da47dd57a",
      "parents": [
        "e78aa72ad48bbe6d9ed97c9bfca9f87b64d62787"
      ],
      "author": {
        "name": "Valerie Hau",
        "email": "vhau@google.com",
        "time": "Wed Feb 19 15:04:47 2020 -0800"
      },
      "committer": {
        "name": "Valerie Hau",
        "email": "vhau@google.com",
        "time": "Wed Feb 19 15:04:47 2020 -0800"
      },
      "message": "Set timeout on dequeue buffer for BLAST Adapter\n\nBufferQueue may not block if the queue consumer and producer\nare controlled by the app. setting the timeout explicitly to prevent\nthis from happening\n\nBug: 146345307\nTest: build, boot, libgui_test, manual\nChange-Id: I5e580b1c45288b48c922a3e312c0d98e40808803\n"
    },
    {
      "commit": "ab51dca9e65929825231d392a458a9c366d07aec",
      "tree": "c4b66b72ec3600335b1e4e40703858368fce22d0",
      "parents": [
        "c6f093abedd6f9688a35b14be7a3ab46046bc1bd"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Wed Feb 19 14:11:45 2020 -0800"
      },
      "committer": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Wed Feb 19 14:26:16 2020 -0800"
      },
      "message": "libtimeinstate: initialize current freq before starting tracking\n\nCurrently, our BPF programs start with no knowledge of current CPU\nfrequency and tracking cannot begin for a cluster until a frequency\ntransition happens \u0026 makes this information available. On cuttlefish,\nCPU frequency never changes, so tracking never starts \u0026 cuttlefish\ncan\u0027t be used for testing this feature.\nTo resolve this, pass the BPF programs initial frequency information\nread from the scaling_cur_freq sysfs nodes.\n\nTest: libtimeinstate_test passes on cuttlefish\nTest: confirm that uid_time_in_state BPF map contains data on\ncuttlefish\nBug: 138317993\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\n\nChange-Id: I5b24c1311e1b58b73c7e32f41c2d99c5ab344549\n"
    },
    {
      "commit": "da0483532f1401c705983de9352ea24db313f1c3",
      "tree": "6bd3d22c39d0eb09d392da175d3a41df37c43281",
      "parents": [
        "f2a15e8742cf33e37e6c96f4731c298c6749bb68"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 13:25:53 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 13:30:53 2020 -0800"
      },
      "message": "binderLibTest: cleanup child processes on error\n\nWhen this test errors, the child processes hang out in a zombie state in\ndo_exit, since they still have an open pipe from the parent process.\n\nBug: N/A\nTest: binderLibTest\nChange-Id: Icb07a155fc39fcb4c91b5c74297fe0d09f59e6b5\n"
    },
    {
      "commit": "086ee3d354df419a5b99a6eec81b3a50e1ecb16d",
      "tree": "dca8d08eca61c41d975b40526ee2356372358d76",
      "parents": [
        "0a588706dbd34220a53c0e4f49103005e65a0969",
        "d41a1be2d7a0a46be45c7f6338b739c49bef824e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 19 20:42:42 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 19 20:42:42 2020 +0000"
      },
      "message": "Merge \"[ANativeWindow] Apply remaining API feedback\""
    },
    {
      "commit": "0a588706dbd34220a53c0e4f49103005e65a0969",
      "tree": "a678ad4f45ddb8995f8f23187ac3a0fd47dcaa13",
      "parents": [
        "453f2c3e7a99fc1a342319c0419da4a2de2e9a87",
        "62a4cf8c48647de3442808264005e093ab7704f0"
      ],
      "author": {
        "name": "Steven Thomas",
        "email": "steventhomas@google.com",
        "time": "Wed Feb 19 18:53:02 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 19 18:53:02 2020 +0000"
      },
      "message": "Merge \"Add compatibility param to setFrameRate() api\""
    },
    {
      "commit": "453f2c3e7a99fc1a342319c0419da4a2de2e9a87",
      "tree": "1d5eebc761025e4d4488640fd3b4466df9af297f",
      "parents": [
        "77aa40b54835477235546a3fcdfb2b861af68065",
        "f5de90d0829d6d007587f9ea43df4fd2a8523caa"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 19 14:52:47 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 19 14:52:47 2020 +0000"
      },
      "message": "Merge \"Expose EDID fields in DeviceProductInfo\""
    },
    {
      "commit": "f5de90d0829d6d007587f9ea43df4fd2a8523caa",
      "tree": "1c0719449f9de0cad625c70d60e4e22dd803c4cd",
      "parents": [
        "13b65390914c11a0f0ea407097cdd3bc9422ea9a"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Tue Oct 08 10:57:25 2019 +0200"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed Feb 19 10:56:16 2020 +0100"
      },
      "message": "Expose EDID fields in DeviceProductInfo\n\nExpose product-specific information (display name, manufacture date,\nmanufacturer Pnp ID) about the display or the directly connected device\non the display chain. For example, if the display is transitively\nconnected, these fields may contain product information about the\nintermediate device.\n\nAdditionally this information can be used to prime a TV  with entries\nfrom an infrared database for controlling connected audio and TV devices.\n\nBug: 145299597\nFixes: 140223709\nTest: atest DisplayIdentificationTest\nChange-Id: Idec0d053d945e3c171e2cdd80773c9d869934020\n"
    },
    {
      "commit": "f59893e49af1742c330a31a2c0d7c43222cba50a",
      "tree": "882f825a9e1a84634199c2556a2e6aa8b63a7d73",
      "parents": [
        "5ab2db7006c7af286cf4392680f6efba1a0eec79",
        "d3c50f311b2b6a163700495a84cc10eaded95e83"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:47:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:47:14 2020 +0000"
      },
      "message": "Merge \"libbinder: Do not destruct TextOutput\" am: d7a33473e5 am: 8541aab336 am: d3c50f311b\n\nChange-Id: Ie732e8fb8115b3a7c64668bad59a244acd8e7a79\n"
    },
    {
      "commit": "d3c50f311b2b6a163700495a84cc10eaded95e83",
      "tree": "15bfe3f5988fd197a2ed83e17dbf505637094249",
      "parents": [
        "96c3e6a1da7c9d155a3d45258171f2d715aff77d",
        "8541aab336eb43d807da40a30ee234e2a0950007"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:33:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:33:57 2020 +0000"
      },
      "message": "Merge \"libbinder: Do not destruct TextOutput\" am: d7a33473e5 am: 8541aab336\n\nChange-Id: Ifd7283659472c04446c70845ee8d45e7f1a4c4bb\n"
    },
    {
      "commit": "8541aab336eb43d807da40a30ee234e2a0950007",
      "tree": "e6f3fa652f439ea6232ac6a8e77b3fca02a077d9",
      "parents": [
        "ecd659ed8c5045516e69045a1c145baff0a16bba",
        "d7a33473e55717e9ccc7b75d4162fc8d778b48e0"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:16:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 06:16:57 2020 +0000"
      },
      "message": "Merge \"libbinder: Do not destruct TextOutput\" am: d7a33473e5\n\nChange-Id: Iba8d46faf01bdaf934724eca898bffb10079fb9d\n"
    },
    {
      "commit": "d7a33473e55717e9ccc7b75d4162fc8d778b48e0",
      "tree": "70d5612d898c4f18f557e966e008949910f45dbd",
      "parents": [
        "377164acceddc5e9a039ac4911ad31a7ec9020b8",
        "7c0edebd0f1e538b7dc5872719a8ff1f549a1fbb"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 05:56:42 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 05:56:42 2020 +0000"
      },
      "message": "Merge \"libbinder: Do not destruct TextOutput\""
    },
    {
      "commit": "daaac49dd9fe5427e4cd9d66e8350479f4726783",
      "tree": "a25be1400e05b5c9a08fb001e5dba6ae43fd0a7b",
      "parents": [
        "1119f1ec91f32787a7f7e7ede9775b5a1b71b84b",
        "96c3e6a1da7c9d155a3d45258171f2d715aff77d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:49:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:49:43 2020 +0000"
      },
      "message": "Merge \"mark AIBinder_Class_setHandleShellCommand as weak.\" am: 377164acce am: ecd659ed8c am: 96c3e6a1da\n\nChange-Id: I8e0fc6a6af4f303914a25800ce5c6ea70caad17f\n"
    },
    {
      "commit": "96c3e6a1da7c9d155a3d45258171f2d715aff77d",
      "tree": "6e05c06ba0a0c91b0008740d106996ad91c245c3",
      "parents": [
        "4f2cf91f9a8ff02c3ce10f47dc2a10255540b808",
        "ecd659ed8c5045516e69045a1c145baff0a16bba"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:32:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:32:03 2020 +0000"
      },
      "message": "Merge \"mark AIBinder_Class_setHandleShellCommand as weak.\" am: 377164acce am: ecd659ed8c\n\nChange-Id: Ia9067c5fc751b9e7d44f4629b117bd0faaaa3ef2\n"
    },
    {
      "commit": "ecd659ed8c5045516e69045a1c145baff0a16bba",
      "tree": "cb4db3be177d6683e790af8d19b9e77a8b4c9f04",
      "parents": [
        "49a46bc34b124b69a2be0a3ede342059d7308d1d",
        "377164acceddc5e9a039ac4911ad31a7ec9020b8"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:13:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 19 04:13:22 2020 +0000"
      },
      "message": "Merge \"mark AIBinder_Class_setHandleShellCommand as weak.\" am: 377164acce\n\nChange-Id: Id84a8112456569a581610fc8d2d53b219267f3e9\n"
    },
    {
      "commit": "377164acceddc5e9a039ac4911ad31a7ec9020b8",
      "tree": "8e1eaa9f2d4ec7baa030b799ea14683b12c9918a",
      "parents": [
        "c6f093abedd6f9688a35b14be7a3ab46046bc1bd",
        "4cbbed127f44697cbea04da07931ca0d9c1a0916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 19 03:55:38 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 19 03:55:38 2020 +0000"
      },
      "message": "Merge \"mark AIBinder_Class_setHandleShellCommand as weak.\""
    },
    {
      "commit": "b572e10d9f42021dc9b52d168f173ef668bd9ee6",
      "tree": "f38421c0168978b7a67185bedffcf80864e59eee",
      "parents": [
        "40e7078c06a0b1439279b6a1cabc7b0b4b07f66e"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Tue Feb 18 18:30:20 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Tue Feb 18 18:30:20 2020 -0800"
      },
      "message": "Update statsd binary path for apex\n\nBug: 145923087\nTest: m -j\nChange-Id: I6f3fab4b46de03de637f555b010ae709cca6593e\n"
    },
    {
      "commit": "7c0edebd0f1e538b7dc5872719a8ff1f549a1fbb",
      "tree": "26789a91e837cc448a222e1fb1c1bd030f1a7c3d",
      "parents": [
        "f2a15e8742cf33e37e6c96f4731c298c6749bb68"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 18 16:41:21 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 19 01:03:47 2020 +0000"
      },
      "message": "libbinder: Do not destruct TextOutput\n\nRecent changes meant that a log is more likely during process shutdown,\ngiven certain races w/ alog. However, this should have still been\npossible before. Allocating TextOutput objects on the heap to avoid them\ngetting destructed.\n\nFixes: 149516130\nTest: while ! cmd activity get-current-user 2\u003e\u00261 | grep FORTIFY; do :; done\nChange-Id: Ie5c066172203172a80c135ad5aa7da09b362ee73\n"
    },
    {
      "commit": "4cbbed127f44697cbea04da07931ca0d9c1a0916",
      "tree": "2915f99367c603c164c00c2cd11fc457e1c3c610",
      "parents": [
        "1a4c7aee2622209968eaa43937e60f2cebfc29e6"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 17 10:50:19 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Feb 19 09:50:38 2020 +0900"
      },
      "message": "mark AIBinder_Class_setHandleShellCommand as weak.\n\nThis symbol is not present on Q builds. This breaks installing\nmainline modules on Q builds.\n\nBug: 149077229\n\nTest: TARGET_BUILD_APPS\u003dcom.android.resolv vendor/google/build/build_unbundled_mainline_module.sh com.android.resolv \u0026\u0026 adb install --staged --enable-rollback out/dist/mainline_modules_arm64/com.android.resolv.apex \u0026\u0026 adb reboot\nChange-Id: I4fae98f2ad3051d758707658ec489f0d855cd4b6\n"
    },
    {
      "commit": "62a4cf8c48647de3442808264005e093ab7704f0",
      "tree": "e11edbf1ffcdba13993ecde3fff1f4e4b24a1908",
      "parents": [
        "b0d738af0fe2874416cecac9eb7f931d01a12a31"
      ],
      "author": {
        "name": "Steven Thomas",
        "email": "steventhomas@google.com",
        "time": "Fri Jan 31 12:04:03 2020 -0800"
      },
      "committer": {
        "name": "Steven Thomas",
        "email": "steventhomas@google.com",
        "time": "Tue Feb 18 16:49:54 2020 -0800"
      },
      "message": "Add compatibility param to setFrameRate() api\n\nAdd a compatiblity param to the setFrameRate() api, so the system has\nmore info to decide the device frame rate when there are multiple\ncompeting preferences.\n\nI also changed the plumbing for setFrameRate() to go directly to surface\nflinger, instead of through buffer queue. We\u0027re trying to avoid changes\nto buffer queue code, to avoid disturbing the prebuilts.\n\nBug: 137287430\n\nTest: Added new cts tests to verify behavior of the compatibility param.\n      cts-tradefed run commandAndExit cts-dev --module CtsGraphicsTestCases --test android.graphics.cts.SetFrameRateTest\n\nTest: /data/nativetest64/SurfaceFlinger_test/SurfaceFlinger_test --gtest_filter\u003d\u0027SetFrameRateTest.*\u0027\n\nChange-Id: Ibe75a778fb459d4138a1446c1b38b44798b56a99\n"
    },
    {
      "commit": "502a77e19b64f23ad862eda83f7d8af877900cbb",
      "tree": "e78c55eb321f3dfed2fab83f893376f5c14cb4e4",
      "parents": [
        "e78aa72ad48bbe6d9ed97c9bfca9f87b64d62787",
        "7c2a35dcba965f3846683dc50873ae88c91c64b1"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:56:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:56:55 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: open programs read-only\" am: c6f093abed am: 49a46bc34b am: 7c2a35dcba\n\nChange-Id: Idb89a4e51b03f1b5a14c100bf9499df11d91925b\n"
    },
    {
      "commit": "7c2a35dcba965f3846683dc50873ae88c91c64b1",
      "tree": "23b41e3d8252b994197eb52eb05cacd76596a002",
      "parents": [
        "4be5cc3bdd5b05b1112feb1d313ddc076e6d4edb",
        "49a46bc34b124b69a2be0a3ede342059d7308d1d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:26:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:26:19 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: open programs read-only\" am: c6f093abed am: 49a46bc34b\n\nChange-Id: I232f0a21b999b3f9e30b48a0d4047f33ab4029d2\n"
    },
    {
      "commit": "49a46bc34b124b69a2be0a3ede342059d7308d1d",
      "tree": "8f735366bf313fd698eabb7c657deee1644590bf",
      "parents": [
        "8ab1fe5e4050b8c12f2e4a293b01b02d379b2187",
        "c6f093abedd6f9688a35b14be7a3ab46046bc1bd"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:02:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 23:02:39 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: open programs read-only\" am: c6f093abed\n\nChange-Id: I3eb46ed458f87f6944031f0004056cbda6b59bbc\n"
    },
    {
      "commit": "c6f093abedd6f9688a35b14be7a3ab46046bc1bd",
      "tree": "0627fa62a7c8074f3275e6c72607d5cd17f3a571",
      "parents": [
        "ed2364a85d36bde6f436dd1032fe30fedeb79966",
        "6a2892c7685afb97dff6ad7b9a963065a106048d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 18 22:48:40 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 18 22:48:40 2020 +0000"
      },
      "message": "Merge \"libtimeinstate: open programs read-only\""
    },
    {
      "commit": "c6ee3609c3c935f21e4bc83d88e42cc6fe30c3d4",
      "tree": "422c361b6a978de6a572c414c3d6c64cc6a1d00e",
      "parents": [
        "40e7078c06a0b1439279b6a1cabc7b0b4b07f66e",
        "5b5adbf68176342fef5a2351e5159fa6e649cd9c"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 21:23:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 21:23:06 2020 +0000"
      },
      "message": "Merge \"Add AParcel_getAllowFds()\" am: ed2364a85d am: 8ab1fe5e40 am: 5b5adbf681\n\nChange-Id: Ibbd0871d3b2f82253671224fd36eb9b72cd6c67c\n"
    },
    {
      "commit": "6a2892c7685afb97dff6ad7b9a963065a106048d",
      "tree": "1e6fc0ad6222f33983f2b4977da44781371a16fe",
      "parents": [
        "abecf0482c45d1b4deb1877b15cef15240b41fb5"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Tue Feb 18 12:34:15 2020 -0800"
      },
      "committer": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Tue Feb 18 13:17:30 2020 -0800"
      },
      "message": "libtimeinstate: open programs read-only\n\nWe only grant system_server read access to programs, but bpf_obj_get()\nunnecessarily requests write as well. Instead, use bpfFdGet to open\nthe programs read-only\n\nTest: programs are successfully opened \u0026 attached\nBug: 138317993\nChange-Id: Icf6478737de7ea1272b995fdc7a5bd4e8947c10d\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\n"
    },
    {
      "commit": "5b5adbf68176342fef5a2351e5159fa6e649cd9c",
      "tree": "caa4f62c799be957db45d8bf75f11f29f90c098c",
      "parents": [
        "2ac83618cab5dfb85b4fd39e2f50724aa3d491e0",
        "8ab1fe5e4050b8c12f2e4a293b01b02d379b2187"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 21:08:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 18 21:08:33 2020 +0000"
      },
      "message": "Merge \"Add AParcel_getAllowFds()\" am: ed2364a85d am: 8ab1fe5e40\n\nChange-Id: I3866237bd7d7e54b311677bf69cc0e2d9a7037b7\n"
    },
    {
      "commit": "8ab1fe5e4050b8c12f2e4a293b01b02d379b2187",
      "tree": "1388b4c9d29833680c4b2b09a53623032f748459",
      "parents": [
        "c40bba08aca8d81e890b4451b61c7d2c8078174a",
        "ed2364a85d36bde6f436dd1032fe30fedeb79966"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 18 20:50:14 2020 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 18 20:50:14 2020 +0000"
      },
      "message": "Merge \"Add AParcel_getAllowFds()\" am: ed2364a85d\n\nChange-Id: Idf947f1c3390788b270e5afb440f2a7e588ba169\n"
    },
    {
      "commit": "6a647865afbf87d429b20dc638e528e4b67dd227",
      "tree": "df8a8bd44bbd5d495d3afe1ddbbaaba29cec4824",
      "parents": [
        "a8f091eca56447f3376787230191a8cb0500112e",
        "0e328f6a641f256c49e2f063207eca6ddd02be60"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Tue Feb 18 19:07:00 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 18 19:07:00 2020 +0000"
      },
      "message": "Merge \"SurfaceControl: C++ Binding Lifetime refactoring\""
    },
    {
      "commit": "ed2364a85d36bde6f436dd1032fe30fedeb79966",
      "tree": "0afea6b0f7908fe4f0ac03cd03fce05d35aff426",
      "parents": [
        "5f28d3c73290e350ea730e31b5209d27e4a760c6",
        "79fb24b182522bce4decf4618a2f97b5d92b58ed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 18 18:54:28 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 18 18:54:28 2020 +0000"
      },
      "message": "Merge \"Add AParcel_getAllowFds()\""
    },
    {
      "commit": "a8f091eca56447f3376787230191a8cb0500112e",
      "tree": "026abbcf439942a49b20f75fa9832db96f18e8eb",
      "parents": [
        "0961d56878d3a46cf9b7301bceeee544b035b4d5",
        "110a0d1b954a129c7b8efddc07d3e85b2b3057a9"
      ],
      "author": {
        "name": "Lucas Dupin",
        "email": "dupin@google.com",
        "time": "Tue Feb 18 18:46:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 18 18:46:12 2020 +0000"
      },
      "message": "Merge \"Gaussian blur optimizations\""
    },
    {
      "commit": "0bb330d1218e18127eb3b996645da98d320bbf03",
      "tree": "6f142a977bf38ea090bb5b57c0af57cd4143443e",
      "parents": [
        "5f28d3c73290e350ea730e31b5209d27e4a760c6"
      ],
      "author": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Tue Oct 29 16:44:19 2019 -0700"
      },
      "committer": {
        "name": "Daniel Colascione",
        "email": "dancol@google.com",
        "time": "Tue Feb 18 10:16:52 2020 -0800"
      },
      "message": "Remove heap allocations from Parcel::enforceInterface\n\nWe shouldn\u0027t have to make String16 instances just to do string\ncomparisons.\n\nBug: 143567784\nTest: boots; 15 minutes of parcel fuzz testing\nChange-Id: I9a152f1774103a551d5fd4a8412b42c52a2bb329\n"
    },
    {
      "commit": "0e328f6a641f256c49e2f063207eca6ddd02be60",
      "tree": "86daad3dc88df993a792e4d071921dd2a7af4cd1",
      "parents": [
        "0961d56878d3a46cf9b7301bceeee544b035b4d5"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Feb 06 17:12:08 2020 -0800"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Tue Feb 18 17:17:10 2020 +0000"
      },
      "message": "SurfaceControl: C++ Binding Lifetime refactoring\n\nFirst we eliminate the \"dropReferenceTransaction\" semantic. This semantic\nreparents the surface to null if the C++ object dies before release() is\ncalled. This is a legacy semantic from before SurfaceControls were reference\ncounted. I point that it\u0027s unused by noting that all Java code paths\nwill lead to calling release() in the JNI code before dropping the last reference.\n\nWith dropReferenceTransaction gone we can remove mOwned it has no further uses.\n\nWith these gone we now remove release() all together on the native side. This\nmeans that mClient and mHandle will only be written from the\nconstructor and destructor making access to them thread-safe\nas long as you hold an sp\u003c\u003e to the SurfaceControl. This should prevent\nbugs like we\u0027ve had in the past about who calls release when, no one calls it!\n\nThe final question is: is removing the call to release on the Java side safe?\nWe still need an explicit Java binding release call so we can drop the native\nreference in a timely fashion. This then breaks down in to two scenarios:\n          1. We are the last reference\n          2. Someone else holds a reference\nIf we are in the first scenario, then calling release or not is equivalent to just\ndropping the reference. If we are in the second scenario, calling release()\nwill be unsafe. Because we could at any time overwrite mClient/mHandle after\nthe other ref holder had verified it was null.\n\nThe main path I know of for how native code could acquire a second reference\nto the JNI owned SurfaceControl is via Transaction::registerSurfaceControlForCallback\nthen if we release while Transaction::writeToParcel is running, it will inevitably\nsegfault. This change could lead to the extension of life-time for SurfaceControl.cpp\nobjects while the Transaction containing them is alive (but previously the\nSurfaceControl.cpp proxy would have been released). I also argue this is safe since\nthe sp\u003cIBinder\u003e itself was reffed in another place in the Transaction so the lifetime\nof the actual server side resource isn\u0027t extended at all. Only the lightweight proxy\nobject.\n\nBug: 149055469\nBug: 149315421\nTest: Existing tests pass.\nChange-Id: Ibd4d1804ef18a9c389c7f9112d15872cfe44b22e\n"
    },
    {
      "commit": "39e9a251773fd94b48bfe1c3120ef95c7e8b673a",
      "tree": "ba690cee0694d8a74e15821277f1976bf48387b3",
      "parents": [
        "31cf0a0d5a9c722e1a86f57963e5e8dd0e1bef76",
        "e4943eb672d8861d700affa2e3f3306e73a1648d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 18 16:40:23 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 18 16:40:23 2020 +0000"
      },
      "message": "Merge \"BLASTBufferQueue: Correct deadlocks in mNextTransaction handling.\""
    },
    {
      "commit": "13b65390914c11a0f0ea407097cdd3bc9422ea9a",
      "tree": "d1c0f4f103c589ad1232598d8d9be6ab77243975",
      "parents": [
        "8b1d82f8a23c395897191c400692dbdaf1f4189f",
        "db5aceffb304ff23a210b7c2671b6becf3a5c773"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 17 10:11:35 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 17 10:11:35 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: private SharedRefBase construction\" am: 1a4c7aee26 am: 0235b3260b am: db5aceffb3\n\nChange-Id: Ic7aff0f8071ec0080c1bd1efb7b7006212b9163b\n"
    },
    {
      "commit": "78740e1d5b4b6d8d8622c073b30d1d3b859d37f0",
      "tree": "d7aac763051e16063a26f98d0f9dc1c25851cb3a",
      "parents": [
        "a61a7e1519e9db75d549d30baf3369b0dd27cde2",
        "e049720e96cf477eb516f5197e490538bb8aaaf2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 17 10:10:29 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 17 10:10:29 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: no heap alloc when writing fd\" am: 51c6a7c8a4 am: 288f52faec am: e049720e96\n\nChange-Id: Ib79fd1d6506ac2e3f22c84d77ef9e3c843c28c04\n"
    },
    {
      "commit": "a61a7e1519e9db75d549d30baf3369b0dd27cde2",
      "tree": "37a909697ce53e68c37a381d61e5603ff564d484",
      "parents": [
        "4df87f6585a480b8f15eae69baa178c85114fbf1",
        "d33773bab9f29ebccb3ea87e227416561f449ca3"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Feb 17 10:01:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 17 10:01:59 2020 +0000"
      },
      "message": "Merge \"Merge commit \u0027753132194ff691e1533e354dddc2bc31d25e50a0\u0027 into manual_merge_753132194ff691e1533e354dddc2bc31d25e50a0\""
    },
    {
      "commit": "d33773bab9f29ebccb3ea87e227416561f449ca3",
      "tree": "7b87eb82acf7762095a0026649b02f656126647f",
      "parents": [
        "4fa5e4a06d0af17ca0c45ce8a301d7622a5f3297",
        "753132194ff691e1533e354dddc2bc31d25e50a0"
      ],
      "author": {
        "name": "David Stevens",
        "email": "stevensd@google.com",
        "time": "Fri Feb 14 14:08:08 2020 +0900"
      },
      "committer": {
        "name": "David Stevens",
        "email": "stevensd@google.com",
        "time": "Mon Feb 17 04:29:19 2020 +0000"
      },
      "message": "Merge commit \u0027753132194ff691e1533e354dddc2bc31d25e50a0\u0027 into manual_merge_753132194ff691e1533e354dddc2bc31d25e50a0\n\nBug: None\nTest: blueline boots and property is build time configurable\n\nChange-Id: If53ee3b26873ba230464efb2ac04112bd94d0661\n"
    },
    {
      "commit": "db5aceffb304ff23a210b7c2671b6becf3a5c773",
      "tree": "e879048272801478807c380f9098d13522c50bbe",
      "parents": [
        "4c18518d3b9999bede46a09af4bfc2b8ba711e7c",
        "0235b3260bff898af9eac1aed6eba577d304c88e"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Feb 16 17:32:15 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Feb 16 17:32:15 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: private SharedRefBase construction\" am: 1a4c7aee26 am: 0235b3260b\n\nChange-Id: Idb1661aab675fb4517f65236b851d07d4be0b402\n"
    },
    {
      "commit": "0235b3260bff898af9eac1aed6eba577d304c88e",
      "tree": "5c25dc72e7798bff526cb861227907b60f4f20e7",
      "parents": [
        "288f52faec5f2b235fa2885c578921a7e5e4dedf",
        "1a4c7aee2622209968eaa43937e60f2cebfc29e6"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Feb 16 17:19:42 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Feb 16 17:19:42 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: private SharedRefBase construction\" am: 1a4c7aee26\n\nChange-Id: Ib02d751989033699d7ab99426253e0d6bd4fdac2\n"
    },
    {
      "commit": "e4943eb672d8861d700affa2e3f3306e73a1648d",
      "tree": "42e0bde7d55e34835c65beac84e54c425fd26a93",
      "parents": [
        "336e2712936943e9694b4837d1e6d0b916e5e034"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Sat Feb 15 18:34:59 2020 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Sat Feb 15 18:43:59 2020 -0800"
      },
      "message": "BLASTBufferQueue: Correct deadlocks in mNextTransaction handling.\n\nThere are two deadlocks in mNextTransaction handling that we adress\nhere. The first relates to the wait-condition. Imagine we submit a buffer,\nnow enable mNextTransaction, and queue our next buffer. In onFrameAvailable\nmNumAcquired will be 1 (MAX_ACQUIRED_BUFFERS), and so we will wait on the condition\nvariable. However, we\u0027ve only ever submitted one buffer, and so no callback\nwill ever come, and we deadlock. Instead the condition should be mNumAcquired+1\nmeaning that we have submitted two buffers and are waiting for a callback on\none of them (capturing the original intent of waiting for the callback).\n\nThe second relates to the handling of mNextTransaction in\ntransactionCallback. Imagine a scenario like this:\n1. Submit a buffer, mNumAcquired \u003d 1\n2. Submit a buffer, callback for the first doesn\u0027t arrive yet, mNumAcquired \u003d 2\n3. Submit a third buffer, mNumAcquired \u003e MAX_ACQUIRED + 1, so mAvailable \u003d 1\n   and we wait for the callback.\n4. Enable mNextTransaction\n5. The callback arrives, but because of the !mNextTransaction condition in\n   the callback function, we don\u0027t call processNextBuffer. We do however\n   release one:\n   mNumAcquired \u003d 1, mAvailable \u003d 1\n6. At this point we queue a new buffer (The one that was just released we\n   dequeue and queue again). But, mAvailable \u003d 1, and so we wait on\n   the condition variable. However the callback has already fired,\n   and so nothing will actually process the available buffer\n   and we wait forever.\n\nThe intent of this code was to avoid using the mNextTransaction when we\nare processing buffers from the callback function. We capture this intent\ndirectly by using a boolean set from onFrameAvailable before calling\nprocessNextBuffer()\n\nBug: 146598493\nBug: 149251083\nBug: 149315421\nTest: Flip the flag. Play.\nChange-Id: I652eacf1a016f8b65fd754e47d468227bf8ecf1d\n"
    },
    {
      "commit": "05667cc0c505c8b49ffdd65db9e9b1f8773abb35",
      "tree": "7eba04b5c3394189e0e11953d8da62cebb6da23b",
      "parents": [
        "855c171f5f20f5bfd9daa342f73471e163263a07",
        "65b8e8729104d4f7a379d72cdff06036b569dd9b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 16 01:19:27 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 16 01:19:27 2020 +0000"
      },
      "message": "Merge \"Move maxAcquired back to 1 and set maxDequeued\""
    },
    {
      "commit": "10d9ddf2e3da3ba3a425fb8396aaaec728e5fbdb",
      "tree": "f8a8c3162a464e73a99e9bafe737f1e6d0a726f1",
      "parents": [
        "51c6a7c8a423ca48d4287c715cd2beffa1c061ad"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Feb 13 09:34:33 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 14 23:55:01 2020 +0000"
      },
      "message": "libbinder_ndk: private SharedRefBase construction\n\nSharedRefBase, like sp, has a weakref within it. This allows us to\npromote to a strong ref when we only have a pointer to an object (for\ninstance when we\u0027re getting a binder from a binder transaction).\nHowever, it means that the objects have an implicit ownership model.\n\nSo, this code is problematic:\n\n     std::shared_ptr\u003cIFoo\u003e foo \u003d std::make_shared\u003cMyFoo\u003e();\n     ...\n     // what other code will do when getting the binder from another\n     // process, creating double ownership w/ shared_ptrs\n     std::shared_ptr\u003cIFoo\u003e foo \u003d foo-\u003eref();\n\nHere, we\u0027re hiding the use of the \u0027new\u0027 operator so that the initial\nmake_shared is impossible. If people always use \u0027SharedRefBase::make\u0027\nand \u0027SharedRefBase::ref\u0027 to get strong ownership of the object, then we\navoid this possibility.\n\nSince we hide the \u0027new\u0027 operator, all heap allocation will be blocked.\nSo other possibilities of double-ownership (e.g. using std::shared_ptr)\nwill also fail.\n\nOne problem with this approach is that it still allows these objects to\nbe declared on the stack. This is an opportunity for improvement.\n\nBug: 149249948\nTest: TH\n\nChange-Id: I300008f1413474c9e78dd57217f57338a3528db0\n"
    },
    {
      "commit": "d41a1be2d7a0a46be45c7f6338b739c49bef824e",
      "tree": "05d70920d1baba0d3b11d9ee75775c34fa85c49f",
      "parents": [
        "133083e57a0ea88e6eee4b1e68801bfb59dfaefa"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 14 15:18:11 2020 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 14 15:28:58 2020 -0800"
      },
      "message": "[ANativeWindow] Apply remaining API feedback\n\n* move ANativeWindow_getFrameId to a platform api, as\nnative_window_get_frame_timestamps is not stable and therefore the\nassociated api surface is not complete enough to be stable.\n* Adjust documentation for returned errors. In most cases errors aren\u0027t\nreturned in practice. In the case of ANativeWindow_setDequeueTimeout the\nerrors are enumerated explicitly.\n\nBug: 148962594\nTest: builds\nChange-Id: I1ff5113d91fdcfc4679b2862af72fbf811171253\n"
    },
    {
      "commit": "133083e57a0ea88e6eee4b1e68801bfb59dfaefa",
      "tree": "846103d93cfbd11e32770b87d77f101f56cfae01",
      "parents": [
        "35436d06ef3599eb1001a2b3d8e4f1f84cbf585a",
        "0ede0213baf29864101a82d1db53ebadcf8a16f8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 14 23:16:22 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 14 23:16:22 2020 +0000"
      },
      "message": "Merge \"Kawase blur feedback\""
    },
    {
      "commit": "35436d06ef3599eb1001a2b3d8e4f1f84cbf585a",
      "tree": "f0e9fac2015c0fd96f4b81c83cb02271ee8d8084",
      "parents": [
        "64b51f6e8e77743bd3416ad7098808d8991a9e0b",
        "55c85404f7155da7cea22b5394bad960493d4e10"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Feb 14 22:54:08 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 14 22:54:08 2020 +0000"
      },
      "message": "Merge \"SF: Populate DisplayConnectionType in DisplayInfo\""
    },
    {
      "commit": "79fb24b182522bce4decf4618a2f97b5d92b58ed",
      "tree": "03577ad83e42949351d98914e9e934975cbac7ba",
      "parents": [
        "27b827f6e3cd933e99c535d2d5803a72140b473e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 14 13:56:19 2020 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 14 14:19:48 2020 -0800"
      },
      "message": "Add AParcel_getAllowFds()\n\nCurrently platform-only until things stabilize\n\nBug: 145227478\nTest: builds\n\nChange-Id: I86ed825c33d1d8d63ee9450a0f6f9ea90d9772cf\n"
    },
    {
      "commit": "e049720e96cf477eb516f5197e490538bb8aaaf2",
      "tree": "bf779fcf3719d2a25c1a5f05fbf6cdcfb4fecede",
      "parents": [
        "753132194ff691e1533e354dddc2bc31d25e50a0",
        "288f52faec5f2b235fa2885c578921a7e5e4dedf"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 14 18:10:32 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 14 18:10:32 2020 +0000"
      },
      "message": "Merge \"libbinder_ndk: no heap alloc when writing fd\" am: 51c6a7c8a4 am: 288f52faec\n\nChange-Id: Ic92bb77c835008969ec2d5e852891aeb39fb6878\n"
    }
  ],
  "next": "288f52faec5f2b235fa2885c578921a7e5e4dedf"
}
