)]}'
{
  "log": [
    {
      "commit": "4a6a40b06cd0630fc6a3a84189d750c4b970179d",
      "tree": "624741d45a3dd6d227434949ce22e8afe6eb0658",
      "parents": [
        "09736053ba6cae3d1e45a1a2b9676a6d1629c66c",
        "a87b9287a4801ce39f30dbd84c3eac2f66c99992"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Dec 19 07:13:21 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 19 07:13:21 2015 +0000"
      },
      "message": "Merge \"common_time_server.cpp: more O_CLOEXEC\" am: 78d5f90d98\nam: a87b9287a4\n\n* commit \u0027a87b9287a4801ce39f30dbd84c3eac2f66c99992\u0027:\n  common_time_server.cpp: more O_CLOEXEC\n"
    },
    {
      "commit": "a87b9287a4801ce39f30dbd84c3eac2f66c99992",
      "tree": "79aff79194e4216e35ec2f3f5e2a21874f1e1a33",
      "parents": [
        "76656c6b48d3fa3e5538e864929ba63b692d5764",
        "78d5f90d98365987937b680862c4d88f3beaa4a3"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Dec 19 07:08:22 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 19 07:08:22 2015 +0000"
      },
      "message": "Merge \"common_time_server.cpp: more O_CLOEXEC\"\nam: 78d5f90d98\n\n* commit \u002778d5f90d98365987937b680862c4d88f3beaa4a3\u0027:\n  common_time_server.cpp: more O_CLOEXEC\n"
    },
    {
      "commit": "a0468e3361fd35f2d271db4c7e27ff79498ecc80",
      "tree": "984c70f5c6b99b0f7030ec72b7a46922486808d3",
      "parents": [
        "738a557d54153eedc74aee3dfb128f84e8ca13d4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Dec 18 20:47:02 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Dec 18 20:47:02 2015 -0800"
      },
      "message": "common_time_server.cpp: more O_CLOEXEC\n\nChange-Id: I2185a462d72e11f5a015c525d2d37c52ecc3e430\n"
    },
    {
      "commit": "56cd51a70411d60fac0b3987f5c5543e6a3ea8ef",
      "tree": "00d0bcda1d09fdbe4c6acf3a78d6c099fac7020e",
      "parents": [
        "ea5a94669c3f9757e2cb5f813a0c01e23ba1f20f",
        "347e5d498f4c216d588e98776a386d8bdf93d05c"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Dec 18 23:30:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 18 23:30:10 2015 +0000"
      },
      "message": "Merge \"Introduce pointer capture API.\""
    },
    {
      "commit": "347e5d498f4c216d588e98776a386d8bdf93d05c",
      "tree": "8f9b85983dcee4deeefc7fcbaa64124b6ea176f8",
      "parents": [
        "92e432c30e2304272c2f5b1b33366f32c3d763cf"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Thu Dec 03 01:13:31 2015 -0800"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Dec 18 10:22:43 2015 -0800"
      },
      "message": "Introduce pointer capture API.\n\nThis depends on I4189eb4d93f50c2865b7a325727be5ceebcc71f8 of\nframeworks/native.\n\nBug: 5452473\nChange-Id: Ie21e521f3e5c581f976dc0feb5d84bfa48b046cd\n"
    },
    {
      "commit": "33e9b426da2863cdd9e675cde018b450a66e9ab4",
      "tree": "6be75889e5dcf9d516072a7253ba84e13428b455",
      "parents": [
        "7164cb68dd6bf5efbbb9e3319fe985682685c2af",
        "93e53e09dde84a5a6d6931b81198d94e2ae1c6eb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 18 18:07:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 18 18:07:50 2015 +0000"
      },
      "message": "Merge \"Fix merged op clipping issue\""
    },
    {
      "commit": "93e53e09dde84a5a6d6931b81198d94e2ae1c6eb",
      "tree": "82e55d2de28d85ecce7444596ff982debb20244e",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 18:42:44 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 18 10:07:16 2015 -0800"
      },
      "message": "Fix merged op clipping issue\n\nChange-Id: I48cd5e92f3e62dcd189a4411a71aa7a40ce5498c\n"
    },
    {
      "commit": "a2a70723b8cbda4354d23f901f995623e819012c",
      "tree": "4c58b998473a64955a5177109b55ddda21d24ef8",
      "parents": [
        "2b17db773e12deffecbc26e9aa591fb4d2e9f917"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 12:58:24 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 23:31:44 2015 +0000"
      },
      "message": "Simplify ClipArea to prefer Rect args\n\nChange-Id: I8af83d01dc5dd8009a0cd235dd8b59dab61d8560\n"
    },
    {
      "commit": "15d556e5d3729a287718c7be5c36079a7f8633c6",
      "tree": "66b7b445c0955d6a95cd7c7385a7a09835a291af",
      "parents": [
        "3a0ea6254d9ff95d09ca4ab099ac513f6804ec77"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 15:57:21 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 17 13:24:08 2015 -0800"
      },
      "message": "Add temporary switch for new renderer in JNI\n\nbug:22480459\n\nChange-Id: I6cb19332cb09650f20b1cc2da3473a2618a50b1e\n"
    },
    {
      "commit": "e60a52a23686557174dc86b482a914dfd31addae",
      "tree": "33753c540af1e3d811995db2bce673135f338ce6",
      "parents": [
        "031eaedef8047c8054064ab12d05c3edca07a933"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 16:05:49 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 16:05:49 2015 -0800"
      },
      "message": "Fix build\n\nChange-Id: I1fc72636afc070257526ce1500e96e9b39089640\n"
    },
    {
      "commit": "031eaedef8047c8054064ab12d05c3edca07a933",
      "tree": "cbda2b6c1d2877e5eda3fc23f028f4859108d435",
      "parents": [
        "ca9c0d428aebd0506d7cd13e4a6d3c0e99f35233",
        "d2dfd8f128b632ed99418ab2b32949c939a9a369"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 23:48:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 16 23:48:27 2015 +0000"
      },
      "message": "Merge \"Add TextureView support to new renderer/reorderer\""
    },
    {
      "commit": "d2dfd8f128b632ed99418ab2b32949c939a9a369",
      "tree": "ef9446320399a05cf5bf2e1d7d4a6a177c261960",
      "parents": [
        "d7448e65e243754f31890baef29dff187dc2e5e5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 14:27:20 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 15:35:40 2015 -0800"
      },
      "message": "Add TextureView support to new renderer/reorderer\n\nbug:22480459\n\nChange-Id: I2e4c0bc6b904706132f3f5087ededc9cac9b40fb\n"
    },
    {
      "commit": "09d7a93bed24feaecec818c4fbf33c836209b8c3",
      "tree": "088077e11e17bb5d5ae186b2b40d3ca41227417c",
      "parents": [
        "60df01c5224a7be04e2e1f714746f9fbb107b280",
        "d7448e65e243754f31890baef29dff187dc2e5e5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 22:35:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 16 22:35:45 2015 +0000"
      },
      "message": "Merge \"Add TextOnPath support to new reorderer/renderer\""
    },
    {
      "commit": "bf4b31f7b23b0bc7a2ed4fc779aac37c9c486eb2",
      "tree": "664a22edd64a136d05eb9d14d87ebe05f274a107",
      "parents": [
        "636e71c326f4938b1edd26953151987f6f2e5ec2",
        "04ce46db647724b7c30c9a593bf717888d59081c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 11:07:53 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 11:07:53 2015 -0800"
      },
      "message": "resolve merge conflicts of 04ce46db64 to master.\n\nChange-Id: I935bb47718f0e7d5fb48945dd8de6e28dac136e5\n"
    },
    {
      "commit": "04ce46db647724b7c30c9a593bf717888d59081c",
      "tree": "995b3c9ee31b356eb51ef2c8a201f3827755f84e",
      "parents": [
        "079a9949765dad88c901f3c7ab0deaa3abba0925",
        "738a5d4f18e69c03700b77af0ea7e2a101da2c34"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 18:44:57 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 16 18:44:57 2015 +0000"
      },
      "message": "Merge \"libhwui: make setSurface asynchronous\"\nam: 738a5d4f18\n\n* commit \u0027738a5d4f18e69c03700b77af0ea7e2a101da2c34\u0027:\n  libhwui: make setSurface asynchronous\n"
    },
    {
      "commit": "24fa70c2acf12030682ced600d8d8250e7606e85",
      "tree": "1388b1a8f8356d800a5c9d13a4b44210cc95c184",
      "parents": [
        "47a9fb3b5d417be99c035b134d670d8ae0bdfe78",
        "d2db5c10a338fe5b339bd3d8e71818a43b105c72"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Dec 16 18:32:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 16 18:32:39 2015 +0000"
      },
      "message": "Merge \"Remove onDrawSprite API as it is no longer exposed via SkCanvas\""
    },
    {
      "commit": "738a5d4f18e69c03700b77af0ea7e2a101da2c34",
      "tree": "c27bb2db00e0f2d5556940c4578721e218d65a59",
      "parents": [
        "6fe06606c4df39487d240cc1fa4ac6d944b33137",
        "0bcd0cb6b1193168fa2840855195347488daab9e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 18:27:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 16 18:27:24 2015 +0000"
      },
      "message": "Merge \"libhwui: make setSurface asynchronous\""
    },
    {
      "commit": "d7448e65e243754f31890baef29dff187dc2e5e5",
      "tree": "49c1784cf2cccce9618ee0412ee311d0fdecce83",
      "parents": [
        "20754c5a112e418c11cc88176283db2c4bf2efd6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 10:34:36 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 10:27:17 2015 -0800"
      },
      "message": "Add TextOnPath support to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: I302048ec09901420c15003e21e44a551cc59c7ad\n"
    },
    {
      "commit": "adfeec94560c6661c5e6600b10c05f34a40f6454",
      "tree": "ff36367c650761dcf27fb4991851acfd9d6a4939",
      "parents": [
        "20754c5a112e418c11cc88176283db2c4bf2efd6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 19:17:32 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 10:20:41 2015 -0800"
      },
      "message": "Allow RT animation of new renderer\n\nChange-Id: I60136dc080dc4fd853ac8c3d37fefa85da1181df\n"
    },
    {
      "commit": "d2db5c10a338fe5b339bd3d8e71818a43b105c72",
      "tree": "7a347e3e91da612c81988c8eec1eb46b3ff94d8a",
      "parents": [
        "c514744d627d238ff2e754d9e5a0f27370788850"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Dec 16 11:46:50 2015 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Dec 16 16:58:32 2015 +0000"
      },
      "message": "Remove onDrawSprite API as it is no longer exposed via SkCanvas\n\nChange-Id: Id6f0bb7a9b4eaad0d0442d4ab4212f6a56070c66\n"
    },
    {
      "commit": "e29ce6f51d681af7649c0a7cddee97c471e43eb5",
      "tree": "0f6caa8d9d85d3c47cb16a00ae7e141e9ed06de5",
      "parents": [
        "f928d4aa45346b7e5fc640096c80d61d53fdd8ad"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 16:25:13 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 10:40:54 2015 -0800"
      },
      "message": "Add functor support to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: I95df7e0504f62d254e8ffbd8d65ed5d763080b9c\n"
    },
    {
      "commit": "4c1b495f4f9b05e34a2583eb4537cebdda981d4f",
      "tree": "e594a225ec13c592cbba923f31b9854548f61bbe",
      "parents": [
        "02ebfd060400e9701eff45a932336ef078399917",
        "5430ab220b231a96b71c3e030d0303d9ce008b05"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 17:32:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 17:32:59 2015 +0000"
      },
      "message": "Merge \"Avoid unneeded rect params\""
    },
    {
      "commit": "d4eaef7f4c5a5d281de4fff272cd33e892e26264",
      "tree": "7141708f5759a078b74932d487dc8fe83c29887f",
      "parents": [
        "40aa9f1b989a7896fb683a5a7dd664aa3174012d"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Oct 30 15:54:33 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Mon Dec 14 19:45:10 2015 -0800"
      },
      "message": "Make public pointer icon API with custom icons.\n\nBUG: 25778347, 23804184\nChange-Id: If138b97c750c912e9848412c27b65004899961eb\n"
    },
    {
      "commit": "f636e63c44fb9d9a299908f1d88da8e0a02d019c",
      "tree": "f33118eae30f87745d021dc2bff7e5fa12992f32",
      "parents": [
        "248808e3b22cf0f209529506325ffc1b247c63fc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 11 14:55:22 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 11 14:55:22 2015 -0800"
      },
      "message": "Fix memory leak\n\nChange-Id: I6e17b0957e6c470fe6a230e52e4d1b30c967214a\n"
    },
    {
      "commit": "89add11bb4c4a3cae38d84d1151e60617efb26a5",
      "tree": "f1a69a4a6045da8c224ecc5abec7d3c60a84caba",
      "parents": [
        "5f519e77a5f240fac2785e2d3f1c0637e499ac9e",
        "f1df0f59c174687b5f9a8ca0163fea3921915ae8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 11 14:47:40 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 11 14:47:40 2015 -0800"
      },
      "message": "resolve merge conflicts of f1df0f59c1 to master.\n\nChange-Id: Ia0ae0f753541f5203a4a3683721361c5e90ddae8\n"
    },
    {
      "commit": "f1df0f59c174687b5f9a8ca0163fea3921915ae8",
      "tree": "1c768671d8d57200aa85f0888c2474100d533727",
      "parents": [
        "e3ca5ac40d96c88818d2004a688c7d06877186b2",
        "85b010b826129cd1a2090daa533e843b5573aea4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 11 12:48:28 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 12:48:28 2015 -0800"
      },
      "message": "Merge \"Fix memory leak in HWUI\"\nam: 85b010b826\n\n* commit \u002785b010b826129cd1a2090daa533e843b5573aea4\u0027:\n  Fix memory leak in HWUI\n"
    },
    {
      "commit": "441cc421b51377ec27bf97ed690c63aa5509ae90",
      "tree": "b80564a9bd32e4f69cf854a28a2a709a0fb3f798",
      "parents": [
        "7e4d92fbc7761d561c1bc61dc5cf55b69d3a54f3"
      ],
      "author": {
        "name": "Sangkyu Lee",
        "email": "geteuid@gmail.com",
        "time": "Fri Dec 11 16:05:10 2015 +0900"
      },
      "committer": {
        "name": "Sangkyu Lee",
        "email": "geteuid@gmail.com",
        "time": "Fri Dec 11 16:05:10 2015 +0900"
      },
      "message": "Fix memory leak in HWUI\n\nstd::unique_ptr::release just releases the ownership of the\nmanaged object. To delete the object, std::unique_ptr::reset\nfunction should be called.\n\nChange-Id: If65f74085b1fc2be3a9fffc433326e0bcdb40ff3\n"
    },
    {
      "commit": "5430ab220b231a96b71c3e030d0303d9ce008b05",
      "tree": "ed407801b7c29cdd79587b349ed22889c71bc17c",
      "parents": [
        "c7964751d6745992065ec7c22d2a7feb51a0efe7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 16:28:16 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 16:29:01 2015 -0800"
      },
      "message": "Avoid unneeded rect params\n\nChange-Id: I2d8dcf6b09fdc554a403ac74763bf856b5f5d9fa\n"
    },
    {
      "commit": "58862c9f6f33a9aa3602ca4a7ce49ac2a1fdc7c6",
      "tree": "1aabec207c9e44dc7efc4b9510c26d870fd0242e",
      "parents": [
        "605b869a362e19cdbf5e689dc13144e95fb3676f"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Dec 10 16:46:57 2015 -0500"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Dec 10 22:19:17 2015 +0000"
      },
      "message": "Fix leak of file descriptors in test code\n\nskia_dm rendering through HWUI was hanging after roughly 300 tests.\nlogcat reports some process was unable to get any file descriptors.\n\nWhen we migrated TestWindowContext into HWUI and started using PIMPL\nI didn\u0027t clean up the implementation struct in the destructor. Doing\nso solved the hang for me.\n\nMy guess was that BufferQueue was being leaked, and that gralloc is\nbacked by file descriptors, but some research suggests that Android\nought to be able to handle far more than 1k fds (ulimit -Hn returns\n4096 on this device).\n\nR\u003ddjsollen@google.com\n\nChange-Id: I2cd9f8945cee9b22f838002e1ad687d5fe29cb97\n"
    },
    {
      "commit": "268a9c0f29c16a64d5819c7dbe8b0633baedab83",
      "tree": "1507677fa4bd363188c6829b9d6d8052678b2dfe",
      "parents": [
        "c7964751d6745992065ec7c22d2a7feb51a0efe7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 18:05:12 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 11:09:27 2015 -0800"
      },
      "message": "Add property animations to new reorderer/renderer\n\nbug:22480459\n\nChange-Id: Id8091038004245a56deb48bf3625edfd08ab8681\n"
    },
    {
      "commit": "0bcd0cb6b1193168fa2840855195347488daab9e",
      "tree": "6123412bc7a325a1021e37082b60c832a3bce700",
      "parents": [
        "cb299b858f4f073e2abd4ad45aa944dc0dfd0aa2"
      ],
      "author": {
        "name": "Thomas Buhot",
        "email": "thomas.buhot@intel.com",
        "time": "Fri Dec 04 12:18:03 2015 +0100"
      },
      "committer": {
        "name": "Zhiquan Liu",
        "email": "zhiquan.liu@intel.com",
        "time": "Thu Dec 10 14:51:58 2015 +0800"
      },
      "message": "libhwui: make setSurface asynchronous\n\nOn the critical path of the cold launch of applications\nthe main thread of the started application tells the RenderThread\nto create a surface. This process is synchronous and blocks\nthe main thread of the application until the creation\nof the EGLContext is complete.\nAs a consequence the launch time of the application is delayed\nby time spent allocating the EGL Context in the RenderThread.\n\nWith this optimization the launch time of any application\nis improved (for example settings by 20 to 40 ms).\n\nChange-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08\nSigned-off-by: Thomas Buhot \u003cthomas.buhot@intel.com\u003e\nSigned-off-by: Zhiquan Liu \u003czhiquan.liu@intel.com\u003e\n"
    },
    {
      "commit": "c7964751d6745992065ec7c22d2a7feb51a0efe7",
      "tree": "d05f9532652c5cea4b72625174dc16b4c3e787d6",
      "parents": [
        "7aa8aef5f6982805a455a9f057f693e7310d6db2",
        "f09ff5aa57bff01cb17595fb7ca8e48d238a6acd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 10 00:11:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 00:11:50 2015 +0000"
      },
      "message": "Merge \"Add bitmapmesh, rect, and patch rendering\""
    },
    {
      "commit": "f09ff5aa57bff01cb17595fb7ca8e48d238a6acd",
      "tree": "ea54bb5ef1da5a1e2522746689dfc45167a816bb",
      "parents": [
        "a6f28e352d48c285b78f35c8c70dcafb82325dbb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 08 17:21:58 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 16:06:09 2015 -0800"
      },
      "message": "Add bitmapmesh, rect, and patch rendering\n\nbug:22480459\n\nChange-Id: Id9e9146997dd018b3e4e785c2bc13689e3cf7c3c\n"
    },
    {
      "commit": "fbf184c472ce98d14861e1e87e7443bc2047ebfd",
      "tree": "1db2efd3491b892d7738e930fe2860cfd2d7026b",
      "parents": [
        "e5d5773f7113aed9a97be43ef04d50df892e2ac0",
        "a21c1da1561e0f1dc1ce4b3719f925abc25a74de"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Wed Dec 09 23:25:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 09 23:25:03 2015 +0000"
      },
      "message": "Merge \"make RingBuffer const viable\""
    },
    {
      "commit": "a21c1da1561e0f1dc1ce4b3719f925abc25a74de",
      "tree": "7cd8a484a6eca82d3619dfe270b4f0321201fea4",
      "parents": [
        "5f986095bed776c119d2f5452e0afeac3a437ea2"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Wed Dec 09 14:40:33 2015 -0800"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Wed Dec 09 14:44:01 2015 -0800"
      },
      "message": "make RingBuffer const viable\n\n- mark size() const\n- expose const operator[]\n\nChange-Id: Ie94ff798caed6b0d9a039e359610204e93c073ac\n"
    },
    {
      "commit": "c7fa84365698bca8467133c7f6a279c1d672fe4b",
      "tree": "b24513e9a8baffe5c0b6bff1b05fbd81ba3c8e37",
      "parents": [
        "a6f28e352d48c285b78f35c8c70dcafb82325dbb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 11:17:28 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 13:35:21 2015 -0800"
      },
      "message": "Add shape animation test case\n\nChange-Id: Ie4c99218c3ae7f08250e2a77f11263d9f68ec861\n"
    },
    {
      "commit": "386aa031793bb037ec43b6cdbd8908c343cc86cb",
      "tree": "7b1e48a1288255466d9115e137fae8346de47418",
      "parents": [
        "e0b2f2e270ae14b9deaaa31acd7ef535ff963e32"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 17:08:25 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 09 11:29:04 2015 -0800"
      },
      "message": "Add more shape drawing to new reorderer/renderer\n\nbug:22480459\n\nAdd support for outsetting final bounds based on stroke.\n\nChange-Id: I659318ccec51882bba1906ce3c7042288ce35c30\n"
    },
    {
      "commit": "27e58b4f54d693ff1db7ab2edb5d47ca296c1278",
      "tree": "c53dba1d814cba2ac29c4a1614381883cdaa35bd",
      "parents": [
        "1daf35db0fa05bf579e41aa62ee8a4478af182ff"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 10:01:38 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 16:41:35 2015 -0800"
      },
      "message": "Build hwui test scenes as common test code\n\nAnd start using them in other non-macrobench tests\n\nChange-Id: If155b531f3c89f97491001c06d1996df527b9f85\n"
    },
    {
      "commit": "c63107cbad88e5168502637715449ecde813fa31",
      "tree": "0fb56ff3be7e9228cb561039bd60074b21c74031",
      "parents": [
        "79aeb92f4de64dc658b3cbae6dcf40f19b1597f8",
        "15c3f19a445b8df575911a16e8a6dba755a084b5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 20:37:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 07 20:37:31 2015 +0000"
      },
      "message": "Merge \"Merged op dispatch in OpReorderer\""
    },
    {
      "commit": "15c3f19a445b8df575911a16e8a6dba755a084b5",
      "tree": "5e3a71be6407e696ce6256c3825eb94632fbc541",
      "parents": [
        "e920098f31860824ca714f10b2e72dbff5442184"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 03 12:16:56 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 07 12:34:46 2015 -0800"
      },
      "message": "Merged op dispatch in OpReorderer\n\nbug:22480459\n\nAlso switches std::functions to function pointers on OpReorderer, and\nswitches AssetAtlas\u0027 entry getter methods to using pixelRef pointers,\nso it\u0027s clear they\u0027re the keys.\n\nChange-Id: I3040ce5ff4e178a8364e0fd7ab0876ada7d4de05\n"
    },
    {
      "commit": "85cdc25fe577821735fd8f019ecb033b36768d4e",
      "tree": "b42f0f05913d3b3899ee9fb9705e0e0829722c72",
      "parents": [
        "9f93d375ce230603b03ed3fce1002f9648f4a667",
        "086847797142a25e9e21611e9864c53abfca174f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 04 18:30:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 04 18:30:28 2015 +0000"
      },
      "message": "Merge \"Correct shadowtext glyph count\""
    },
    {
      "commit": "086847797142a25e9e21611e9864c53abfca174f",
      "tree": "1b199b3405e97782426f7ad24de60ce7c433cfa1",
      "parents": [
        "e920098f31860824ca714f10b2e72dbff5442184"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 04 09:16:58 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 04 09:28:22 2015 -0800"
      },
      "message": "Correct shadowtext glyph count\n\nbug:25837773\n\nChange-Id: Id890624ddce3e5a331ecef207011709be0daf703\n"
    },
    {
      "commit": "e56a3449d8319e3a361991952625c73ff1dce468",
      "tree": "73609dea0f04135064f682f6346777b6ae51d07b",
      "parents": [
        "644c6f70a873fc9a345b2a2689fb3597b371f373",
        "19a560197950425f7e1856d5bd1216fbc680bf70"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Dec 04 01:53:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 04 01:53:16 2015 +0000"
      },
      "message": "Merge \"Introduce accessibility large pointer icons.\""
    },
    {
      "commit": "8160f20b0aca8c6595d4b385d673f59b6bcd16a4",
      "tree": "581bd7ae88d7ad352fc03e00d5175ccbfdd140bc",
      "parents": [
        "54fa17f667c285a5c9225e238c8132dfe830ef36"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 02 14:50:25 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 02 15:25:10 2015 -0800"
      },
      "message": "Reorganize hwui test directories\n\nNow test-only common files reside in tests/common, and each test\nexecutable type (macrobench, microbench, and unit) has a subdir there.\n\nThis change means the shared lib no longer has test code in it, and\nsets up a means for scenes to be shared between tests.\n\nChange-Id: I37b081f6977300e03fdd961b8e6439fde730605e\n"
    },
    {
      "commit": "54fa17f667c285a5c9225e238c8132dfe830ef36",
      "tree": "bdfcc47678c1874ba3da59d1f914a667c4c57153",
      "parents": [
        "9b9eca5cc597a4245bd814f81a993f39c1591c84"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 14:14:53 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 02 15:20:26 2015 -0800"
      },
      "message": "Add ListView rendering benchmark\n\nAlso fixes a bug in DrawRenderNodeOp recording, which was triggered by\nthe new test.\n\nChange-Id: I328f2ed908495eb95ca8ce87a365d02650e72cd5\n"
    },
    {
      "commit": "19a560197950425f7e1856d5bd1216fbc680bf70",
      "tree": "c5eed0b4dab09ad562f41a13d61743b4a7a7be18",
      "parents": [
        "28860b7570d2b3e7bc6a136a7bb7312e5aaf6e61"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Tue Nov 24 11:25:52 2015 -0800"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Mon Nov 30 14:42:53 2015 -0800"
      },
      "message": "Introduce accessibility large pointer icons.\n\nThis patch does the following things:\n- add new graphic assets of large icons for accessibility needs\n  (imported from ChromeOS data)\n- add the logic to choose the set of normal icons or accessibility icons\n- make InputManagerService to observe the settings change, so that\n  it can reload the new resources\n\nThis patch misses non-1x graphic though, because ChromeOS doesn\u0027t\nhave such data.\n\nBug: 25778857\nChange-Id: Ia5f95d47f50b3f6eea555c3af8069bc6bae0b400\n"
    },
    {
      "commit": "9b9eca5cc597a4245bd814f81a993f39c1591c84",
      "tree": "5d0e01bf8a39e5c1adc5a5e7773b355219e5db0b",
      "parents": [
        "befb4d7c18db8a3c5fb9b37c1a0010d4e0b6f8d1",
        "8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 22:14:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 25 22:14:42 2015 +0000"
      },
      "message": "Merge \"Support projection in OpReorderer\""
    },
    {
      "commit": "8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7",
      "tree": "7c514201847e983de760f491c60f1bbed0b07bf6",
      "parents": [
        "95cdbd6f6d0fd8f4ec9d68a3ed8845a1ac6aa541"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 24 16:40:09 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 14:09:24 2015 -0800"
      },
      "message": "Support projection in OpReorderer\n\nbug:22480459\n\nChange-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132\n"
    },
    {
      "commit": "f20528b404bc637582304367877802e98b33c4d0",
      "tree": "e613c6fbaad19d031241a6afe4088e11ce9450be",
      "parents": [
        "4148b1af0c69137604bd777dfce22226b02eb3e7",
        "9e7fcfda28fde747ba4e026772007cea77374e16"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 21:38:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 25 21:38:56 2015 +0000"
      },
      "message": "Merge \"Move BakedOpDispatcher to separate file\""
    },
    {
      "commit": "9e7fcfda28fde747ba4e026772007cea77374e16",
      "tree": "f31591483b83fab53c0e39e5d46e3b8c3084734b",
      "parents": [
        "95cdbd6f6d0fd8f4ec9d68a3ed8845a1ac6aa541"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 13:27:33 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 13:27:33 2015 -0800"
      },
      "message": "Move BakedOpDispatcher to separate file\n\nChange-Id: If7aad6db6b7e54a33eac9b9eddbe8cd844207282\n"
    },
    {
      "commit": "e60d5cc3be203c2578613353b6dccb05c7a7299f",
      "tree": "b2008ee21993d30fe7568533a46202b9bf1c9136",
      "parents": [
        "0466206a6a0d2f6fddf88b9da534a57ba9958ea8",
        "42a5407f2c6403ea7aa7a64eaf19948dc4050df5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 20:51:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 25 20:51:47 2015 +0000"
      },
      "message": "Merge \"Fix RecordingCanvas::refPaint, add tests\""
    },
    {
      "commit": "42a5407f2c6403ea7aa7a64eaf19948dc4050df5",
      "tree": "0f2465206da809b251dbe21b89354a96917eb816",
      "parents": [
        "95cdbd6f6d0fd8f4ec9d68a3ed8845a1ac6aa541"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 24 11:41:54 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 24 13:05:04 2015 -0800"
      },
      "message": "Fix RecordingCanvas::refPaint, add tests\n\nAlso add text align support to TestUtils::drawTextToCanvas\n\nChange-Id: I105adb0d15e697c03adfd00a56e8ec9265953ff1\n"
    },
    {
      "commit": "52b783f76af58a948dad4d3b4d1b7ad7979347ce",
      "tree": "037e37a8502b6ffef9929f7de1dbdbddaee62dbf",
      "parents": [
        "1a3c1650ccc0b15668f44b2911f5daf93573c0e0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 24 11:12:55 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 24 11:12:55 2015 -0800"
      },
      "message": "INT_MAX nanoseconds is not very long\n\nBug: 25843358\n\nIf the time between last swap \u0026 current vsync grew larger\nthan 2 seconds it would overflow when placed into an int, causing\nframes to be dropped as negative numbers are definitely\nless than 2_ms.\n\nChange-Id: Icd2136989e5bbf5a0e21611b95a4d515b5ff9b14\n"
    },
    {
      "commit": "a1717271caac5e8ea3808c331d4141ac01a42134",
      "tree": "3f49ac6c386aa4166f5a82ecec2fd87458c88e25",
      "parents": [
        "ee35d738f46f01ce71ac8bde665d71ac3a35cbb9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 19 13:02:43 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 20 11:03:18 2015 -0800"
      },
      "message": "Initial text support in new reorderer/renderer\n\nRemoves obsolete drawPosText codepath, and unifies text decoration behavior.\n\nChange-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c\n"
    },
    {
      "commit": "16c9d6a92e1b86d448c00c52a1630f3e71e6df76",
      "tree": "23b47f0019fb85bc13040ff421fb462f1ce5c88f",
      "parents": [
        "ce805b3288cd0eb9beda7550b567a106292421d8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 17 15:51:08 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 19 11:35:14 2015 -0800"
      },
      "message": "Refactor hwuitest\n\nYank animations out into their own files\n\nChange-Id: Iea522ee032752019c07ff308c3a3993011054308\n"
    },
    {
      "commit": "780e20a7dfc3701d9963666e594d69f436eb9a09",
      "tree": "8d6b48b9339c26787e7cef83d1dbadf095e6e356",
      "parents": [
        "b10a1d8a934365e2efd57069f6341bca450baba3",
        "f559bd1e679cc268bfa796b3c46acbd4783755a2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 18 22:50:54 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 18 22:50:54 2015 +0000"
      },
      "message": "Merge \"Fix layer create properties\""
    },
    {
      "commit": "b10a1d8a934365e2efd57069f6341bca450baba3",
      "tree": "55f016c53a578cf80371efd93250eeaa499d8043",
      "parents": [
        "4d859fdbd3cded63b9a5784ad0ef3beff0cf7bf6",
        "804618d0863a5d8ad1b08a846bd5319be864a1cb"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 18 22:44:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 18 22:44:44 2015 +0000"
      },
      "message": "Merge \"VectorDrawable native rendering - Step 2 of MANY\""
    },
    {
      "commit": "f559bd1e679cc268bfa796b3c46acbd4783755a2",
      "tree": "01dd7add0400603b0297835bc520dbbb47d95465",
      "parents": [
        "f91e74d9a945f59cdb714a80a2a87953d72dbd99"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 18 14:42:00 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 18 14:42:00 2015 -0800"
      },
      "message": "Fix layer create properties\n\nbug:25753159\n\nChange-Id: Ifa64dbfd8057ae5b390ba0c177627a5325cdd769\n"
    },
    {
      "commit": "804618d0863a5d8ad1b08a846bd5319be864a1cb",
      "tree": "3a5006a5d4319373d7b02796291a608e9320a7c3",
      "parents": [
        "0fe13b1f7001f5e2f23062a97140784258f3423e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Nov 16 22:48:34 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 18 13:38:23 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 2 of MANY\n\nIntroduced PathData in Java, which is effectively a thin layer around the\nnative instance. PathData holds the verbs and points which is being used\nin path morphing/interpolation. The verbs and points can be interpreted\ninto skia path commands, which is now done in native and therefore saves\na handful of JNI calls during path creation.\n\nRemoved the old PathDataNode mechanism and changed the PathEvaluator\nto use PathData instead.\n\nAlso added tests and a microbench. Also ran CTS tests for VectorDrawable\nand AnimatedVectorDrawable, and passed all of the existing tests.\n\nChange-Id: Ia166f5172ff031fe18b154327967f911a62caec1\n"
    },
    {
      "commit": "28d56151474bb97093a4bae482f7d8752030d8fa",
      "tree": "5c33b7a8111e9a4d8cacbd5dcce9af560ea8a8e3",
      "parents": [
        "c02f58f7186df82ef5ab8524420ff10ffb391aa1",
        "808196f139e93395f1f331f6c7e92ddd66c05979"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Wed Nov 18 01:46:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 18 01:46:58 2015 +0000"
      },
      "message": "Merge \"Introduce animated pointer icon for STYLE_WAIT.\""
    },
    {
      "commit": "808196f139e93395f1f331f6c7e92ddd66c05979",
      "tree": "d49536f01f2148eb381101f7883abaffedf9fff7",
      "parents": [
        "ff814adfdda376ceeeff5765cd50195b88e567ad"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Wed Oct 28 16:46:44 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Tue Nov 17 17:36:08 2015 -0800"
      },
      "message": "Introduce animated pointer icon for STYLE_WAIT.\n\nChange-Id: I893f8276e09351db6187c553f349008794b95690\n"
    },
    {
      "commit": "8ecf41c61a5185207a21d64681e8ebc2502b7b2a",
      "tree": "94592cbff1b686302433a68a74b01bdb3b44d487",
      "parents": [
        "b20dbf6c6a19d6f6f69791eba7492c4480e8f113"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 10:27:59 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 17 14:50:49 2015 -0800"
      },
      "message": "Add temporary layer alpha fallback to OpReorderer\n\nAlso adds logic to clip temporary layers to viewport both for\nefficiency and to allow large ones (such as the fallback case) to fit\nin max texture size.\n\nChange-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74\n"
    },
    {
      "commit": "b20dbf6c6a19d6f6f69791eba7492c4480e8f113",
      "tree": "f7b41b5e63ec52b19f7aefc5967f190ac6f73b62",
      "parents": [
        "1ca1860f973de351b2f0f6e6e924daf791a1e1a3",
        "98787e6c9b2c10b1ab7820bdac168686025b924a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 23:08:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 16 23:08:48 2015 +0000"
      },
      "message": "Merge \"Finish shadow support in new reorderer/renderer\""
    },
    {
      "commit": "98787e6c9b2c10b1ab7820bdac168686025b924a",
      "tree": "4bc65070a5f3c460c3b2a6c358d990b300010457",
      "parents": [
        "9fded232a9548a304e0145011df8849fba0dcda7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 13 10:55:30 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 11:21:18 2015 -0800"
      },
      "message": "Finish shadow support in new reorderer/renderer\n\nNow passes alphas and light radius, and correctly transforms light\ncenter for layers.\n\nAlso fixes begin-frame/layer clears to be damage rect aware.\n\nChange-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542\n"
    },
    {
      "commit": "1540153198fc59e5f344b363c198acf5b65251aa",
      "tree": "82bdf9179d7a5d30c4568ad710fd6a28bfa33d5f",
      "parents": [
        "e490a14629561e3d61f679bbaaad6ba4723a1c15"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 16 10:40:31 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 16 10:42:36 2015 -0800"
      },
      "message": "Extensions must load in ctor\n\nBecause Caches is terrible\n\nChange-Id: I91e2442d97664759ee2c7602eb7172f009b20d53\n"
    },
    {
      "commit": "676a67bd4ebadb8ee79e0b94519ddd5ee8ccb6dc",
      "tree": "f47666565d20bdc218c9c3a7372f5f048c7311cb",
      "parents": [
        "1163d085c6f4a04e296767310dc66adfb739e18a",
        "be4d8ddf1d5ff274ad9d814dbe7bbfdc7bc8486a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Nov 14 07:14:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 14 07:14:45 2015 +0000"
      },
      "message": "Merge \"Fix bug where mExtensions was not initialized.\""
    },
    {
      "commit": "be4d8ddf1d5ff274ad9d814dbe7bbfdc7bc8486a",
      "tree": "54f758e6d6f0f5075aec461003b71e0a3c688b67",
      "parents": [
        "8b8be50c640a13b98d364b3f36962d9cf185d6d9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 13 18:15:26 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 13 20:10:17 2015 -0800"
      },
      "message": "Fix bug where mExtensions was not initialized.\n\nRecent changes to mExtensions moved the initialization code from the\nconstructor to a separate function called load. Make sure to call\nthis function in the initExtensions function call.\n\nBug: 25615666\n\nChange-Id: Ic016232c42afefd3b5bc3e4bd5c8428a11c454ad\n"
    },
    {
      "commit": "4bc507851c42d33b8bbfc2d6ab603b79533a53da",
      "tree": "af170ee54c7f9ce83f14378b1fa76b1ec17d7cf3",
      "parents": [
        "0430f187af65a59b86e726c9339adc03b1d9b7b6",
        "1e67f08963cc245660049b6a588483a148955e08"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sat Nov 14 00:00:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 14 00:00:05 2015 +0000"
      },
      "message": "Merge \"Add error check for float parsing and fix tests\""
    },
    {
      "commit": "1e67f08963cc245660049b6a588483a148955e08",
      "tree": "96757b4b8fe766323e03dbe82ae9584ef1201716",
      "parents": [
        "8b8be50c640a13b98d364b3f36962d9cf185d6d9"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Nov 12 15:57:45 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Nov 13 15:58:49 2015 -0800"
      },
      "message": "Add error check for float parsing and fix tests\n\nChange-Id: Ia4f4863d415536b3796edbcdb83c951b6cff02cf\n"
    },
    {
      "commit": "9fded232a9548a304e0145011df8849fba0dcda7",
      "tree": "ffe48b03342817dd2681825498ecdf3799e01a0d",
      "parents": [
        "8b8be50c640a13b98d364b3f36962d9cf185d6d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 11 16:42:34 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 12 13:05:35 2015 -0800"
      },
      "message": "Recycle OffscreenBuffers\n\nChange-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd\n"
    },
    {
      "commit": "ec99ff6cd7ca2f19ec5bf36c79e0b78d05bbf371",
      "tree": "23094066debeba0127e9f5e7c54e3b49e64621bb",
      "parents": [
        "ae2e98310ca32c2c9fb669f80244928caff2c36a",
        "b89610c0c913fad90808651a55627f428c5ad98f"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Nov 12 18:40:54 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 18:40:54 2015 +0000"
      },
      "message": "Merge \"Use array instead of vector for test data set\""
    },
    {
      "commit": "b89610c0c913fad90808651a55627f428c5ad98f",
      "tree": "f8af5c56b5d658fff93349a30c8d6eda48aaa8d9",
      "parents": [
        "cdd23f9d45ea2974c3f295754b89f5462bdd2c0d"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Nov 12 10:36:28 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Nov 12 10:36:28 2015 -0800"
      },
      "message": "Use array instead of vector for test data set\n\nChange-Id: I1d3e94c52b8bf0842c21132507b5f55a136a255b\n"
    },
    {
      "commit": "ae2e98310ca32c2c9fb669f80244928caff2c36a",
      "tree": "c52edc2085c072eb6ac3d4f64b25321b363bdff0",
      "parents": [
        "b74b802e0053be9cef3b155588ccaa328f4255a2",
        "d3daa3198e2212c985c634821682d5819346b653"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 12 18:29:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 18:29:24 2015 +0000"
      },
      "message": "Merge \"Add shadow support to new reorderer/renderer\""
    },
    {
      "commit": "be2187a175b8d9bee2146b94748a8d8e12b72a3d",
      "tree": "f272b099e8d9c80f4c82c8f37ac8355542da5ba5",
      "parents": [
        "ca596c6e07a0105303dce9ec2a5664f27c29bd44",
        "cdd23f9d45ea2974c3f295754b89f5462bdd2c0d"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Nov 12 01:56:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 01:56:06 2015 +0000"
      },
      "message": "Merge \"Add hooks in JNI to start using native path parsing\""
    },
    {
      "commit": "cdd23f9d45ea2974c3f295754b89f5462bdd2c0d",
      "tree": "968297adf4c5e87183f29c15e5dabf7624230704",
      "parents": [
        "3cc97f524af679d93c2d4a9e93720c09e1ec924c"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 11 14:31:13 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 11 17:54:52 2015 -0800"
      },
      "message": "Add hooks in JNI to start using native path parsing\n\nChange-Id: Iaa0d3c2c1936c248146ed7f186a13e8e79be818e\n"
    },
    {
      "commit": "d3daa3198e2212c985c634821682d5819346b653",
      "tree": "2c00e31c98ccfac6dc9ce38e65b95324e44d41b3",
      "parents": [
        "6d9df3974b93b962376ca996e1bfd109286a3f90"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 06 10:59:56 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 11 13:32:37 2015 -0800"
      },
      "message": "Add shadow support to new reorderer/renderer\n\nDoesn\u0027t yet use correct lighting info (esp. in layers), or\ntessellate shadows asynchronously\n\nChange-Id: I9ccec24b28869be42138a9bb234b1af874291a44\n"
    },
    {
      "commit": "7d9eb2aeb07957eaf407003c2235ee3ea881d8c1",
      "tree": "a88dd46eebe7fd7d0c42505b981454f6d45410d5",
      "parents": [
        "3cc97f524af679d93c2d4a9e93720c09e1ec924c",
        "5bb2fdb425dab346fb83c7f2bf9afa03bdf79fd6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 11 18:17:25 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 11 18:17:25 2015 +0000"
      },
      "message": "Merge \"Fix memory corruption in SpotShadow\" am: 8c85c00b5e am: 8c8353a8c3\nam: 5bb2fdb425\n\n* commit \u00275bb2fdb425dab346fb83c7f2bf9afa03bdf79fd6\u0027:\n  Fix memory corruption in SpotShadow\n"
    },
    {
      "commit": "5bb2fdb425dab346fb83c7f2bf9afa03bdf79fd6",
      "tree": "f96d790c35666b74fd44fedff5336462edd80bff",
      "parents": [
        "3c8f7b53dae22d5ad8d28a48259eca9f83c66226",
        "8c8353a8c3152bc3ee4b74815d64c65c2c9d1991"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 11 18:08:15 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 11 18:08:15 2015 +0000"
      },
      "message": "Merge \"Fix memory corruption in SpotShadow\" am: 8c85c00b5e\nam: 8c8353a8c3\n\n* commit \u00278c8353a8c3152bc3ee4b74815d64c65c2c9d1991\u0027:\n  Fix memory corruption in SpotShadow\n"
    },
    {
      "commit": "a1f563134065abb360096cc06f6bfe4a8cca7a48",
      "tree": "1c446d5cb08cb43867d5ec2ea777d14883982555",
      "parents": [
        "37bf3ec9d2fb3dfdccfe043e51723e4e543f0703"
      ],
      "author": {
        "name": "Keith Mok",
        "email": "ek9852@gmail.com",
        "time": "Tue Nov 10 16:52:05 2015 -0800"
      },
      "committer": {
        "name": "Keith Mok",
        "email": "ek9852@gmail.com",
        "time": "Wed Nov 11 08:49:20 2015 -0800"
      },
      "message": "Fix memory corruption in SpotShadow\n\nThe array list is too small and causing stack corruption\n\nChange-Id: I0e34dad39357fb63977d2ce6f183ced7b6a632be\n"
    },
    {
      "commit": "e49954a7f75962e262fca0f9d774456eca9d0af1",
      "tree": "827c5443c37035a27990ed52663c4f0762d8170d",
      "parents": [
        "bec5a907dd508f30c9c063655767e1522fa5c1fc",
        "f59cb788ba6d06d13b440b2b7d3f9d4480052c2f"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 11 00:44:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 11 00:44:57 2015 +0000"
      },
      "message": "Merge \"Add microbench for PathParser\""
    },
    {
      "commit": "f59cb788ba6d06d13b440b2b7d3f9d4480052c2f",
      "tree": "ca2fd959be1f086f425f7ff225bc1c9e114e5281",
      "parents": [
        "30bcf69df9cfae40b621335958656cb0e4afd7d5"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Nov 10 10:36:17 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Nov 10 16:43:16 2015 -0800"
      },
      "message": "Add microbench for PathParser\n\nChange-Id: I95d6c3153480e3ea56032ffe73707110186fbb0f\n"
    },
    {
      "commit": "bec5a907dd508f30c9c063655767e1522fa5c1fc",
      "tree": "b9249dba8fa0f1004d69fe5278a6deed36b83b71",
      "parents": [
        "bcc0471e2b6a450eff4b571f91871df7de61005d",
        "30bcf69df9cfae40b621335958656cb0e4afd7d5"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 11 00:36:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 11 00:36:27 2015 +0000"
      },
      "message": "Merge \"VectorDrawable native rendering - Step 1 of MANY\""
    },
    {
      "commit": "30bcf69df9cfae40b621335958656cb0e4afd7d5",
      "tree": "d4cc05d731a54d19775a0fd5245d0764a5156bcf",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Nov 04 14:56:24 2015 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Nov 10 15:46:06 2015 -0800"
      },
      "message": "VectorDrawable native rendering - Step 1 of MANY\n\nImplement path parsing from string to skia path in native. The parsing\ncontains two main stages:\n1) Parse string into a list of nodes that contains one operation (such\n   as move) and a vector of floats as params for that operation.\n2) Interpret the operations defined in the nodes into SkPath operations,\n   and create a skia path\n\nAlso provided unit test for parsing a string path into a list of nodes,\nand then to a skia path.\n\nChange-Id: I0ce13df5e3bb90987dcdc80fe8b039af175ad2e2\n"
    },
    {
      "commit": "9557dcd53b5e2926f6d500e4e91c6b4f4abacdf3",
      "tree": "86c2fa1df8cfe9de52572d5aadcd421f713e8b88",
      "parents": [
        "246b5a0993978202b19a7c02d355fddfd9506798",
        "1b85ce17a316973a170b3932f2d0a9b02063eaa3"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 23:36:27 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 10 23:36:27 2015 +0000"
      },
      "message": "Merge \"Fix HWUI Path Cache dangling pointer\" am: 37bf3ec9d2 am: 7516d4d866\nam: 1b85ce17a3\n\n* commit \u00271b85ce17a316973a170b3932f2d0a9b02063eaa3\u0027:\n  Fix HWUI Path Cache dangling pointer\n"
    },
    {
      "commit": "1b85ce17a316973a170b3932f2d0a9b02063eaa3",
      "tree": "7491f4e974e7acb57205781b31d29e045fdc4d19",
      "parents": [
        "16009a6deaff272c94046facbeb567bafdaacc69",
        "7516d4d8667957688433b02b2f4985f1b3ab36ad"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 23:31:11 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 10 23:31:11 2015 +0000"
      },
      "message": "Merge \"Fix HWUI Path Cache dangling pointer\" am: 37bf3ec9d2\nam: 7516d4d866\n\n* commit \u00277516d4d8667957688433b02b2f4985f1b3ab36ad\u0027:\n  Fix HWUI Path Cache dangling pointer\n"
    },
    {
      "commit": "37bf3ec9d2fb3dfdccfe043e51723e4e543f0703",
      "tree": "bf733341a7a586f01bb1e9c91c2327813b61b935",
      "parents": [
        "8d8515e708f0cebf69587750bbb3abcb315cc61e",
        "2e4f67c388aff0def50dd619388624f1dbe359ad"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 23:20:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 23:20:03 2015 +0000"
      },
      "message": "Merge \"Fix HWUI Path Cache dangling pointer\""
    },
    {
      "commit": "e2703bee8aebf032d64bf7625fdadb59c618a2a6",
      "tree": "12c6f2b31d9bb25a4ccdc1e8670ef58dac98f637",
      "parents": [
        "807ea28eefa49ccb82b154fa0fb7b6e22aa65ab0",
        "cba287b9716155183faf21865a6c28ba49ffe486"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 21:41:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 10 21:41:49 2015 +0000"
      },
      "message": "Merge \"Fix threading issues\""
    },
    {
      "commit": "cba287b9716155183faf21865a6c28ba49ffe486",
      "tree": "90e2be92f6fe3298f3cb289e5cbc1cb3afcb61d7",
      "parents": [
        "8382f98f6246c514106ca2bd88ab9f3c8d2ff5c8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 12:52:44 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 13:41:32 2015 -0800"
      },
      "message": "Fix threading issues\n\nBug: 25584167\nChange-Id: I413ef9e0c86f7cca1f7d085e0071745ca0192853\n"
    },
    {
      "commit": "dd763feeb245bde76fe79d119795a08a4753f1c9",
      "tree": "448a14ac5bd94ce45889bffecae0e4821c8e953e",
      "parents": [
        "142af42fd683445b23c7d4e3878cd8b1c9d2e693",
        "5e27140f48a1ec0ae3890dca84bfa91bd32ecb3b"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Tue Nov 10 16:59:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 10 16:59:48 2015 +0000"
      },
      "message": "Merge \"Fix persistent Canvas clip handling\""
    },
    {
      "commit": "2e4f67c388aff0def50dd619388624f1dbe359ad",
      "tree": "5a99d7887fb1583bf73be3215d3b1c17b1b8a343",
      "parents": [
        "a61515720ab95f6aa307c1fa4337c5c2078bad26"
      ],
      "author": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Wed Nov 04 11:00:28 2015 +0530"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Mon Nov 09 14:22:25 2015 +0530"
      },
      "message": "Fix HWUI Path Cache dangling pointer\n\nWhen precache, PathTexture is added to PathCache, and it is released after drawn if we want to clean it.\nBut the PathCache LRU still holds the entry of the PathTexture object. When trim the cache in\nthe end of each frame, LRU finds that its mListener is not NULL and invoke the functor, however,\nmListerer points to the released PathTexture object and is a dangling pointer, thus leads to crash.\nSmart pointer don\u0027t help here since they only manage scopes, while PathTexture is also controled by\nits cleanup field.\nThe fix is to also remove the LRU entry of PathTexture*, it will also release the texture object\nand there won\u0027t be texture leaks.\n\nChange-Id: Iaa0621df5dc71532e9e75b38ad94384353930b95\n"
    },
    {
      "commit": "788f7433bd72fc59008c165e94503b78ffb13b2a",
      "tree": "553a6da8bfdfd3a99b60d455efcbd40c90a68dac",
      "parents": [
        "13d30660ef6da2d924e4fc943ccd187767ee0cd2",
        "1375e5f180c1e42c9f4d8c51531935b0449b8ed3"
      ],
      "author": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Fri Nov 06 23:49:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 23:49:40 2015 +0000"
      },
      "message": "Merge \"Add test to cover loading shared-lib with appAsLib as true. This patch made AppAsLib_test use its own resource\""
    },
    {
      "commit": "1375e5f180c1e42c9f4d8c51531935b0449b8ed3",
      "tree": "2c65d58a6837fc3f8d3769124c5c0ae4f472ed10",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Fri Nov 06 14:00:17 2015 -0800"
      },
      "committer": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Fri Nov 06 14:33:49 2015 -0800"
      },
      "message": "Add test to cover loading shared-lib with appAsLib as true.\nThis patch made AppAsLib_test use its own resource\n\nBug 22487604\n\nChange-Id: Iac4cc949f1b25c326a287a49e0b031bf6831e9e9\n"
    },
    {
      "commit": "5e27140f48a1ec0ae3890dca84bfa91bd32ecb3b",
      "tree": "0d361c53b4f4e8ff0fb9b49de20c3c39d38eff8a",
      "parents": [
        "6d2beef6a819aebed4119ca06cb2369bc56dd214"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Wed Nov 04 14:36:02 2015 -0500"
      },
      "committer": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Fri Nov 06 18:40:25 2015 +0000"
      },
      "message": "Fix persistent Canvas clip handling\n\nPartial Canvas save semantics (clip or matrix persisting after restore)\nare currently emulated in the native canvas wrapper (SkiaCanvas.cpp).\n\nPersistent clips (save w/ MATRIX_SAVE_FLAG only) in particular are\nemulated using the SkCanvas clip stack.  There are two problems with\nthe current implementation:\n\n1) The canvas save count is used to identify the clip stack topmost\nframe, on the assumption that it is the same as the actual clip stack\nsave count.  But with the introduction of lazy SkCanvas saves in Skia,\nthe two values can diverge: the clip stack save count only reflects\n*committed* saves, while the canvas save count includes both committed\nand pending saves.  This means that we can no longer compare canvas and\nclip stack save counts directly.\n\nWhile we\u0027re looking at addressing the save count discrepancy in Skia\nproper, we can also refactor the partial save emulation to no longer\nrely on the two values being synchronized: instead of using the canvas\nsave count to locate the top clip stack frame, simply use the clip\nstack save count for the same purpose - getClipStack()-\u003egetSaveCount()\nalways points to the correct top clip stack frame.\n\nWith this patch:\n\n  * we use SkCanvas::getSaveCount() to track *canvas* save frames which\n      require persistent matrix/clip handling (mSaveRecStack)\n  * we use SkClipStack::getSaveCount() to extract the clips from the\n    top clip stack frame\n\nAlso, since we\u0027re no longer mixing/comparing the two save counts, we\ndon\u0027t have to decrement the canvas value anymore (to make it zero-based\nlike its clip stack counterpart).\n\n2) When iterating over clip stack elements, we currently start at\nkTopIterStart and advance using next().  This is incorrect as next()\nmoves up the stack, so we only iterate over the topmost element \u003d\u003e\nif there are multiple (non-consolidated) clip elements in the top\nframe, we only get to see one.\n\nWe need to iterate using prev() instead.\n\nChange-Id: Ic2d8cad684018925e749b9172fbf7c6202d9fb62\n"
    },
    {
      "commit": "83ea5b7b22e26302eb943ffe7d143a2d242b6eb1",
      "tree": "ebd48014ef80b05d52b71d40940ad85b816447c1",
      "parents": [
        "22b7e496c23c76b1f6d94e3ce99f39f9d3bca973"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed Nov 04 16:57:53 2015 -0800"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Nov 05 15:48:35 2015 -0800"
      },
      "message": "When the incoming light source is invalid, don\u0027t generate any shadow\n\nb/25417885\n\nChange-Id: I4b87e35ca68091fd0409cb9fe9b9400af860a507\n"
    },
    {
      "commit": "161f54b2d4160b8d3f3da9eba5746da5162e4821",
      "tree": "392dc082f84e8d20ed831c15893053fc7a44d9a4",
      "parents": [
        "679f9863f9390083f91b5e6f8048cbfd7922766e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 11:08:52 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 15:45:59 2015 -0800"
      },
      "message": "Add z-reordering support to OpReorderer\n\nChange-Id: I3fa969fe53cf648d145810f69fa7dada376c0b9a\n"
    },
    {
      "commit": "679f9863f9390083f91b5e6f8048cbfd7922766e",
      "tree": "59058a3c428be7b95af3ec07745096b74529ace5",
      "parents": [
        "7058e4ca585a06462a495d021d61e1fd27f85cd2",
        "76caecf421b42e9b8294a65f62ff2d90b55a337b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 23:32:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 05 23:32:30 2015 +0000"
      },
      "message": "Merge \"Add more RenderNode property support in OpReorderer path\""
    },
    {
      "commit": "76caecf421b42e9b8294a65f62ff2d90b55a337b",
      "tree": "74ff2357d77c6b831aa3723d9f38416b3cef0d67",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 19:17:45 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 15:25:12 2015 -0800"
      },
      "message": "Add more RenderNode property support in OpReorderer path\n\nChange-Id: I0163fe91d8145e33019739c191bbab0432a5f9aa\n"
    },
    {
      "commit": "290b23a1e11d532b39098bb58693ef97ba98a622",
      "tree": "45a80e36c460d98c7df89a8e6a8e871ed4ea22ee",
      "parents": [
        "374745095659d378164bfee4c7f5c9299c47a814"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 05 14:10:47 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 05 22:15:18 2015 +0000"
      },
      "message": "Fix build\n\nstd::abs requires \u003ccstdlib\u003e\n\nChange-Id: I0722340d17aed88c4c8dabcb723d432b05cebedb"
    },
    {
      "commit": "7fa281c80fb3ccca6070291907ba536bca3ccca9",
      "tree": "bba583c0ab6a27f2114d65911683c589d6b2a32f",
      "parents": [
        "754ea71379f81807bbc85503f9e8dd1ae087a2d0",
        "dfaf23f84669b2f45da892f49b2d8c07f161f7a2"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Nov 05 21:18:00 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 05 21:18:00 2015 +0000"
      },
      "message": "Merge \"When the incoming light source is invalid, don\\\u0027t generate any shadow\" into mnc-dr-dev am: 76d20b4a5c am: 1c7fbe0efb am: d829ab7683\nam: dfaf23f846\n\n* commit \u0027dfaf23f84669b2f45da892f49b2d8c07f161f7a2\u0027:\n  When the incoming light source is invalid, don\u0027t generate any shadow\n"
    },
    {
      "commit": "1c3dd0519a90c12589e32aaa6b31fbcc28e87b64",
      "tree": "cb69c985234cc4752b4b6ddf89fe73e404b3d35c",
      "parents": [
        "8bad93836922805a93c2385fa79e22de8288f9ab",
        "c06ccd77c129cdf198c64babdfd8d289aa8ff908"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 20:37:23 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 05 20:37:23 2015 +0000"
      },
      "message": "Merge \"Revert \"Remove -ffast-math from libhwui makefile\"\" into mnc-dr-dev am: 0cf48e9120 am: 17fc83cbde\nam: c06ccd77c1\n\n* commit \u0027c06ccd77c129cdf198c64babdfd8d289aa8ff908\u0027:\n  Revert \"Remove -ffast-math from libhwui makefile\"\n"
    }
  ],
  "next": "dfaf23f84669b2f45da892f49b2d8c07f161f7a2"
}
