)]}'
{
  "log": [
    {
      "commit": "031e69ff81b696c36284a29e1ea995c5329e291e",
      "tree": "0f1f2bac402a05df3cfe3a3a6414273e282429da",
      "parents": [
        "8310f87d96791e8b864df5e821fe65273c2dd874"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 30 09:12:39 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 30 09:12:44 2015 -0700"
      },
      "message": "Fix rendernode flag logging\n\nChange-Id: I978c54ab26ef6dc3f6caef8604ac77a883b8e913\n"
    },
    {
      "commit": "e74ff81e0575bbe4361960739131a0256167f7c8",
      "tree": "0facfbc81d6e724db812988fa38001fa70f0b0a7",
      "parents": [
        "94d07cb7efbdd50b72d7f17e7c9596b789ebad4c",
        "8df5ffa9ae0667d9e0241adf4675753156fcef84"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 29 22:16:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 22:16:11 2015 +0000"
      },
      "message": "Merge \"Remove concept of layer alpha override\" into mnc-dev"
    },
    {
      "commit": "81bd735a010771ab502dabe7ef4d20ea520cf6ac",
      "tree": "3f18d30edaa8cfcbd0434ce69814d1debeca43f5",
      "parents": [
        "b2cec86a44f3fe937079b26827bdc031f5aec731",
        "e145013153b562d0b1bcac3e88095411874f1c25"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 29 20:17:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 20:17:43 2015 +0000"
      },
      "message": "Merge \"Require minimum 4 bit stencil for layers.\" into mnc-dev"
    },
    {
      "commit": "b2cec86a44f3fe937079b26827bdc031f5aec731",
      "tree": "47f60cfe1d3eda88a42e58f843a082cacd00863b",
      "parents": [
        "05a56db39d26e1e6ee160e82b79df39c15d1804c",
        "240ff6246a29602539fd0295274e1c769e743a2e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 29 20:10:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 20:10:26 2015 +0000"
      },
      "message": "Merge \"Skip frames with no damage\" into mnc-dev"
    },
    {
      "commit": "e145013153b562d0b1bcac3e88095411874f1c25",
      "tree": "54b8dc8d821a3af042dda0cc2a26c20c44795873",
      "parents": [
        "340b198ccbd1a05e67d586c345139617d4b84ce0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 17:55:50 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 29 13:04:02 2015 -0700"
      },
      "message": "Require minimum 4 bit stencil for layers.\n\nbug:19270131\nChange-Id: I81367179d268e7c1642259c456c1f3d0018f6c0d\n"
    },
    {
      "commit": "8df5ffa9ae0667d9e0241adf4675753156fcef84",
      "tree": "5b59aa1d6cd6733a28bd316afff67091d9856db7",
      "parents": [
        "340b198ccbd1a05e67d586c345139617d4b84ce0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 17:47:20 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 17:47:20 2015 -0700"
      },
      "message": "Remove concept of layer alpha override\n\nbug:19412691\nChange-Id: I9e150fe4a1b2c0cf140519a33c02fd4771ef1c50\n"
    },
    {
      "commit": "240ff6246a29602539fd0295274e1c769e743a2e",
      "tree": "d40e9aaf5e0871ba6270b31ccfbae9468a09a1ab",
      "parents": [
        "ba474807b3e46c1e6127d461214deafc22f53766"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 28 13:50:00 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 28 13:50:00 2015 -0700"
      },
      "message": "Skip frames with no damage\n\nBug: 20464038\nChange-Id: Iae3aa9baf1d03c3aa443a39373e2bbd4a3910fad\n"
    },
    {
      "commit": "956f340aacc7d8fc2d10f776551f13fde2d8d3ab",
      "tree": "41a92300458259a67f1e71765357e7fc341a87c0",
      "parents": [
        "340b198ccbd1a05e67d586c345139617d4b84ce0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 27 16:41:00 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 09:40:01 2015 -0700"
      },
      "message": "Remove unused flags and dirty rects\n\nbug:17209071\n\nAlso update DisplayList-\u003eRenderNode naming in Editor\n\nChange-Id: I1d505640ba7388a0b0042d9c787f859e45a24da5\n"
    },
    {
      "commit": "856f0cc3e382206e67c1a62fe878627d7dd9ada5",
      "tree": "6836c06a66d3dc21d5ccfc6d819d6e5e0e5d8da0",
      "parents": [
        "580c30a63353f67433da25ef7b90913300e0372f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 21 15:13:29 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 27 18:12:07 2015 +0000"
      },
      "message": "Promote RenderProperties with an alpha to have a RenderLayer\n\nbug:20254728\nChange-Id: I0bd1d440fe46683b291d4c8ab07a630c34b2eadc\n"
    },
    {
      "commit": "2eb10c0075e5e23dc6868d83569a492724af3115",
      "tree": "c46f5ed5125de2e10d96efb92f2ff1fa6c85cda4",
      "parents": [
        "0f94fc6f1df4ef03e639190a138d650bc6cf8adf",
        "05ad674aa888e3f9217de0e5c3176161dd8e31aa"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Apr 25 22:05:25 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 25 22:05:25 2015 +0000"
      },
      "message": "am 05ad674a: am 00e165ae: am e8101c04: Merge \"fix compiler error under FORTIFY_SOURCE\u003d2\"\n\n* commit \u002705ad674aa888e3f9217de0e5c3176161dd8e31aa\u0027:\n  fix compiler error under FORTIFY_SOURCE\u003d2\n"
    },
    {
      "commit": "9709a1f04c1b6d44d75d504c3e200be256e52e50",
      "tree": "c9492f6241a52d854f24cd6c3681750538934016",
      "parents": [
        "e60077e62a441dbcc132b2abb35d998ab48d261c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 24 20:25:50 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 24 20:27:06 2015 -0700"
      },
      "message": "fix compiler error under FORTIFY_SOURCE\u003d2\n\nframeworks/base/libs/androidfw/ObbFile.cpp:340:5: error: ignoring return value of function declared with warn_unused_result attribute [-Werror,-Wunused-result]\n    ftruncate(fd, mFooterStart);\n    ^~~~~~~~~ ~~~~~~~~~~~~~~~~\n1 error generated.\namake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libandroidfw_intermediates/ObbFile.o] Error 1\n\nChange-Id: I7080d64e7a830a10b41c1ebf33c60d32b7c8356e\n"
    },
    {
      "commit": "b5bc454870c8b7df88a633b18c4c6499361c3a08",
      "tree": "47dabcf133dec831d33966f0cf53dce5e0a40ffc",
      "parents": [
        "1ed723723d9e42a064d54799cc24bdc24891e44d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 23 15:51:55 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 23 16:04:50 2015 -0700"
      },
      "message": "Teach LA how to destroy\n\nChange-Id: I57ab30b6d56370dade6987f442136ea5e5546c9b\n"
    },
    {
      "commit": "1ed723723d9e42a064d54799cc24bdc24891e44d",
      "tree": "b6b4bfe2eecd9254f819e526f10cee925cadfd71",
      "parents": [
        "acf4698ce6a053582eff90abb911dfae3a4cb70a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 23 15:45:54 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 23 15:46:28 2015 -0700"
      },
      "message": "Move LinearAlloc to libhuwi\n\nChange-Id: I1d8c99bdeef22ca569e1743cff6108f478737bc8\n"
    },
    {
      "commit": "c1b33d665c8caf5760f68c45c6ca0baa649b832a",
      "tree": "9c89975587ac76b4d10589fdc15d7af4baa22dbf",
      "parents": [
        "bb2979d61c9cabd6f0476cc9e2121616d8001567"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 22 09:04:45 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 22 09:34:34 2015 -0700"
      },
      "message": "GraphicsJNI Canvas cleanup\n\nChange-Id: I72e142986a8bc9f464c1951b6b5187919de3462e\n"
    },
    {
      "commit": "2099ee8ab574181627b9dac81e1ec4f3f80bce05",
      "tree": "02fc5c9e8e03552737a2b72707da153ec1c9a8db",
      "parents": [
        "b55b838c17396b8bb13424e8ca2c81f4efb5d037",
        "db663fe83f976107fd8fd9307d871b37d9e47370"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 21 16:30:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 16:30:08 2015 +0000"
      },
      "message": "Merge \"Rename native DisplayListRenderer to DisplayListCanvas\""
    },
    {
      "commit": "dee66b6d99dec8bc97843542d5388e50ebd0f6ee",
      "tree": "b11d6264cd3fa93e6f7ba9806642109facd233d5",
      "parents": [
        "19f1faa376c08edbd2c7e19ad33107e1b9520777"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 20 14:54:49 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 20 14:54:49 2015 -0700"
      },
      "message": "Simplify TaskManager fallback path\n\nChange-Id: Ie3833449f7fe6aa69b9f71eb8bab1bef0fe434aa\n"
    },
    {
      "commit": "db663fe83f976107fd8fd9307d871b37d9e47370",
      "tree": "cd45e2d420903cb93be8d9707c4bf9e736f81e86",
      "parents": [
        "84b8b066b40b14854561d103e26fb1c7bca243cc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 20 13:34:45 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 20 14:20:47 2015 -0700"
      },
      "message": "Rename native DisplayListRenderer to DisplayListCanvas\n\nChange-Id: I33e6f8cc85da1e7da7ff7bf18d4ebde64222067a\n"
    },
    {
      "commit": "9d4efdf2802f06ccf7031610891f75af70ea5538",
      "tree": "a86a7a833af6b45b466a391c5ff72fbffcdca329",
      "parents": [
        "7809f835cae637c12eebdc92103ad88890228d97"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:45:40 2015 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:47:27 2015 +0000"
      },
      "message": "Revert \"A bunch more cleanups\"\n\nThis reverts commit c294d128d03bc9a9982b273a82516c04583438cc.\n\nChange-Id: Id1ebb236950f7c36c6d86e1dd95566d3a200748d\n"
    },
    {
      "commit": "7809f835cae637c12eebdc92103ad88890228d97",
      "tree": "6e1d18e8b417f76e32a13b22ac9c3ced00b8c083",
      "parents": [
        "afbeb2c2374bf7b7f7efa120944714fab469173d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:45:19 2015 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:46:47 2015 +0000"
      },
      "message": "Revert \"Move AssetAtlas off of SkBitmap*\"\n\nThis reverts commit 87ffb63d90fb6dd2689fe72dcb24fda9a6156220.\n\nChange-Id: I92adfcee454a0a19020cdd9e96a134be0ee529aa\n"
    },
    {
      "commit": "afbeb2c2374bf7b7f7efa120944714fab469173d",
      "tree": "4536c4995989aa41fd349733939fbbf4f677ad9d",
      "parents": [
        "eaa388bc2c4259e4d9c887af2aca0aa4ce50b08e",
        "1ff961dd6d51247e82e41de052f04fd0b577f09b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:46:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 17 20:46:22 2015 +0000"
      },
      "message": "Merge \"Revert \"Remove Bitmap#getSkBitmap\"\""
    },
    {
      "commit": "1ff961dd6d51247e82e41de052f04fd0b577f09b",
      "tree": "b5a50ef42c04b17739892de88d5cd07b7fde7151",
      "parents": [
        "4bd981ec533a65e8dee053a0a709b484770b0a76"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:45:15 2015 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:45:15 2015 +0000"
      },
      "message": "Revert \"Remove Bitmap#getSkBitmap\"\n\nThis reverts commit 4bd981ec533a65e8dee053a0a709b484770b0a76.\n\nChange-Id: I5c92cd955c6e70e197dc5cbc5dfeed8369a24a31\n"
    },
    {
      "commit": "9543c0be95208f531fac2761bfce2d566c78c209",
      "tree": "ee7aa2ada969fd55e0482a048ed623642c540627",
      "parents": [
        "103d48ec09cbaeedf28b66425cde9198f767e0d5",
        "040b6d8baf595865242790186672812f1df55cbb"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Apr 17 12:02:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 17 12:02:48 2015 +0000"
      },
      "message": "Merge \"Fix offset of composeLayerRegion\""
    },
    {
      "commit": "040b6d8baf595865242790186672812f1df55cbb",
      "tree": "9cff121e46d7fcb48aa46452bf85ad9c5a6940eb",
      "parents": [
        "ad83f87bcfc4f3ee4bcc972bad4ddcaaf4e57426"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Apr 16 10:50:53 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Apr 16 13:39:51 2015 -0400"
      },
      "message": "Fix offset of composeLayerRegion\n\ncomposeLayerRect() pays attention to the offset of the layer, but\ncomposeLayerRegion() ignores it. This patch makes the behavior of\nthe region case match the behavior of the rect case.\n\nThe difference will only be shown by tests which do not position\nthe saved layer at the origin.\n\nBUG\u003d20288561\nR\u003dccraik@google.com,djsollen@google.com\n\nChange-Id: Ie22737a8614c508cbffe39aa4c55f7d5434277aa\n"
    },
    {
      "commit": "8560630596f8273356fddc4ee0c8ff6bfae640b8",
      "tree": "41b3ed1ac8f207e1f5042f9b81ff35d714694c5e",
      "parents": [
        "64e605a5be1468be8530ad269c9c56153622c9c5",
        "4bd981ec533a65e8dee053a0a709b484770b0a76"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 16 14:29:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 14:29:21 2015 +0000"
      },
      "message": "Merge \"Remove Bitmap#getSkBitmap\""
    },
    {
      "commit": "4bd981ec533a65e8dee053a0a709b484770b0a76",
      "tree": "c9563c173961c03ed25fceec3aace0373212c31c",
      "parents": [
        "87ffb63d90fb6dd2689fe72dcb24fda9a6156220"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 15:52:10 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 15:56:12 2015 -0700"
      },
      "message": "Remove Bitmap#getSkBitmap\n\nChange-Id: Ifb9047b426122d3e5a445eb7a0eb3fce38dedf27\n"
    },
    {
      "commit": "8315167693d033a8857e4d10c2f1df52b15a8b78",
      "tree": "e18a4fe402fa6f1f49a0c28a4a56c8164df763e5",
      "parents": [
        "ff75ef8f1c064f6456ba8dde10b62c2b9ec4818d",
        "87ffb63d90fb6dd2689fe72dcb24fda9a6156220"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 21:23:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 21:23:19 2015 +0000"
      },
      "message": "Merge \"Move AssetAtlas off of SkBitmap*\""
    },
    {
      "commit": "87ffb63d90fb6dd2689fe72dcb24fda9a6156220",
      "tree": "b5a50ef42c04b17739892de88d5cd07b7fde7151",
      "parents": [
        "f7a61483bc2a763145b0f1b6e6809c44cdc97187"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 13:24:47 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 13:27:05 2015 -0700"
      },
      "message": "Move AssetAtlas off of SkBitmap*\n\nSwitched to SkPixelRef*\n\nChange-Id: I4a1d9dc6c55c1ebcce6b0b8c585e69559e523898\n"
    },
    {
      "commit": "20c2b3ef74ac96fee5ef1daa7959c434d6caeb97",
      "tree": "d6379497325c2b8865997499eaca1160f8637112",
      "parents": [
        "ad83f87bcfc4f3ee4bcc972bad4ddcaaf4e57426"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Apr 15 13:54:32 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Apr 15 13:54:32 2015 -0400"
      },
      "message": "Fix positioned text bounds\n\ndrawPosText() bounds weren\u0027t taking their offset into account properly\nin absolute-positioned cases.\n\nR\u003ddjsollen@google.com\nBUG\u003dskia:3673\n\nChange-Id: Ic39fd45491231ed3e3949ffbc1f063a4fc12c3f8\n"
    },
    {
      "commit": "f7a61483bc2a763145b0f1b6e6809c44cdc97187",
      "tree": "81eb425828851d3d725b93fd64fd342860f8c465",
      "parents": [
        "50d9509c34a48cfc4d076195f8c9a23a703dfd8f",
        "c294d128d03bc9a9982b273a82516c04583438cc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 14:48:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 14:48:19 2015 +0000"
      },
      "message": "Merge \"A bunch more cleanups\""
    },
    {
      "commit": "39606e9f78a1b2aa4e82b47e978471cd1158d1df",
      "tree": "3e21c499055b91d18693283d095113c82e2a0c42",
      "parents": [
        "4c08b1bab279fec1a66f1af701ee5c2054eba9ac",
        "7b09e7a9f3ef804e9cd159023b64eac1ef8b7931"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 15 00:07:01 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 15 00:07:01 2015 +0000"
      },
      "message": "am 7b09e7a9: am 44d7989a: am 571c5a26: Merge \"Fix UB in ResourceTable::stringToInt.\"\n\n* commit \u00277b09e7a9f3ef804e9cd159023b64eac1ef8b7931\u0027:\n  Fix UB in ResourceTable::stringToInt.\n"
    },
    {
      "commit": "571c5a26f767f67118f34ca0d426aeeb4a287b2c",
      "tree": "c6019f3417f18d7b7c80342aae5f78cfd649ca80",
      "parents": [
        "d693690aee3ee94878ab59ee86d8db8ce5bb3789",
        "1b4f316651096f0ef9301b4ffde4816a08a54ab5"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 14 23:25:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 23:25:27 2015 +0000"
      },
      "message": "Merge \"Fix UB in ResourceTable::stringToInt.\""
    },
    {
      "commit": "c294d128d03bc9a9982b273a82516c04583438cc",
      "tree": "fd6c7ae3a6a292caf48160f0c0c8cc82e4729225",
      "parents": [
        "4fc266bbef6129b5cefc910f0680eb9d61794faf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 13 15:20:29 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 14 15:38:22 2015 -0700"
      },
      "message": "A bunch more cleanups\n\nSwitch a few places to using android::canvas\ninstead of SkCanvas as well which eliminated\nsome JNI\n\nChange-Id: I8f98b56442a06362b82b984cd1bd3a92398d8dbc\n"
    },
    {
      "commit": "34e79c1e570673148e3e0bbd91df3180a00eeff1",
      "tree": "e049700bf2c38278465ece1a0840ae4d8d8fb111",
      "parents": [
        "4fc266bbef6129b5cefc910f0680eb9d61794faf"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Apr 14 11:34:39 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Apr 14 11:34:39 2015 -0400"
      },
      "message": "Convert from glyph count to byte length\n\nCanvas drawText* APIs are inconsistent, and this mismatch snuck through\nour tests.\n\nBUG\u003dskia:3636\nR\u003ddjsollen@google.com\n\nChange-Id: Ibaab512c3f19df8445d582633b2748f1ec4d2902\n"
    },
    {
      "commit": "cdd3021936c90c7f561c569a32b65f6d32964aaa",
      "tree": "f04b0926d93d05ce26bf7e1303a027a5c0c61003",
      "parents": [
        "72aaa88f2e060501a7f26f98c6e3fd2ee1b0dd64",
        "18ae2a020d3c720f8b6125b9f4567e953f04c7b0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 16:06:04 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 10 16:06:04 2015 +0000"
      },
      "message": "am 18ae2a02: am 32eafe9b: am a08f6a66: Merge \"Fix GL_INVALID_OPERATION in font renderer when font cache is limited.\"\n\n* commit \u002718ae2a020d3c720f8b6125b9f4567e953f04c7b0\u0027:\n  Fix GL_INVALID_OPERATION in font renderer when font cache is limited.\n"
    },
    {
      "commit": "72aaa88f2e060501a7f26f98c6e3fd2ee1b0dd64",
      "tree": "53097f962aacf21e7ff80e5062cd507bf64bb96b",
      "parents": [
        "44220d7d9a0b63f645ab4a3f18d3358a18b9c3df",
        "6b6645c8951e95b2802c489ab2d87f004c610ffc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 16:05:50 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 10 16:05:50 2015 +0000"
      },
      "message": "am 6b6645c8: am 1a595833: am d56e087b: Merge \"Fixing memory leak in RenderBufferCache\"\n\n* commit \u00276b6645c8951e95b2802c489ab2d87f004c610ffc\u0027:\n  Fixing memory leak in RenderBufferCache\n"
    },
    {
      "commit": "a08f6a66e91c7bacd50e64c039aaaa6b9fe2625c",
      "tree": "38ccb9efe7e3c12da3f5813c8600d4a7326cd588",
      "parents": [
        "d56e087b550f7ee351f15ac6c5ff9d57a08387fc",
        "1f61b1911e03ef3fc51c3db64798071f3a7477ec"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 15:32:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 15:32:01 2015 +0000"
      },
      "message": "Merge \"Fix GL_INVALID_OPERATION in font renderer when font cache is limited.\""
    },
    {
      "commit": "d56e087b550f7ee351f15ac6c5ff9d57a08387fc",
      "tree": "7ea4efa4538b4b42c5c626d73b19b38d04af065b",
      "parents": [
        "6d718c2f43f6be057f9a519bc02f6b123405b79d",
        "e11f3ab000ec8d71e816aea7f266a3ceafebfd56"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 15:27:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 10 15:27:02 2015 +0000"
      },
      "message": "Merge \"Fixing memory leak in RenderBufferCache\""
    },
    {
      "commit": "3f6d5aa5dd39ec326b60ba0e3b2742a2abaab69a",
      "tree": "3856269d998f1c4bd5ef0e769b59a24c00dc1c56",
      "parents": [
        "52f57de9f618f4b3303fb9b59084e775f5312984",
        "ecf091e171012831cddea59f1f64a46e87ee8c4f"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Apr 09 17:48:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 17:49:00 2015 +0000"
      },
      "message": "Merge \"Update the shadow fall off function from cosine to gaussian.\""
    },
    {
      "commit": "ecf091e171012831cddea59f1f64a46e87ee8c4f",
      "tree": "80faa269881a6cc562b999dc4d7fedbbf2d0b4a9",
      "parents": [
        "b929d65800fcc91c04d385fe9ec23a924868883b"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Feb 17 13:26:10 2015 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Apr 09 09:57:27 2015 -0700"
      },
      "message": "Update the shadow fall off function from cosine to gaussian.\n\nAlso tune the parameters to match a better look designed by UX team.\nFor ambient part, the acos transformed alpha is not needed any more.\n\nb/19370798\n\nChange-Id: I20d2615d1be502eb900942ed756aecd1660dee48\n"
    },
    {
      "commit": "1b4f316651096f0ef9301b4ffde4816a08a54ab5",
      "tree": "f141604343f4114337483ed0fb30fe36f4750310",
      "parents": [
        "47c1cf4b35616059409a0674382c2318494e877b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 07 18:43:15 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 08 14:12:21 2015 -0700"
      },
      "message": "Fix UB in ResourceTable::stringToInt.\n\nWas here because UBsan found integer overflow in the parsing for hex\nnumbers, since hex numbers here are actually unsigned but assigned to\na signed integer.\n\nAlso fixes a number of missing error conditions.\n\nChange-Id: Iaea576daedfc6c75521cde02de3fe9dd0198a3b7\n"
    },
    {
      "commit": "05f5674ae8cae94c9cc3f039e55747f0e787f959",
      "tree": "edfecd6fa69c60a32fdcf1f09fb1688b67daf2f9",
      "parents": [
        "9f3f6000ed09e69296fe722bd818001f9e61cc6f"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 07 18:03:31 2015 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 07 18:03:31 2015 -0700"
      },
      "message": "Fix 64-bit build.\n\nChange-Id: I9f2e2edf276f98864b65708b746bf938a4a3c8d6\n"
    },
    {
      "commit": "379f264bb62ace2cf2053d4765307234bf66552f",
      "tree": "df19e64a01c88efa471b9421439e188ddbcb9a68",
      "parents": [
        "3d518037fecb22eec33f860aceb34514ea76855c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 06 13:29:25 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 06 16:07:12 2015 -0700"
      },
      "message": "Add stat collection start time\n\nAdd CLOCK_MONOTONIC to signal\nwhen the stat collection started\nto allow for tracking stats\nover time\n\nChange-Id: Iab7c52f21184eea603ddc8572b9d91a951b45a00\n"
    },
    {
      "commit": "b7acab634ad2a8f318e5e53267df010e3c2a2219",
      "tree": "9041ad32d6ed042cdced8dd4641e90f62dbc46b8",
      "parents": [
        "1ffaca4414c5c2b73e5aaf085728e3b01ea534c3",
        "e9c01a40a2f0f0da195dfbb2909aaee5c005d1c6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 06 18:04:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 06 18:05:00 2015 +0000"
      },
      "message": "Merge \"Fix path clipping in VectorDrawable\""
    },
    {
      "commit": "e9c01a40a2f0f0da195dfbb2909aaee5c005d1c6",
      "tree": "98bb68bd73ad336faa1c07ba79fba02cfbf63bdd",
      "parents": [
        "095d99904579a5231d974a2447661c10a8eb621b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 06 10:47:23 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 06 10:50:36 2015 -0700"
      },
      "message": "Fix path clipping in VectorDrawable\n\nbug:19946683\n\nChange-Id: I773957df7459eb72ea5d505afb0daac08239ecbf\n"
    },
    {
      "commit": "828407356dd5c34a3e441604aaf895cbec7c7e66",
      "tree": "95f818ed2f79f01e16a38ade4fe461b89de95cca",
      "parents": [
        "095d99904579a5231d974a2447661c10a8eb621b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 03 09:37:49 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 03 13:01:18 2015 -0700"
      },
      "message": "Delete pre-glop path\n\nbug:19014311\n\nChange-Id: I06376b6f625455892d8eafe2727b78025a64c4bf\n"
    },
    {
      "commit": "98fa0a322e6bf4f6b543487c820955d8598193b5",
      "tree": "9f20733f568d370cbd1244b3ff8d458838d8a4a4",
      "parents": [
        "63473869da8ea7f39a2b530dd6e026bedc5e6f07"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 31 12:03:51 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 31 12:03:51 2015 -0700"
      },
      "message": "Fix warn log format\n\nChange-Id: I7876dd5d0d0f68dde4cb0768699d800daff754f1\n"
    },
    {
      "commit": "f6967e686b8eba2719cff21485194b0156e4415b",
      "tree": "30f56747c080d2af965e65385453905ccc5cdfad",
      "parents": [
        "80d4bd84ede57b1a3c1e8738fb6380c667c13865",
        "e30b53cec5eb6eaa5d24231feb3207b917c1baab"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Mar 31 11:58:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 31 11:58:10 2015 +0000"
      },
      "message": "Merge \"Enter RectangleMode when the clip region is a rectangle\""
    },
    {
      "commit": "9d7b58571f9b8a00cddd204c556de4c1610b8996",
      "tree": "90575274196532099fea078b2013319639b562fb",
      "parents": [
        "8aa74c0a1cf6c19199a00d911d02035f96cce4fc",
        "31dbfc1b3e18f24d9a34c4e600c2048e8d244c14"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 30 23:22:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 23:22:08 2015 +0000"
      },
      "message": "Merge \"Fix glop usage for drawTextureLayer\""
    },
    {
      "commit": "31dbfc1b3e18f24d9a34c4e600c2048e8d244c14",
      "tree": "94f71e421cbee95feae23205c6e7141fc394d4c9",
      "parents": [
        "bf0adf3ba89078f1e8f74a394c1025ceebaa5b37"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 30 15:42:23 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 30 15:42:23 2015 -0700"
      },
      "message": "Fix glop usage for drawTextureLayer\n\nChange-Id: I45fcdfc9e3f41a687b6f4679f81e2b1f4479b9fc\n"
    },
    {
      "commit": "e30b53cec5eb6eaa5d24231feb3207b917c1baab",
      "tree": "386c65cec91fa48e12cec5b46bf0f6795bc094a2",
      "parents": [
        "b13f44bc6ee65e155c54f645ab4aa6786feeb162"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Mar 30 15:59:02 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Mar 30 16:57:43 2015 -0400"
      },
      "message": "Enter RectangleMode when the clip region is a rectangle\n\nClipArea\u0027s region mode implementation store the region\u0027s boundary in\na rectangle, and if the region is that rectangle, set its region to\nempty.  This is a bug, since as long as the ClipArea is in region\nmode it treats its region as determinitive. When the next clipping\noperation comes in, it is tested against the empty region instead of\nagainst the valid rect.\n\nDiscovered via Skia GM testing.\n\nChange-Id: I3bbc4e81c8d68636061f830156e017e9b5c7e587\n"
    },
    {
      "commit": "c74e289a6537227ab80fa59da9d5d6f88dc9fe33",
      "tree": "ea311fc88c57608572ad1d51b57b454a8cdba729",
      "parents": [
        "6199bffef2eca134c44f0f56f8ddf9f0b8f41319",
        "edc524c90506d80e0fc5fb67e8de7b8f3ef53439"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 30 19:39:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 19:39:27 2015 +0000"
      },
      "message": "Merge \"Add GraphicsStatsService\""
    },
    {
      "commit": "6e6af0d34eb08a810cd399de64c1ade21fe866a9",
      "tree": "f517d110c8640546af73b230a88e627374d11859",
      "parents": [
        "7760820ecc636b2a065b20eec8422d4deaf0141c",
        "11ae768cf1b8348e761ad9c09e98788da1e591b1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 27 23:50:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 27 23:50:58 2015 +0000"
      },
      "message": "Merge \"Add payload-size preflight stage to full transport backup\""
    },
    {
      "commit": "edc524c90506d80e0fc5fb67e8de7b8f3ef53439",
      "tree": "098c18daa80655fe0fa3faab7c39332685c163ef",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 18 15:24:33 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 27 11:50:56 2015 -0700"
      },
      "message": "Add GraphicsStatsService\n\nMore S\u0027s for More Speed\n\nSplit JankTracker\u0027s backing data from the\nclass to allow for data relocation to/from ashmem regions\n\nPack the jank tracking data to fit in 256 bytes\n\nChange-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b\n"
    },
    {
      "commit": "11ae768cf1b8348e761ad9c09e98788da1e591b1",
      "tree": "fa4a4e9fffc83e61af98476d41df4252e3cd1323",
      "parents": [
        "e7f931c4505a6bd62e01bef5193dd724571a672b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 24 18:48:10 2015 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 26 18:57:36 2015 -0700"
      },
      "message": "Add payload-size preflight stage to full transport backup\n\nWe now peform a total-size preflight pass before committing data to the\nwire.  This is to eliminate the large superfluous network traffic that\nwould otherwise happen if the transport enforces internal quotas: we\nnow instead ask the transport up front whether it\u0027s prepared to accept\na given payload size for the package.\n\nFrom the app\u0027s perspective this preflight operation is indistinguishable\nfrom a full-data backup pass.  If the app has provided its own full-data\nhandling in a subclassed backup agent, their usual file-providing code\npath will be executed.  However, the files named for backup during this\npass are not opened and read; just measured for their total size.  As\nfar as component lifecycles, this measurement pass is simply another\ncall to the agent, immediately after it is bound, with identical\ntimeout semantics to the existing full-data backup invocation.\n\nOnce the app\u0027s file set has been measured the preflight operation\ninvokes a new method on BackupTransport, called checkFullBackupSize().\nThis method is called after performFullBackup() (which applies any\noverall whitelist/blacklist policy) but before any data is delivered\nto the transport via sendBackupData().  The return code from\ncheckFullBackupSize() is similar to the other transport methods:\nTRANSPORT_OK to permit the full backup to proceed; or\nTRANSPORT_REJECT_PACKAGE to indicate that the requested payload is\nunacceptable; or TRANSPORT_ERROR to report a more serious overall\ntransport-level problem that prevents a full-data backup operation\nfrom occurring right now.\n\nThe estimated payload currently does not include the size of the\nsource-package metadata (technically, the manifest entry in its\narchive payload) or the size of any widget metadata associated with\nthe package\u0027s install.  In practice this means the preflighted size\nunderestimates by 3 to 5 KB.  In addition, the preflight API currently\ncannot distinguish between payload sizes larger than 2 gigabytes;\nany payload estimate larger than that is passed as Integer.MAX_VALUE\nto the checkFullBackupSize() query.\n\nBug 19846750\n\nChange-Id: I44498201e2d4b07482dcb3ca8fa6935dddc467ca\n"
    },
    {
      "commit": "39c2750221fdfb8c57b364ca829d95e5d7656b07",
      "tree": "673f79a595f6624c6ca9de7b1ac7d6b22f176d53",
      "parents": [
        "be30c30d3e2cabe90a1fc59ce0d39123e84df5e2",
        "485c25ba46b02393245c4c766ad059644afa7cd9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Mar 25 20:58:56 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 25 20:58:56 2015 +0000"
      },
      "message": "am 485c25ba: am e3abfef6: am 82f6b16e: Merge \"hwui : fix memory leak due to duplicate in shadow cache\"\n\n* commit \u0027485c25ba46b02393245c4c766ad059644afa7cd9\u0027:\n  hwui : fix memory leak due to duplicate in shadow cache\n"
    },
    {
      "commit": "82f6b16e10a116a42e32c99c34fb2d435da21fd5",
      "tree": "5987d276af72492cb5317cea7a8a90062e4f76c9",
      "parents": [
        "ff022cb1bd70fc4c9f973af5afebf51517bda572",
        "b159633aa3b91301de108a0b32e4634c72f34d14"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Mar 25 16:15:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 16:15:12 2015 +0000"
      },
      "message": "Merge \"hwui : fix memory leak due to duplicate in shadow cache\""
    },
    {
      "commit": "289e1b871656b04c0a7edf6e578c9094f5fb3b81",
      "tree": "5af2641c60f90b609892a890b280bf20a48e60cb",
      "parents": [
        "a91e9e5403bdafe3df9d40a94035618e4f98eb9f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 25 11:32:17 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 25 11:39:40 2015 -0400"
      },
      "message": "Update ShadowTesslator to support conics\n\nbug:19732872\nChange-Id: I8b539ab3677219fa5bb7de7caf0aad9fc47ef7e9\n"
    },
    {
      "commit": "240d52cb96867042fce050f832ee4290e758a0a4",
      "tree": "ed2a7ae9c564d6f2c24b509e937605777759530c",
      "parents": [
        "9619884525cef6925cceb39fc46a62bf4debbcca",
        "0b8606266c1afc69cbeb73acda67c85d87943318"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 25 14:30:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 14:30:51 2015 +0000"
      },
      "message": "Merge \"Fix DrawFilter\u0027s usage in HWUI.\""
    },
    {
      "commit": "0b8606266c1afc69cbeb73acda67c85d87943318",
      "tree": "b3a139a78b39d120ed190b875f895396648ed8a2",
      "parents": [
        "2a16460c7c914729e9c256ce39d681524d53b7dc"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 25 10:08:30 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 25 10:08:30 2015 -0400"
      },
      "message": "Fix DrawFilter\u0027s usage in HWUI.\n\nAlso add additional compile time checks to ensure that the Java\nand Skia APIs remain in sync.\n\nbug:19890753\nChange-Id: I8503cacf2859307e3f480a78603f9f05901b58cc\n"
    },
    {
      "commit": "2f6fb3d1b779b877ee66d826c8ff57efde830ac6",
      "tree": "b2781b9d637598d444e0f61672a1dbfbdbf7ed96",
      "parents": [
        "f1bbbbfc2c53a83c8950bab92e08d70a8d67b84a",
        "bf29ee2a49cfa6e87e535dcb1476ff1336f8bdf9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 19:35:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:35:21 2015 +0000"
      },
      "message": "Merge \"Shave another 10us off of hwuitask\""
    },
    {
      "commit": "bf29ee2a49cfa6e87e535dcb1476ff1336f8bdf9",
      "tree": "8772d1e3225b5475459442face25454cecd1a2fe",
      "parents": [
        "815f2a093a4b44863fe9ffdb1986a2d5425ffef8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 12:31:44 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 12:31:44 2015 -0700"
      },
      "message": "Shave another 10us off of hwuitask\n\npthread_cond_signal does not need the mutex\nto be held to signal. This results in the thread\nwaking up trying to grab the lock, failing, the signaling\nthread to wake up, release the lock, immediately get preempted\nfor the signaled thread which can now proceed.\n\nRelease the mutex before signaling to avoid the ping-pong\nscheduling issue, which shaves another 10us off of this\n\nChange-Id: Ie6bccca031ba6528f357eae8352b74626a6318c7\n"
    },
    {
      "commit": "125104f66c79156c5c70c80ee24575b296b82f96",
      "tree": "12f148b25b735820293810b300a2625910694411",
      "parents": [
        "e7f931c4505a6bd62e01bef5193dd724571a672b",
        "815f2a093a4b44863fe9ffdb1986a2d5425ffef8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 19:21:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:22:00 2015 +0000"
      },
      "message": "Merge \"Shave 10us off of hwuitask\""
    },
    {
      "commit": "815f2a093a4b44863fe9ffdb1986a2d5425ffef8",
      "tree": "98f304aed59d887ff5ce4702125d96171f972659",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 12:16:37 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 12:16:37 2015 -0700"
      },
      "message": "Shave 10us off of hwuitask\n\nThis prevents an issue where if the signal schedules\nhwuiTask it will immediately block and go back to sleep due\nto mLock still being held.\n\nThis costs 10us in thread scheduling ping-ponging bouncing\nbetween hwuiTask and RenderThread\n\nChange-Id: I47595c1bf5736576483a6aa7aada0b1be1e04268\n"
    },
    {
      "commit": "111928fa324db73f94389bdfab4b108cbd30d8f4",
      "tree": "5a0d8df21948ae02fa189e8a72d9904098d55a7a",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae",
        "4142f026b30ee1ee373ea29e0d213aa5c69f9c10"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 08:34:23 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 24 08:34:23 2015 -0700"
      },
      "message": "resolved conflicts for merge of 4142f026 to master\n\nChange-Id: Iabe3aa0ac6911a26d2ba7219f18332897276ed6f\n"
    },
    {
      "commit": "47fe60a643d5d138ee3b0d836a1c4ab8b6e5b730",
      "tree": "b50fada585a400bb915cb2cbc44e4c31eda85588",
      "parents": [
        "0964cfc384398cdacd82030649b9c43b95ffa970",
        "8a9355a98ece3d7fc9d022e759d05378060c86e2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 20 20:46:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 20:46:40 2015 +0000"
      },
      "message": "Merge \"Output modified bcp47 tag in ResTable_config::toString()\""
    },
    {
      "commit": "c80c9ad188ac6c421e70c906104d4394504878fb",
      "tree": "63a540b1640646ea5edde02daad5479830c7759c",
      "parents": [
        "d3e6428aea34ce3297123c63b4dd6223dac5d5a8"
      ],
      "author": {
        "name": "youngmin0822.lee",
        "email": "youngmin0822.lee@lge.com",
        "time": "Fri Mar 20 21:22:32 2015 +0900"
      },
      "committer": {
        "name": "youngmin0822.lee",
        "email": "youngmin0822.lee@lge.com",
        "time": "Fri Mar 20 21:22:32 2015 +0900"
      },
      "message": "Don\u0027t create unnecessary RenderThread\u0027s instance when executing \u0027dumpsys gfxinfo\u0027\n\nTo obtain the gfxinfo for each process, the static method of RenderProxy is used, which is named outputLogBuffer().\nIn there,\n1. RenderTask is created for getting DisplayList Commands in RenderNode.\n2. staticPostAndWait() is called\n3. RenderThread\u0027s instance is created by \u0027RenderThread::getInstance()\u0027 in staticPostAndWait()\n\nIn case of the service, they don\u0027t use HW Acceleration, so don\u0027t need RenderThread.\nBut, by the process of No.3, RenderThread is created for all process.\nAs we know, RenderThread never be destroyed while the process is alive.\nThis patch checks RenderThread instance before the creation of RenderTask.\nAnd, there is no one, just return to prevent the unnecessay creation of it.\n\nChange-Id: I4fe29d83c9ced3e8b67177c0874c5d8ee62e1870\n"
    },
    {
      "commit": "c6128bae4312aca7902589bda793a7ff89810401",
      "tree": "c75751a0dc56ba08958e03f7a2c35957ef4e9f80",
      "parents": [
        "f9eb4b90fe4b00f9f9c8091eb6080d027a6fac9a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 19 10:00:56 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 19 10:00:56 2015 -0700"
      },
      "message": "Fix clang build\n\nChange-Id: I5336ac347123671a18401121c5f001c8f7caf54d\n"
    },
    {
      "commit": "e2bb380bc26749782c873e5488cfdf4e42b27346",
      "tree": "3e05a9dfe166da3649ac2f1673274785233d6912",
      "parents": [
        "8c6e4b398040ec0b52a7cc0cef54728f126e3841"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 13 15:07:52 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 18 16:10:24 2015 -0700"
      },
      "message": "Use glops for text rendering\n\nChange-Id: I5e155c8baf3149f0ff231ec3c89dbff6bb8eae92\n"
    },
    {
      "commit": "b159633aa3b91301de108a0b32e4634c72f34d14",
      "tree": "6a1afed560dac8141242f6abb6ea51cae75784dd",
      "parents": [
        "9aeb080eec2286e8604901bd2b8248be4e527107"
      ],
      "author": {
        "name": "Mykola Kondratenko",
        "email": "mykola.kondratenko@sonymobile.com",
        "time": "Thu Mar 12 15:20:38 2015 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Tue Mar 17 08:57:41 2015 +0100"
      },
      "message": "hwui : fix memory leak due to duplicate in shadow cache\n\nNew ShadowTask with the ShadowDescription key that already\nexists in the shadow LruCache will leak as it is not being\nadded.\n\nFix adds check for the existing key that is common in the hwui\ncode but missing for the TessellationCache::precacheShadow\nfunction.\n\nChange-Id: I37fd5ec82f8b8da5d1ec0f2ab9fd04c5f8534367\n"
    },
    {
      "commit": "8a9355a98ece3d7fc9d022e759d05378060c86e2",
      "tree": "d6d76f94f2688f9bcee4c961dafc4cc3ec97a6bd",
      "parents": [
        "9c329b8b6440823ef94bffebc0b1098e8b2ad622"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 10 16:55:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 16 22:25:26 2015 +0000"
      },
      "message": "Output modified bcp47 tag in ResTable_config::toString()\n\nWe expect to be able to parse the output of ResTable_config::toString(),\nso it should use modified bcp47 (b+en+Latn+US).\n\nChange-Id: I597a1779a1fa5cff171c473e6a0368d93b9c7722\n"
    },
    {
      "commit": "dc16e24afcffef742bc48ac1047ad48e928d3489",
      "tree": "15bd24906530b8d716a100731c31ad30dcb8d487",
      "parents": [
        "aff57b7519a2c2700f6259a99faa05fb673d184a",
        "b0772a6cc5ab09eb40cbb1fd6c7e0293ae3d2efe"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Mar 16 19:40:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 19:40:08 2015 +0000"
      },
      "message": "Merge \"Add conic support to HWUI path tessellator.\""
    },
    {
      "commit": "b0772a6cc5ab09eb40cbb1fd6c7e0293ae3d2efe",
      "tree": "c54f01c945d768c13edcd5e6bccd5b435489f237",
      "parents": [
        "592f8808951a292848a815a8b84df7e1b425d11f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Mar 16 14:35:55 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Mar 16 15:28:16 2015 -0400"
      },
      "message": "Add conic support to HWUI path tessellator.\n\nbug: 19732872\nChange-Id: Ic3ae46f746325468ab972c9daf829099165eb596\n"
    },
    {
      "commit": "2a1ce8a4e5258b6599cb8e86864eb816d24d69b4",
      "tree": "a46995b45b8a2b79665460ebc6c6839449ef65c9",
      "parents": [
        "ee1f24ff2985a32b473244cc464b3ca7854de189"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 16 11:16:09 2015 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 16 11:31:38 2015 -0400"
      },
      "message": "use SkFilterQuality instead of SkPaint::FilterLevel\n\nChange-Id: I5d26869de746107b8a35a7a662236f993a824b0d\n"
    },
    {
      "commit": "ee248599d49a15fc207c5aeb0b90ec263cc1d600",
      "tree": "abb62a362ef1962a3097a586b638c1d7efc93a31",
      "parents": [
        "247dc6e125783b31f5c9a2cbccb34bd2ac575e6d"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 12 14:10:21 2015 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 13 08:05:55 2015 -0400"
      },
      "message": "Refactor DisplayList path caching.\n\nThis removes dependence on SkPath ptrs that HWUI does not control\nthe lifecycle of. This clears up some errors where the paths are\nnot generated from Java, but rather the Skia test suites.\n\nCherry-pick of a change that originally landed in master-skia and is\ndependent on a skia merge (ag/655422).\n\nChange-Id: I41b9797a2b0af5d6b4ea51891565469d4f1d832d\n"
    },
    {
      "commit": "1808d437e687fbc7b054611bf51932ec0e8b32f0",
      "tree": "0e68c8083d3b29ab7e4bdf5a3621106159f26268",
      "parents": [
        "d6ee06a0c86d9d1556bb4b15c9aaea538e415e38",
        "6521a1b7430e7b3298633236645e2c0b5fd56c00"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Mar 12 21:17:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 12 21:17:50 2015 +0000"
      },
      "message": "Merge \"Enforce null-termination in ResStringPool::stringAt\""
    },
    {
      "commit": "6521a1b7430e7b3298633236645e2c0b5fd56c00",
      "tree": "73fa9edcde604fc9048807998bd2fa2a7df43fdc",
      "parents": [
        "60cd30d99e69ada6d3e3e072ef64e36c4a2ba34d"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 11 16:08:37 2015 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 11 16:36:53 2015 -0700"
      },
      "message": "Enforce null-termination in ResStringPool::stringAt\n\nRejects any non null-terminated string that a caller asks\nResStringPool::stringAt for, returning NULL instead.\n\nThe rationale for returning NULL rather than amending the string to add\na null-terminator is that conformant APK files will have all their\nstrings null-terminated anyway, and that this is a possible signal of a\nmalformed package.\n\nBug: 15288069\nChange-Id: I370937b92f2cadf67fbd54203cbc7d1494be969f\n"
    },
    {
      "commit": "b36016c65f1d1b5846dba0349aab491dbd3a746a",
      "tree": "6ce0e78368d6797988cc9b9745b20de5919bb19f",
      "parents": [
        "4771577a342214ef4f7373a8d37d015749b00347"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 08:50:53 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 11:29:13 2015 -0700"
      },
      "message": "Cleanups \u0026 simplifications\n\nChange-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1\n"
    },
    {
      "commit": "4e9e0047a22399d1c19aaf2b247f81249b14786a",
      "tree": "c908f898b12e074042887bc3db2c86f7531ac035",
      "parents": [
        "de01b03a855eb482e2264ee31e98fb4d3a42ebab",
        "6a2c23dc1bb17b3a2819a33dc6af77b293de1aae"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 11 00:41:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 11 00:41:38 2015 +0000"
      },
      "message": "Merge \"Prevent integer overflow in ResourceTypes\""
    },
    {
      "commit": "48f650cb24e5b028deaff01baddc1d154f78d91a",
      "tree": "108dbf6fba2ceed0dd04235b2bbb9406e0484ff7",
      "parents": [
        "edacf22ca132ac48207a68aa30998f5b43d893b8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 10 11:03:39 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 10 14:02:06 2015 -0700"
      },
      "message": "Track down unsupported texture target\n\nbug:19641517\n\nChange-Id: Idc2e413abef5bb1438ffb3f52efb001504d3e89f\n"
    },
    {
      "commit": "6a2c23dc1bb17b3a2819a33dc6af77b293de1aae",
      "tree": "e4dc3e714d835e93dce3c34f1a487f9ec490db9f",
      "parents": [
        "53776a2b3c18f3eb2217e5e3af4dda187d0fee62"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Mon Mar 09 18:55:11 2015 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Tue Mar 10 12:34:08 2015 -0700"
      },
      "message": "Prevent integer overflow in ResourceTypes\n\nAdds checks to 2 malloc() calls to ensure that the finally allocated\nbuffer size is not vulnerable to integer overflows. Also includes a\nsanity check on the upper bound for type_info.numEntries before each\ncall.\n\nBug: 15171384\nChange-Id: Ifdf0276bcca7e3d93da7c3577b9486d3c03a9d03\n"
    },
    {
      "commit": "edacf22ca132ac48207a68aa30998f5b43d893b8",
      "tree": "6ad32c7946baf32c293be20857265a1d63400af2",
      "parents": [
        "ddd72599bf1d528079244df63d5f4dfdf534675e",
        "182952f5eeefc2a21d76d4664ada0e2d78c1105c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 10 16:29:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 16:29:14 2015 +0000"
      },
      "message": "Merge \"Glop based composeLayerRegion/Rect\""
    },
    {
      "commit": "182952f5eeefc2a21d76d4664ada0e2d78c1105c",
      "tree": "e2f1792de42f8d80d5843c3414cdfe7f1cd98c6a",
      "parents": [
        "be331a3809b9cf921c6ad65e1d671b24e97dded9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 14:17:29 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 18:06:32 2015 -0700"
      },
      "message": "Glop based composeLayerRegion/Rect\n\nChange-Id: I69440cabca84948e8aaead9479d616ebc2496517\n"
    },
    {
      "commit": "0a75d4e96cb5f2d3c27d5e4e36376e349cae2161",
      "tree": "026bfed8437c3c79ec495094d1f5422d1cb4aa4c",
      "parents": [
        "442361c500c090c0db03fd4b68a68692fc48a3d7",
        "eb911c2b0e8edeb7595a98af4b9f1bd47de1381e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 20:40:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 09 20:40:08 2015 +0000"
      },
      "message": "Merge \"Rewrite glop texture asserts\""
    },
    {
      "commit": "eb911c2b0e8edeb7595a98af4b9f1bd47de1381e",
      "tree": "f284a6341d5dab76b20133ce58407984b6fbaa2a",
      "parents": [
        "be331a3809b9cf921c6ad65e1d671b24e97dded9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 06 17:30:11 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 13:36:35 2015 -0700"
      },
      "message": "Rewrite glop texture asserts\n\nbug:19641517\n\nAlso switch Glop VertexAttribFlags to use int for group of flags.\n\nChange-Id: Ib7b1934197a62206a55baa6ab484ac59f5bec816\n"
    },
    {
      "commit": "7830c81cd29a35476cae2543fd0e4c8dc3491194",
      "tree": "d735903c53f4cbcdb3509f4737f92a7b0e7d571b",
      "parents": [
        "0e24f143edd81de6ca5a4ed998e26fbb78c5db28",
        "9ad6ac08a95d48772dcaad67a55446299bda77a9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Mar 07 01:13:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 07 01:13:50 2015 +0000"
      },
      "message": "Merge \"Fix unused local variale warning from clang/llvm.\""
    },
    {
      "commit": "9ad6ac08a95d48772dcaad67a55446299bda77a9",
      "tree": "e17fddb19190be24c421c40e650c267e19374581",
      "parents": [
        "eb803aef3b0f55785624e6a51deae867c1a95e88"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Feb 27 16:11:36 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 06 17:07:57 2015 -0800"
      },
      "message": "Fix unused local variale warning from clang/llvm.\n\nChange-Id: Ib9b5d06313e5bf933edfb38a4522929104c7917a\n"
    },
    {
      "commit": "aa35d91905be64ae3468b95d4a177940f935e8e6",
      "tree": "21dcc7f30c18bdf981e0e4d8883878848e1d56ad",
      "parents": [
        "c0a1b7f9a6a496deb68b095d122ca85f22daad98",
        "e70c5754d01f2ab0ff47ea3eabaa88aca5ed2a36"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 06 23:47:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 23:47:26 2015 +0000"
      },
      "message": "Merge \"Add percentiles\""
    },
    {
      "commit": "e70c5754d01f2ab0ff47ea3eabaa88aca5ed2a36",
      "tree": "6bb1f487801fe47250443fdb65a9f82d66264c72",
      "parents": [
        "38d909a57d95d29e6c47f40d360bc10325d7b228"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 06 14:40:50 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 06 15:40:03 2015 -0800"
      },
      "message": "Add percentiles\n\nChange-Id: Ieb6badd177bb6f67dda199dfcb3e0f483c8c4e59\n"
    },
    {
      "commit": "c0bf700441e1b53f1693d7445dc6f9876f5c9b4f",
      "tree": "3c5e3c8d822bec972071064d7804e467f324983f",
      "parents": [
        "1592f98973ffffe828d34d90ddb944947d510eba"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 06 13:48:27 2015 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 06 13:51:04 2015 -0500"
      },
      "message": "SkPorterDuff Multiply mode maps to SkXfermode modulate.\n\nbug:19627342\nChange-Id: I97f26ca1bc8abe2768f4a12cc70fb0fa5d905098\n"
    },
    {
      "commit": "97a351a329dd736628f03e3b4061ac45f5990b0d",
      "tree": "2f9e1bcd5ee24237f7d492a9bd720e7f7830356c",
      "parents": [
        "2d08eaf0341df5d22236baadbcc4341f0e2e7f5e",
        "1c1c3fe9ebde8f911da65d49bdb91af583453dc6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 06 18:44:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 18:44:17 2015 +0000"
      },
      "message": "Merge \"Avoid invalid shader creation for certain blend modes\""
    },
    {
      "commit": "1c1c3fe9ebde8f911da65d49bdb91af583453dc6",
      "tree": "0274326822924171fb9ba26f4515e61bfc733c58",
      "parents": [
        "be331a3809b9cf921c6ad65e1d671b24e97dded9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 06 09:40:35 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 06 10:05:15 2015 -0800"
      },
      "message": "Avoid invalid shader creation for certain blend modes\n\nbug:19627342\n\nChange-Id: I41e3c1ce8e6fa52f046ec492d19de7cab92b9ec5\n"
    },
    {
      "commit": "0313f2680c91985f413675c283805088960b9a54",
      "tree": "d74ca7a64f46dd860e1eb272f548a743a52ee18f",
      "parents": [
        "6fd2b3c63c6330e8c2b0d54cf14fc60a2ec6f6dd"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 05 16:20:35 2015 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 05 16:22:17 2015 -0500"
      },
      "message": "Remove uncessary include for SkPorterDuff.h\n\nChange-Id: Ibcbed5dd2dc327821fc26e87191185f0069c9911\n"
    },
    {
      "commit": "8124e6a98c91bf4191bc65fcdc802a3cf27f4082",
      "tree": "a9e1c5d88573b4c1ce6036bfb506549ab38361e6",
      "parents": [
        "bac61add4f0fa72a3f77d26489d74933bff0cdd4",
        "b1476ae7d515d6c406b4367cfb4ada8ce2d116e1"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Mar 05 15:40:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 05 15:40:46 2015 +0000"
      },
      "message": "Merge \"Fix bug, change crashes to warnings\""
    },
    {
      "commit": "b1476ae7d515d6c406b4367cfb4ada8ce2d116e1",
      "tree": "59b045cf8bd439eeea6148a585722d7333f9719b",
      "parents": [
        "445e1c5ddda15c7118e4b52f9c7a7c77267efb34"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Mar 05 10:30:18 2015 -0500"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Mar 05 10:31:52 2015 -0500"
      },
      "message": "Fix bug, change crashes to warnings\n\nImprove behavior when we get a call to draw 0 points.\nReplace one ALWAYS_FATAL statements with noop.\n\nChange-Id: I864b7a9633dfa3dc6eefa403beca4cc7ae14074f\n"
    },
    {
      "commit": "8820fd1d82acaefda98ae73ccf61413d5044f9f3",
      "tree": "8d4096270a7362947bcbf9daee077b6571d30ffd",
      "parents": [
        "a9761e698e2f1cffbbb4ed99b89eb1100337b496"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 14:20:47 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 04 15:32:47 2015 -0800"
      },
      "message": "Patch cleanup, reenable Patch Glops\n\nbug:19597454\n\nChange-Id: If12b95e83588b81a553210cd8c2437c6c771073a\n"
    },
    {
      "commit": "a9761e698e2f1cffbbb4ed99b89eb1100337b496",
      "tree": "c09666bbe94fb32f29f49910528357ebe4707d03",
      "parents": [
        "9b98afca76592b8a1dc8d17dcaa99166f3658cb8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 04 14:25:09 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 04 14:25:10 2015 -0800"
      },
      "message": "Temporarily disable Patch glops\n\nbug:19597454\n\nChange-Id: I9dbe781a714582717a5585113b9a56821265b36e\n"
    },
    {
      "commit": "9b98afca76592b8a1dc8d17dcaa99166f3658cb8",
      "tree": "63cb12943bb666b37e2f6daeca61ebdd09a2daab",
      "parents": [
        "9c2fc0bd7a8c0444f7b3d4ec2133090b68b48cf8",
        "0556d90253902ae797e4fcea79602a30ff16f82c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 18:12:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 18:12:27 2015 +0000"
      },
      "message": "Merge \"Glop DrawPatch support\""
    },
    {
      "commit": "e2e0073e885136e70c19c30a1fe69ab0fa3c1415",
      "tree": "9a77e234bf90715f049edd9d7e54000a371f8729",
      "parents": [
        "4939e2bf3672a3260354263763a50d5f64758f21",
        "a6b52198b9e73a4b7f80103116feeace74433246"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 18:02:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 18:02:01 2015 +0000"
      },
      "message": "Merge \"Glop drawBitmaps, drawPatches\""
    },
    {
      "commit": "0556d90253902ae797e4fcea79602a30ff16f82c",
      "tree": "ab516c46f81b1ae35a6803435197704e396f304f",
      "parents": [
        "a6b52198b9e73a4b7f80103116feeace74433246"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 09:54:14 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 09:54:14 2015 -0800"
      },
      "message": "Glop DrawPatch support\n\nChange-Id: Icaa78bdb2cf52c1fc2194ec4016634967d17fb6a\n"
    },
    {
      "commit": "a6b52198b9e73a4b7f80103116feeace74433246",
      "tree": "395c33d4ff8e9b54913706987a1a4569f944ea90",
      "parents": [
        "c66f3baa42b8a732952abf1967c68f77d3e26131"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Feb 27 17:43:02 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 03 08:58:14 2015 -0800"
      },
      "message": "Glop drawBitmaps, drawPatches\n\nChange-Id: I3f1cd3f47f97d2e0c9b9d153732e26ee0b1c58c2\n"
    }
  ],
  "next": "e5c6584a402fb3b1fe0507e4e00e601bec8f1bbc"
}
