)]}'
{
  "log": [
    {
      "commit": "bcaaebb8a881951720190f4a6b9ffcbf871542af",
      "tree": "258c9fa9e32da4e7403ea09438ca23cb50845c90",
      "parents": [
        "296a712e6b3fd48b5ace1128fa68547fdb8de84d",
        "715d01aedf7e789a37f7aac8f41827bfddcc0634"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 11 23:21:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 11 23:21:14 2014 +0000"
      },
      "message": "Merge \"Clean up test makefiles.\""
    },
    {
      "commit": "715d01aedf7e789a37f7aac8f41827bfddcc0634",
      "tree": "ed25db7ba2977a255f1b2ac5f41b0f0540830b01",
      "parents": [
        "f4eaaadb8cb0e2ff8d1704827883b5a62173311d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:41:01 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 11 15:49:57 2014 -0700"
      },
      "message": "Clean up test makefiles.\n\nThe build system takes care of linking the correct STL and gtest\nlibraries for you, and specifying them manually confuses the build\nsystem when using libc++.\n\nChange-Id: I9f76ab26a63ace51293614cfb5ca002f37438e02\n"
    },
    {
      "commit": "2ffa4aabd76353a907ee89a3e0c6f1961237f257",
      "tree": "155ccc475b02ef260666cc118fcfd8fc3a2474f7",
      "parents": [
        "5a6934c07946743e622df52ba1155d97129b37f0",
        "f348c15ecf78e9d58b8238ffcf1d78a279e3a862"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 09 04:30:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 09 04:30:35 2014 +0000"
      },
      "message": "Merge \"Use char16_t for char things.\""
    },
    {
      "commit": "be23d47d1c1b8965c038180ce469c1b807cf20ac",
      "tree": "317c3188a367a9444595eed52a3934a895eda371",
      "parents": [
        "f4eaaadb8cb0e2ff8d1704827883b5a62173311d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:38:35 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:38:35 2014 -0700"
      },
      "message": "Make string literal concatenation play nice with C++11.\n\nIn C++11 mode, \"foo\"MACRO_THAT_EXPANDS_TO_STRING gets lexed as a user\ndefined literal. Add space around the macro.\n\nChange-Id: I24fbe1fda483db4a8c606e80dbe17430ad070dc2\n"
    },
    {
      "commit": "f348c15ecf78e9d58b8238ffcf1d78a279e3a862",
      "tree": "fad413b2f2b3d849eaf83e607a8336683adb8b63",
      "parents": [
        "2a1ed46decbc8e21a39367a4b7770111392167c3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:28:00 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:30:08 2014 -0700"
      },
      "message": "Use char16_t for char things.\n\nWhen compiling in C++ mode, the compiler will complain about conversions\nfrom uint16_t to char16_t. Be consistent in using char16_t for strings.\n\nChange-Id: I052b6176ced635162920b31560052d9a64f92764\n"
    },
    {
      "commit": "e2134a4b5dafc37f2de7e9b4190819f24aac207c",
      "tree": "c549a9bc3e49676b74a449d3081cdaec1ff36a5f",
      "parents": [
        "4179e88963456946fe6e580f2211341cc8ccba5c"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Wed Aug 13 07:50:20 2014 +0100"
      },
      "committer": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Fri Aug 15 14:41:08 2014 +0100"
      },
      "message": "Update ziparchive usage to the new API.\n\nBug: 16162465\n\nChange-Id: If3064e2be3e7e85366b07434294a7879b0e5f9bc\n"
    },
    {
      "commit": "1a68b079d714b1de52775e1153359f2867340754",
      "tree": "1f0ff93c4689f72fec09b5975b80c464df25f189",
      "parents": [
        "94f3e47da5acc48b1003b64acdc539cdf6cbe30c"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Fri Aug 08 12:52:39 2014 +0100"
      },
      "committer": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Mon Aug 11 08:20:35 2014 +0100"
      },
      "message": "Remove memory leak.\n\nCall EndIteration in endIteration to free memory allocated for cookie in\nStartIteration.\n\nChange-Id: I3d58a461c2f3676565cfd7922dc6d8d5c35feae9\n"
    },
    {
      "commit": "215ecb93e9ca93a7445f38534b29ac917557f8e1",
      "tree": "f563f610d15063348defa53e72cae9cef0b1e242",
      "parents": [
        "bfb349e2421d5b74701818f6aa486f057b2e5884",
        "c47aba2a775dcbc824f6e0ec7236746d1853126c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Jul 23 00:14:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 22 20:34:45 2014 +0000"
      },
      "message": "Merge \"Restore untrusted glStencilMask value on resume after functor\""
    },
    {
      "commit": "c47aba2a775dcbc824f6e0ec7236746d1853126c",
      "tree": "9cb8e8b31f0ce1df3006c2a430ef25fa72f86c2c",
      "parents": [
        "fc6346d461c9ed9b499643db830885241cc82838"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 22 12:30:39 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Jul 22 23:19:02 2014 +0000"
      },
      "message": "Restore untrusted glStencilMask value on resume after functor\n\nFixes an issue where the stencil buffer is corrupted\n(used in overdraw debugging, path clipping) when used in\nconjunction with a HW accelerated WebView.\n\nbug:15023700\nbug:16465551\n\nChange-Id: If201b503931380f7107a34e9a9a2f877a50f72b1"
    },
    {
      "commit": "50a2d6339c7a6ee121c4aa52afc4cc027913f3fc",
      "tree": "11f1f5773c015ca383d811dfc0f3867afa7bf12f",
      "parents": [
        "fc6346d461c9ed9b499643db830885241cc82838",
        "3a1bffa835f279628e50385af3c85789bc737f64"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Jul 22 19:07:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 22 16:35:00 2014 +0000"
      },
      "message": "Merge \"[HWUI] Fix invisible views are still shown in popup window\""
    },
    {
      "commit": "152d9e61284d31e3b9dfa8dccca3c3c78382035d",
      "tree": "ebe7d863803e2ac2b7e0fe6acb2c70036ad9950f",
      "parents": [
        "2e7b2521f1758bf16935a9a879c595cc44eab37f",
        "20adb6ce4d52b15472e7e5ee953e06cc349a827c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Thu Jul 17 19:28:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 17 18:05:27 2014 +0000"
      },
      "message": "Merge \"[HWUI]: fix residual line on FrameBuffer\""
    },
    {
      "commit": "6a4deeda70698d7574d20a97c746ed2ba52f5b8d",
      "tree": "8a5a645cd3c681fa27835f14a712bac998840867",
      "parents": [
        "92b1896dfd42079c264e68f819273ba71f177fea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:58:28 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:58:28 2014 -0700"
      },
      "message": "Switch frameworks/base/libs/androidfw to the new icu.\n\nChange-Id: Id82830750dd7e83bbc66811a1133b403cc697c97\n"
    },
    {
      "commit": "3a1bffa835f279628e50385af3c85789bc737f64",
      "tree": "0a3830e1ca97f74265b0f6365a6066d228d66519",
      "parents": [
        "1dc550fa7333257a130d71866be37181f8ee553b"
      ],
      "author": {
        "name": "henry.uh_chen",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 18:01:37 2014 +0800"
      },
      "committer": {
        "name": "Chen Henry",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 10:14:15 2014 +0000"
      },
      "message": "[HWUI] Fix invisible views are still shown in popup window\n\nSymptom: Invisible views are still shown in popup window\n\nRoot Cause: glClear isn\u0027t called if there is no draw command\n\nSolution: Even if there is no draw command, it still calls glClear\n          by startFrame().\n\nReproduce steps: App set one view in a popup window to invisible,\n                 it will be still visible.\n\nChange-Id: I36bc7b752434ad388fbb80ea63341ac778f48d35"
    },
    {
      "commit": "20adb6ce4d52b15472e7e5ee953e06cc349a827c",
      "tree": "8078a58d1ce1175995c18253a6d7f6c70bcd94b7",
      "parents": [
        "1dc550fa7333257a130d71866be37181f8ee553b"
      ],
      "author": {
        "name": "henry.uh_chen",
        "email": "henry.uh_chen@htc.com",
        "time": "Wed Jul 02 19:36:56 2014 +0800"
      },
      "committer": {
        "name": "Chen Henry",
        "email": "henry.uh_chen@htc.com",
        "time": "Thu Jul 03 09:58:31 2014 +0000"
      },
      "message": "[HWUI]: fix residual line on FrameBuffer\n\nSymptom: If app applies animation to enlarge a bitmap, there will be an residual\n         line on the screen\n\nRoot Cause: On platform which has Tile Rendering implementation (ex. Qualcomm\n            CPU), startTiling() call will restrict the framebuffer region which\n            GPU can affect. So the expansion of clear region by 1 will not take\n            effect if startTiling region is not expanded.\n\nSolution: Expand the startTiling region by 1, too.\n\nReproduce steps: Apply animation to enlarge (and then shrink) a bitmap icon.\n\nChange-Id: I7b4a59e180daa29dbe909d9e11f4093ae1d7396f"
    },
    {
      "commit": "fec5106c8ea5791614385c17bd1bf0ecff9afe9a",
      "tree": "0363b6f432a15d0f00450c1fff36a5c2bdaa50f4",
      "parents": [
        "358a3f716850e96716b766c63d50d3425a4c9ed7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Jul 05 15:33:28 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jul 07 09:51:01 2014 +0100"
      },
      "message": "Fix issue when converting fil-\u003etl.\n\nWe should call ResourceTable::getLocales directly,\nand not AssetManager::getLocales. The latter will convert\n\"tl\" to \"fil\" so we\u0027ll end up thinking we have resources\nfor \"fil\" when we don\u0027t really have any.\n\nbug: 15873165\n\nChange-Id: I9753e4608aaecede328a40ee1f3ee6b016d0dedc\n"
    },
    {
      "commit": "e4345dbd2a892f38e62269d94e5ee7002d121bed",
      "tree": "02bbd706da907540982427ac29dd0cbd44589782",
      "parents": [
        "104da1e495cbed81e7ebe66b80344bf916b02391"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jun 26 16:01:28 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jul 02 10:53:43 2014 +0100"
      },
      "message": "Fall back to \"tl\" if \"fil\" is absent.\n\nFor JB-MR1, there was a hack that used \"tl\" where\nwe really meant \"fil\" because ICU didn\u0027t have localizations\nfor \"fil\". This has now been fixed, and we now support 3 letter\nlanguage codes for AAPT so we can use \"fil\" where required.\n\nFor the benefit of apps that need to target older platforms,\nwe fall back to \"tl\" if the app has assets for \"tl\" and the\nresource locale is \"fil\".\n\nSee bugs 7291355, 7207176 and 8049507 for more context.\n\nChange-Id: I1ac8502525f99b40f9091d5efd2df33518d47a41\n"
    },
    {
      "commit": "b2975916224caecfc2fbb84e71ebd625ce6eeb1c",
      "tree": "f60365e0cd6f2b4f2b508d2b3ed11099338827d8",
      "parents": [
        "7165bd6d7496159b426f072bdf13adfffc917a24"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 30 15:59:39 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 30 16:20:27 2014 +0100"
      },
      "message": "Fix packing of values at offset 16.\n\nOur bitmask for setting the highest bit to 0 for\n0b11100000 (0xef) instead of 0b01111111 (0x7f) so\nwe would end up setting bit 5 of each offset to\nzero. Fix this and expand test coverage by adding\na fake language (tgp) that has this bit set in both\nits bytes.\n\nThis issue was discovered while adding CTS tests for\n\"tgl\".\n\nChange-Id: Ibb6de03000951c907c252049771039ab7466187a\n"
    },
    {
      "commit": "71dfc7e9accc1ca3cda52bdf475b03fa2a334e78",
      "tree": "4364fd85bd976ee1456792b346069c1a0b889e27",
      "parents": [
        "2a0f9e6a523abc28bdbc249010f5ddd184a27730",
        "5f7ce10c937abf7da6d547ae91bda495dfbc414d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 24 14:16:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 24 06:22:45 2014 +0000"
      },
      "message": "Merge \"Memory leak in parsePackage\""
    },
    {
      "commit": "5f7ce10c937abf7da6d547ae91bda495dfbc414d",
      "tree": "5b3435aca8d2ec60519464a3a99b71dc5d969249",
      "parents": [
        "1a3908e95926acd8add3858be571fe23fa9d047a"
      ],
      "author": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Wed Jun 18 13:34:01 2014 +0200"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Mon Jun 23 14:03:46 2014 +0200"
      },
      "message": "Memory leak in parsePackage\n\nThe method parsePackage failes to delete some resources\nin case of failures.\n\nAdded delete of \"package\" in the cases that was previously\nmissed.\n\nChange-Id: I183e9ec5864c5ed18bb48410ab41317cb3d96bda\n"
    },
    {
      "commit": "4c488cca531f209921cc4dfbc27ff7cdecfda71b",
      "tree": "b4c2e624d7ad237c381fcae2631ff8b9a3e307dd",
      "parents": [
        "0d28bb47d771a2ac99cec6e4a071a98d2cd705dd",
        "7c57d2337150ab52c148d30d9126f3b99ca951b4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 17 18:48:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 17 05:00:50 2014 +0000"
      },
      "message": "Merge \"[Asset Manager] Fix memory leakage bug\""
    },
    {
      "commit": "0d28bb47d771a2ac99cec6e4a071a98d2cd705dd",
      "tree": "9498ed5f334444da66df25d34e47f6c9952eb5df",
      "parents": [
        "5e7ef9489f3247c02395202d88fb4fb425aa8412",
        "4a473c7d9406a2d6f6792f0f48d933424740ec5c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Mon Jun 16 23:37:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 16 22:13:20 2014 +0000"
      },
      "message": "Merge \"Fix the texture ID reuse issue in HWUI.\""
    },
    {
      "commit": "5e7ef9489f3247c02395202d88fb4fb425aa8412",
      "tree": "9142da5de268e9e736b392e6fe1f28582ba2b9a3",
      "parents": [
        "cb634bda7b0130015509b0e4d236d10b20b2340d",
        "1fa4cef34a8ac07e2ef15f2fef3dcfe520848c8d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Mon Jun 16 23:37:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 16 22:13:20 2014 +0000"
      },
      "message": "Merge \"hwui: fix possible null pointer de-refrence\""
    },
    {
      "commit": "7c57d2337150ab52c148d30d9126f3b99ca951b4",
      "tree": "bde900b8b4b57e83b615a12732af5b29dfffc943",
      "parents": [
        "748f4b8d42541955850e76972b1ab3d9c98e226d"
      ],
      "author": {
        "name": "sean_lu",
        "email": "sean_lu@htc.com",
        "time": "Mon Jun 16 15:11:29 2014 +0800"
      },
      "committer": {
        "name": "sean_lu",
        "email": "sean_lu@htc.com",
        "time": "Mon Jun 16 15:11:29 2014 +0800"
      },
      "message": "[Asset Manager] Fix memory leakage bug\n\nSymptom: memory leakage\nRoot Cause: new SortedVector but not free it in native cpp\nSolution: free the SortedVector\nProject: AOSP\nNote:\n\nChange-Id: Iab5a7f2e8d8509631301e7231427927d4797c856\n"
    },
    {
      "commit": "4a473c7d9406a2d6f6792f0f48d933424740ec5c",
      "tree": "dbbeedb8b150c6f5531dd152fcefe10208129167",
      "parents": [
        "1a3908e95926acd8add3858be571fe23fa9d047a"
      ],
      "author": {
        "name": "jiayuanr",
        "email": "jiayuanr@codeaurora.org",
        "time": "Tue Jun 10 17:41:49 2014 +0800"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Mon Jun 16 09:29:22 2014 +0530"
      },
      "message": "Fix the texture ID reuse issue in HWUI.\n\nIssue: When the layer of previous frame is destroyed, it doesn\u0027t clear the\ntexture id in mBoundTextures[mTextureUnit], so in the next frame, if\nglGenTexture returns same texture ID of the previous frame,\nthe new texture is not bound.\n\nCRs-fixed: 671736\n\nChange-Id: Ifc5fd2115fb1863b3c006ab14b0faabeaeb4eab4\n"
    },
    {
      "commit": "1fa4cef34a8ac07e2ef15f2fef3dcfe520848c8d",
      "tree": "a04c06f56688c59682bc753a012ca73d30bbb448",
      "parents": [
        "1a3908e95926acd8add3858be571fe23fa9d047a"
      ],
      "author": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Thu Jun 12 10:42:54 2014 +0530"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Fri Jun 13 17:14:50 2014 +0530"
      },
      "message": "hwui: fix possible null pointer de-refrence\n\nadd layer check for  null before de-refrencing it.\n\nissue link: http://code.google.com/p/android/issues/detail?id\u003d61622\n\nChange-Id: I54fc21ec594effcfb1eededd80dd5b0b52645c4c\n"
    },
    {
      "commit": "c5e0a295418a1fd8c17608041962d70296af6794",
      "tree": "c4d1ecdd18fce61a65f7534dd368856a1872539e",
      "parents": [
        "77d28ca25378530f92d409fbd72a38a1e256b59f"
      ],
      "author": {
        "name": "Lu, Shenghua",
        "email": "shenghua.lu@intel.com",
        "time": "Wed Nov 27 20:16:43 2013 +0800"
      },
      "committer": {
        "name": "Shuo Gao",
        "email": "shuo.gao@intel.com",
        "time": "Fri Jun 13 09:42:33 2014 +0800"
      },
      "message": "update parameters in uploadToTexture() for GLES20\n\nGoogle optimized the uploadToTexture with GLES3.0+,\nThis allows us to upload a sub-rectangle of texture,\nbut this has compliance issue with GLES 2.0.\n\nWith OpenGL ES 2.0 we need to copy the bitmap in a\ntemporary buffer if the stride doesn\u0027t match the width,\nand then upload entire temporary stripes.\n\nChange-Id: I8987cd8347913c61b7fa45bd47be1189aa6bdb05\nSigned-off-by: Shenghua Lu \u003cshenghua.lu@intel.com\u003e\nSigned-off-by: Shuo Gao \u003cshuo.gao@intel.com\u003e\nSigned-off-by: Guobin Zhang\u003cguobin.zhang@intel.com\u003e\n"
    },
    {
      "commit": "4d31c5474bcc4bcc6a6d8dfe232360dad701a3fc",
      "tree": "32dba2b11affd0b49a8ee2876ecd8376199b6ef3",
      "parents": [
        "b9b31f4b8eda123e7b544d1a0fa886576064adca",
        "ce7fa780cdee2730b570cc34066f15c74d44e6ef"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Fri May 30 17:59:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 30 17:59:51 2014 +0000"
      },
      "message": "am ce7fa780: Merge \"Fix a resource race bug in PathCache\"\n\n* commit \u0027ce7fa780cdee2730b570cc34066f15c74d44e6ef\u0027:\n  Fix a resource race bug in PathCache\n"
    },
    {
      "commit": "7061f7d7910fdf1189ea7bf1398f6cf8b9bd0104",
      "tree": "246d80e0c3de4f2c316ef2f18940054d9e2ce194",
      "parents": [
        "9cd3ff7d61ed65e8b815155747e7bbfc99c1e861"
      ],
      "author": {
        "name": "yuyang",
        "email": "yuyang@codeaurora.org",
        "time": "Tue May 27 16:15:02 2014 +0800"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Fri May 30 08:26:37 2014 +0530"
      },
      "message": "Fix a resource race bug in PathCache\n\nWhen enabled defer rendering, it will do precache for DrawPathOp.\nThe paint used for creating PathTask in precache just get the address\nof mFilteredPaint of OpenGLRenderer. So for the following defer\noperation like DrawTextOp has possibility change the mFilteredPaint\nby getPaint while another WorkerThread in PathCache is using the paint\nwhich pointed to the same address of mFilteredPaint to generate bitmap.\nAs a result, it will generate a wrong bitmap for generateTexture in\nPathCache. To fix it, do a copy of paint when creating PathTask.\n\nCRs-Fixed: 664244\n\nChange-Id: I5516f5b143458b88d3573d15b7ebb34f688800c7\n"
    },
    {
      "commit": "00fabcbeb035fb513293ea01d245002f40b3234f",
      "tree": "18d5a94677faf88715fc9a40e1ef270ae04dedca",
      "parents": [
        "7099995be5bfadcb03973d4ae952fd345bae264b",
        "b1708e9b764268a06d91219a5c39ee9efd32ab00"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Mon May 19 19:27:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 19 19:27:52 2014 +0000"
      },
      "message": "am b1708e9b: Merge \"Use alpha channel instead of red in drawCachedGlyphBitmap\"\n\n* commit \u0027b1708e9b764268a06d91219a5c39ee9efd32ab00\u0027:\n  Use alpha channel instead of red in drawCachedGlyphBitmap\n"
    },
    {
      "commit": "c62c1cc17ded117433d23ba5dd6c364b05fbcdbd",
      "tree": "77a4ff0a587caaf8dd612dcf6e642a7e5f25bcf4",
      "parents": [
        "e3e2c471b2504335e99ed15975c3c5c9dfbf2795"
      ],
      "author": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Mon May 12 14:37:04 2014 +0530"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Thu May 15 08:59:22 2014 +0530"
      },
      "message": "Use alpha channel instead of red in drawCachedGlyphBitmap\n\nthe correct value to copy in bitmap is alpha component from\nthe cachebuffer. currently it is offset to red channel if format is\nRGBA which is wrong.\n\nthis is followup fix for https://android-review.googlesource.com/#/c/93943/\n\nChange-Id: I96b5ba35df5ccaef44caf2542d35d6585ba1df80\nSigned-off-by: Digish Pandya \u003cdigishp@codeaurora.org\u003e\n"
    },
    {
      "commit": "7e13d1d4a46a01ebaa412d622ef76d90bd39d12a",
      "tree": "f5a321d52bfe4f5ba35dc842ffb7437cb9366919",
      "parents": [
        "edc31509c2ff8cba86f30c836934d32a3e249dec",
        "f6c9c4204c2f8f86277d081112c9dd863ddaa778"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Fri May 09 21:46:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 09 21:46:43 2014 +0000"
      },
      "message": "am f6c9c420: Merge \"Correct stride for drawing to cached glyph bitmap\"\n\n* commit \u0027f6c9c4204c2f8f86277d081112c9dd863ddaa778\u0027:\n  Correct stride for drawing to cached glyph bitmap\n"
    },
    {
      "commit": "b9312a54e49f2f0e35bf65f91d796eeb3a6084bc",
      "tree": "4ff17549ae22a5d060c61e45d43002dded0b348c",
      "parents": [
        "678f7edd140f3914655bc600d207d3dcb986f881"
      ],
      "author": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Fri May 09 15:05:16 2014 +0530"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Fri May 09 15:05:16 2014 +0530"
      },
      "message": "Correct stride for drawing to cached glyph bitmap\n\nfixes the glyph cachebuffer index to account for pixelbuffer\nformat size.\n\nissue: in launcher home screen create icon group and rename the\ngroup to some text string with emo-icons (smilies). without this\nchange the drop shadows for emo-icons will look bad.\n\nChange-Id: I525a9219d35f4541363fd64e7fc5fd1053269725\nSigned-off-by: Digish Pandya \u003cdigishp@codeaurora.org\u003e\n"
    },
    {
      "commit": "5d8343b8e27e766b5bfaaed2f9b1952c0d15da8d",
      "tree": "816dbac22e571aca6d7feb91a02120b17d056c86",
      "parents": [
        "09446329b1afbbc8b56885e61ed66841b59532b2",
        "a85db5ab785c59726c3644999801e48f449714f3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 05 21:46:48 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 05 21:46:48 2014 +0000"
      },
      "message": "am a85db5ab: Merge \"libhwui: Handle the blurImage() implement once RS::init fail\"\n\n* commit \u0027a85db5ab785c59726c3644999801e48f449714f3\u0027:\n  libhwui: Handle the blurImage() implement once RS::init fail\n"
    },
    {
      "commit": "a85db5ab785c59726c3644999801e48f449714f3",
      "tree": "e1ce9075e5c3b519e5b779c52b81f8a91c740bbe",
      "parents": [
        "52025796cd264fd8ba3851c8e42fd5508366456a",
        "ea42e015277687cef168f960252b9d7596ff1160"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 05 21:44:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 05 21:44:08 2014 +0000"
      },
      "message": "Merge \"libhwui: Handle the blurImage() implement once RS::init fail\""
    },
    {
      "commit": "293513a59d36cd96a3e474dde5981380d372d8c9",
      "tree": "4268c9994be194a7f4fccdecd089af58516d0953",
      "parents": [
        "1866e5dc8bb04b58a67e54f66cb4ec22e878667d",
        "0b62467b142b61ee1e449ba958ba37dfd961ef56"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "message": "Merge commit \u00270b62467b142b61ee1e449ba958ba37dfd961ef56\u0027 into HEAD\n"
    },
    {
      "commit": "ea42e015277687cef168f960252b9d7596ff1160",
      "tree": "268a67e69aa3831d80add968e502eb03fa3d313f",
      "parents": [
        "1e4cad8198056a5e27a7aeb104ceb8ada331eafe"
      ],
      "author": {
        "name": "Lu, Shenghua",
        "email": "shenghua.lu@intel.com",
        "time": "Thu Nov 14 15:52:22 2013 +0800"
      },
      "committer": {
        "name": "Guobin Zhang",
        "email": "guobin.zhang@intel.com",
        "time": "Fri Apr 25 16:11:13 2014 +0800"
      },
      "message": "libhwui: Handle the blurImage() implement once RS::init fail\n\nOnce the RS::init failed, go through the original single thread path,\nthis will avoid blocking the main thread(ANR), but we also should have\nsome implement in RenderScript component.\n\nChange-Id: I3a21395ffd5bc144c15254893f425b1dd2643ba4\nSigned-off-by: Shenghua Lu \u003cshenghua.lu@intel.com\u003e\nSigned-off-by: Shuo Gao \u003cshuo.gao@intel.com\u003e\n"
    },
    {
      "commit": "b386bfd791d77e24bcfe3261420f82b0a9d3851d",
      "tree": "f604f0148de764567de17e332ce0a34eeab7524c",
      "parents": [
        "ea9e5ecac1e5240370f0e3f998b9c8b159ee9320",
        "89dddcc948cb3e826bfddeefae73066849aba0fc"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 20:54:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:54:47 2014 +0000"
      },
      "message": "am 89dddcc9: Merge \"Use default visibility for Snapshot::getLocalClip.\"\n\n* commit \u002789dddcc948cb3e826bfddeefae73066849aba0fc\u0027:\n  Use default visibility for Snapshot::getLocalClip.\n"
    },
    {
      "commit": "65ba94f79d6e737c3e66c09032221999b2eb50d7",
      "tree": "338f21cc886e4c59247682a6a124a7863b02e744",
      "parents": [
        "17b1b8fe8c0c8f05f2077acc82428881bf591a78"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 12:45:57 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 13:26:33 2014 -0700"
      },
      "message": "Use default visibility for Snapshot::getLocalClip.\n\nThe method is in libhwui.so but used by libandroid_runtime.so\n(via android_view_GLES20Canvas.cpp). If the compiler decides not to\ninline this method, the linker won\u0027t be able to resolve the dependency\nwhen it has hidden visibility.\n\nThe problem is found when testing GCC 4.9.\n\nChange-Id: I3b4d096c7767f0bef0796886dfb2c5ba2ecff48c\n"
    },
    {
      "commit": "eaab4df0ddadf313ab6b3c832896003968525091",
      "tree": "c115ced1c65039f3db6c0017d8a3d2b49a58f200",
      "parents": [
        "5b93685af37d840e7ef6d415bcfe8a8a4c004032",
        "cd3f60f30366a34b4499aab5a47b622069ba9cd6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:36:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 27 12:36:10 2014 +0000"
      },
      "message": "am cd3f60f3: Merge \"AArch64: Make frameworks/base code more portable\"\n\n* commit \u0027cd3f60f30366a34b4499aab5a47b622069ba9cd6\u0027:\n  AArch64: Make frameworks/base code more portable\n"
    },
    {
      "commit": "f5df700e6ce056ebfa322314d970e52d6facc35a",
      "tree": "5a3e1f8dc1089601389509f54d2eef98ec2528a8",
      "parents": [
        "57f2764bf104b0fe7b5cd67ad5b2cae9bc8352ed"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Tue Mar 25 20:51:35 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:30:42 2014 +0000"
      },
      "message": "AArch64: Make frameworks/base code more portable\n\nChanges in this patch include\n\n[x] Use %zu for size_t, %zd for ssize_t\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: Id1aaa7894a7d0b85ac7ecd7b2bfd8cc40374261f\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "6fe434a41b378c601189c70cbe209171588d92c4",
      "tree": "fdc1c144e69a14dde6cdc5d89d0f0e75336b8925",
      "parents": [
        "bdaafaf2b59af08d75d86b2e124a866f09683c5b",
        "4118480aabb4a7b332e289ebb71d2e4f9bc05d7e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 20:27:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 20:27:52 2014 +0000"
      },
      "message": "am 4118480a: am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u00274118480aabb4a7b332e289ebb71d2e4f9bc05d7e\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "4118480aabb4a7b332e289ebb71d2e4f9bc05d7e",
      "tree": "8a1efeafedb47d05ddef7a423f3af677db311cab",
      "parents": [
        "c1d863e7a4b55f8e583067eebaffc6686723d7ab",
        "80470cdf6c6995f4afe8d5e2c4b6e898625173fb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 13:21:01 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 13:21:01 2014 -0700"
      },
      "message": "am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u002780470cdf6c6995f4afe8d5e2c4b6e898625173fb\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "6056e1027107aaa15f51a5ed775ff14c6b664ca3",
      "tree": "1337c3e4d996bb3528f9c92531a95ce30fd860c1",
      "parents": [
        "557a93e104f1fec69ed05b2d0ff26c78bca4c5d6"
      ],
      "author": {
        "name": "Jens Gulin",
        "email": "jens.gulin@sonymobile.com",
        "time": "Tue Feb 04 17:38:02 2014 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 25 09:37:02 2014 +0900"
      },
      "message": "Solve three memory leaks related to PatchCache\n\nA Patch can be fairly large, holding bitmap data, but\nis also frequently leaked which adds to the severity.\nThe feature is used in many important processes such\nas Home, SystemUI and Chrome.\n\nThe following leaks are solved:\n\n1. The Patch itself was not always freed.\nPatchCache::removeDeferred() can mark patches to be\ncared for by PatchCache::clearGarbage(). But\nmCache.remove() would only destroy the container\nand the pointer, not the Patch object itself.\n\n2. The vertices stored in the Patch at Patch::createMesh()\nwould always leak. The empty/default destructor in Patch\nwould not properly destroy \"vertices\" since it\u0027s just a\npointer.\n\n3. A BufferBlock that\u0027s added to the mFreeBlocks\nin PatchCache could leak. The leak happened when a\npatch later needed the entire free block, because the\nobject was removed from the list but never deleted\nin PatchCache::setupMesh().\n\nChange-Id: I41e60824479230b67426fc546d3dbff294c8891f\n"
    },
    {
      "commit": "2488727a5955c87d775df23649919af71d064d13",
      "tree": "12bf2a12e4d80db703f334e59a311faee2eb31d6",
      "parents": [
        "4a1bc7dfc1fc13c29e30353e488bd12ee91836cb"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Dec 03 16:26:51 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 20 15:38:46 2014 -0400"
      },
      "message": "Update framework to use M33 Skia. DO NOT MERGE\n\n(These CLs are already in master.)\n\nBug: 13246311\n\nThis cherry-picks 7 CLs:\n\n-----------------------------------------------------------------------\n\nRemove calls to deprecated SkBitmap::setIsOpaque()\n\nsetIsOpaque() has been removed from ToT Skia.\n\nUpdate setters for mIsPremultiplied and hasAlpha to take the\nother into consideration.\n\ncherry-pick from: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a\n\n-----------------------------------------------------------------------\n\nMerge AssetStream with AssetStreamAdaptor.\n\nAdd enums to the constructor for AssetStreamAdaptor to choose the\ndifferent behaviors used by the (former) two different classes.\n\nThe old clients of AssetStream now get the following features of\nAssetStreamAdaptor\n- Debugging statements on error.\n- The stream is an SkStreamRewindable.\n- getLength() returns the correct value, and the old way of getting\n  the length (read(NULL, 0)) is no longer implemented, since it is\n  no longer used.\n- isAtEnd() returns the correct value. ToT Skia makes it pure virtual,\n  so some implementation is necessary.\n\ncherry-pick from: I2a5395914e4f53830aaefee396556459083a1c56\n\n-----------------------------------------------------------------------\n\nDeprecate Android-specific SkPaint functions.\n\nThe following functions were problematic:\n const SkGlyph\u0026 getUnicharMetrics(SkUnichar, const SkMatrix*);\n const SkGlyph\u0026 getGlyphMetrics(uint16_t, const SkMatrix*);\n const void* findImage(const SkGlyph\u0026, const SkMatrix*);\n\nReplacing them with calls through SkGlyphCache solved a nasty crash\nbug, so they have all been deprecated.\n\nBug: 11968757\ncherry-pick from: Id746315d41aec5b211b78b172a883c2061130f08\n\n-----------------------------------------------------------------------\n\npass SkGlyphCache into updateGlyphCache()\n\nDoing so prevents us from double-locking the glyph cache, thereby\neffectively locking ourselves out of reusing work that we\u0027d just done.\n\nBug: 11968757\ncherry-pick from: I5c552f2d0bbe30af2ce9054ba684e7da756a0d89\n\n-----------------------------------------------------------------------\n\nUpdates to the Skia API needed to merge the WebView m33 version of Skia.\n\ncherry-pick from: I0f63b53f2aae58871413b132742fc84138f069a3\n\nBugfix for screenshots (recent apps) due to incorrect rowBytes computation\n\nbug: 12915192\ncherry-pick from: I4d5fe2a2f75baf66099e0970fb646686a1992714\n\n-----------------------------------------------------------------------\n\nFix bug in AndroidPixelRef where we did not store the correct imageInfo for a recycled bitmap.\n\ncherry-pick from: I882483b78886e2f19fa4e43a86e69f5a82b3b7e5\n\n-----------------------------------------------------------------------\n\nChange-Id: Icaf597783da3ffb079ea18badb78fa31403bf8b8\n"
    },
    {
      "commit": "d23d5b192ad718a374efc2cc6460659f3b1edfb9",
      "tree": "f6e91298eb029880ee89097c8724669864a27bba",
      "parents": [
        "dca18258e8f65d2ee1b5d0d4062b40b679006500",
        "7c9bd98a4bb0aa6954d5f612c197d03f309980f0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 15:42:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 15:42:24 2014 +0000"
      },
      "message": "am 7c9bd98a: am 89513ee5: Merge \"Fix projection offset caching - DO NOT MERGE\" into klp-dev\n\n* commit \u00277c9bd98a4bb0aa6954d5f612c197d03f309980f0\u0027:\n  Fix projection offset caching - DO NOT MERGE\n"
    },
    {
      "commit": "5d39a77992ba6573fbc0cd4d85e0390bb5feb637",
      "tree": "88219a1ba621772b5f643c202d48e994040cef97",
      "parents": [
        "f260ed09263d60ff941225e31e22d344afd90c0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 29 13:00:33 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 19 20:09:04 2014 +0000"
      },
      "message": "Fix projection offset caching - DO NOT MERGE\n\nbug:13214038\n\nBecause the caching of projection matrix didn\u0027t account for changes in\nthe offset flag, the flag could be ignored. Now we use both to verify\nthat the cached matrix can be used.\n\nChange-Id: I193b94eaf0b98f046a6484f0866c3d25048653fd\n(cherry picked from commit d04a6b15f74035fd2068f34225825b55e94521f4)"
    },
    {
      "commit": "50fa0bd468c3c5e68fe44afcf930170f9f468355",
      "tree": "0683bcf6ec172796470596c9c59f8143f7220edf",
      "parents": [
        "36a107ddbdf0690905e8e269fad2b036ad254890",
        "9a09a5236529962afbaba9893e5eaf72bd6621b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:47:12 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:47:12 2014 +0000"
      },
      "message": "am 9a09a523: am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u00279a09a5236529962afbaba9893e5eaf72bd6621b4\u0027:\n  androidfw: resolve 64-bit build issues\n"
    },
    {
      "commit": "9a09a5236529962afbaba9893e5eaf72bd6621b4",
      "tree": "8ea4e388110374758b875158339ff0f381e67fb6",
      "parents": [
        "4898892118c00b3de7a9713d38b32c3dcaf00c91",
        "0b472ae13d38dd166a1a35782e028ade85bf2975"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 12:42:15 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 12:42:15 2014 -0700"
      },
      "message": "am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u00270b472ae13d38dd166a1a35782e028ade85bf2975\u0027:\n  androidfw: resolve 64-bit build issues\n"
    },
    {
      "commit": "00adb8685ee996f9d2650d617c8c0e98f13ef406",
      "tree": "b3bd40533e240cd3258de89c9541037c16f9fadd",
      "parents": [
        "7cb1dfe690b2d700ce212712287dfd59c2c8e43f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 11:00:06 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 11:11:14 2014 -0700"
      },
      "message": "androidfw: resolve 64-bit build issues\n\n- uid_t/gid_t cast to unsigned long\n- unused argument warnings\n- tab and space requirements\n\nChange-Id: Ib446d8165b9082be02edb55e6b71fd1a03ea3431\n"
    },
    {
      "commit": "a742ca4017c93c18c421af20651494624469ed78",
      "tree": "5a1be9d9a901af1571286e0230bf0ebdc15f3c49",
      "parents": [
        "2fddd6cd2ec9de6f4a8cbad4738ccc25d475756a",
        "bbf826659e8e5d0be683b2459207c495303d53b6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 11 18:52:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 11 18:52:07 2014 +0000"
      },
      "message": "am bbf82665: am 6e2fb587: Merge \"LP64: Make 9 patches architecture agnostic.\"\n\n* commit \u0027bbf826659e8e5d0be683b2459207c495303d53b6\u0027:\n  LP64: Make 9 patches architecture agnostic.\n"
    },
    {
      "commit": "2d895e6344f7999e98f05652f7679f2d96374b78",
      "tree": "881da04e4767597f6ecbbf99663027669455cf5d",
      "parents": [
        "3489aa9a0da1288ac480fe2db1f7b7fe5ef1ab0e",
        "8fb22ae772fc62a10db6a06f283140d9233e8704"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 11 18:16:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 11 18:16:59 2014 +0000"
      },
      "message": "am 8fb22ae7: am eee2c72f: Merge \"Various format string fixes for 64bit\"\n\n* commit \u00278fb22ae772fc62a10db6a06f283140d9233e8704\u0027:\n  Various format string fixes for 64bit\n"
    },
    {
      "commit": "fa03b57295f7c73372bb62b0a1a3e906c3ee659e",
      "tree": "5611ddcae713f80eb3a3bbb814f68618403ee244",
      "parents": [
        "3ba975e75d1e09142dd6258fb9886d526f5cda69",
        "7b4cce68853d8bcfce2b6bd7f999915063eb56d2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 11 18:08:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 11 18:08:10 2014 +0000"
      },
      "message": "am 7b4cce68: am c3bac8a0: Merge \"Fix graphics corruption caused by HWUI caches\"\n\n* commit \u00277b4cce68853d8bcfce2b6bd7f999915063eb56d2\u0027:\n  Fix graphics corruption caused by HWUI caches\n"
    },
    {
      "commit": "bbf826659e8e5d0be683b2459207c495303d53b6",
      "tree": "f0ff75f83186bb9fdc753eae04b030962d047669",
      "parents": [
        "b94904ab6dfbb9db7e8042f10886042a295857d4",
        "6e2fb587d71631bd29fdb844a6451d68e2144337"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 03:46:07 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 10 03:46:07 2014 -0700"
      },
      "message": "am 6e2fb587: Merge \"LP64: Make 9 patches architecture agnostic.\"\n\n* commit \u00276e2fb587d71631bd29fdb844a6451d68e2144337\u0027:\n  LP64: Make 9 patches architecture agnostic.\n"
    },
    {
      "commit": "6381dd4ff212a95be30d2b445d40ff419ab076b4",
      "tree": "ea96f7e229cafae41f7be46a3cf0345edd2dc869",
      "parents": [
        "3fc3b9fd1bf71351bf1ff2d49d6e10b6acabf068"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 17:12:03 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:00:02 2014 +0000"
      },
      "message": "LP64: Make 9 patches architecture agnostic.\n\nThe Res_png_9patch struct had several pointer members\nwhose size differed between 32 and 64 bit platforms.\n\nThese members have been replaced by uint32_t offsets\nto serialized data. The serialized form for 9patches\nplaces a Res_png_9patch object at the beginning of\nserialized data, followed by int32_t arrays of xDivs,\nyDivs and colors.\n\nNote that these offsets are not strictly required,\nsince they can be computed from the values of numXDivs,\nnumYDivs \u0026 numColors, however they are called in tight\nloops so having them computed once is a beneficial.\n\nThis change also removed the unused patch_equals function\nfrom aapt\u0027s Image.cpp.\n\nChange-Id: I3b9ac8ae5c05510d41377cae4dff1c69b40c2531\n"
    },
    {
      "commit": "126fbb6ec902a135173aabbddedf19a7717ea768",
      "tree": "747058595b3e23c1d202f32efc9deceba5fbf101",
      "parents": [
        "b2235d5db74e26d6f3695eac672096d2cf430ade",
        "192563407964926537d688d4098054c3834341c0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Mar 08 01:51:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 08 01:51:21 2014 +0000"
      },
      "message": "am 19256340: am 22c66639: Merge \"Fixes for 64bit in libhwui\"\n\n* commit \u0027192563407964926537d688d4098054c3834341c0\u0027:\n  Fixes for 64bit in libhwui\n"
    },
    {
      "commit": "cde786835676f14c4d24cc4769a2de7ead853c5c",
      "tree": "c6fe4307c7abbbbcd70c9bf40125f5b2df06e7c2",
      "parents": [
        "75e20ed78cfa192cd8e7cc4e58b199eae8c876cf",
        "b152473f46d8176e7eb2c55b54342a7a29c525cf"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 19:41:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 07 19:41:24 2014 +0000"
      },
      "message": "am b152473f: am 9fce8535: Merge \"AArch64: Make AssetAtlasService 64-bit compatible\"\n\n* commit \u0027b152473f46d8176e7eb2c55b54342a7a29c525cf\u0027:\n  AArch64: Make AssetAtlasService 64-bit compatible\n"
    },
    {
      "commit": "75e20ed78cfa192cd8e7cc4e58b199eae8c876cf",
      "tree": "3afb3418140f445351c6e2a67576d71b7d49f1d5",
      "parents": [
        "81f6bccae1ac7f483356dd2083498298c2f4a05e",
        "128599e4496bd7ceb9d70f4addde0eba65103709"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 19:41:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 07 19:41:21 2014 +0000"
      },
      "message": "am 128599e4: am 2b3c14bf: Merge \"libandroidfw: fix build error for 64-bit\"\n\n* commit \u0027128599e4496bd7ceb9d70f4addde0eba65103709\u0027:\n  libandroidfw: fix build error for 64-bit\n"
    },
    {
      "commit": "d5b9bcb60d7d20e3e32edcef7d9b235e0ccccf82",
      "tree": "8943af3865523559f65eeb676eb57d80aecc92d8",
      "parents": [
        "f214b4cccba33d66cf52e1896a09e57704c4dae1",
        "28879bbfe89dc4bf2067a7183975ecffb82f68e6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 19:39:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 07 19:39:13 2014 +0000"
      },
      "message": "am 28879bbf: am be57fca4: Merge \"Extended locales in AAPT / AssetManager.\"\n\n* commit \u002728879bbfe89dc4bf2067a7183975ecffb82f68e6\u0027:\n  Extended locales in AAPT / AssetManager.\n"
    },
    {
      "commit": "f214b4cccba33d66cf52e1896a09e57704c4dae1",
      "tree": "5b7993c68ab6d681c01d75c08d502722f7a8d1df",
      "parents": [
        "8829fc06ca41036ec61a7161c7359fdb03ff1651",
        "183e5e038bd844ac415b14f22df5c476732066c8"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 19:39:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 07 19:39:09 2014 +0000"
      },
      "message": "am 183e5e03: am 49024bac: Merge \"AssetManager support for 3 letter lang/country codes.\"\n\n* commit \u0027183e5e038bd844ac415b14f22df5c476732066c8\u0027:\n  AssetManager support for 3 letter lang/country codes.\n"
    },
    {
      "commit": "42ae4cf2ce5ba02c2211813452badc07eab33735",
      "tree": "19f59abb78c92ba4acbcd9db92670cec0e8a6a70",
      "parents": [
        "4ee594e30529b0e4a89c829488dce4d58457c371",
        "e648c19bf33ce78b3f67b7ffd95c92fd6996c418"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 07 18:26:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 18:26:19 2014 +0000"
      },
      "message": "Merge \"resolved conflicts for merge of 8d3281f5 to klp-dev-plus-aosp\" into klp-dev-plus-aosp"
    },
    {
      "commit": "e648c19bf33ce78b3f67b7ffd95c92fd6996c418",
      "tree": "0f6ac2a09992d7492e80ac83e99ff25ed47bba72",
      "parents": [
        "ad7c2c2d8d8fa38d56a61aedb4ce158cb69a2d01",
        "8d3281f5f7a880b996e50d291ebb7154a486eb6c"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 06 20:06:08 2014 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 06 20:10:19 2014 -0500"
      },
      "message": "resolved conflicts for merge of 8d3281f5 to klp-dev-plus-aosp\n\nChange-Id: If2855ff4f7a1e7645c69af378955868f44187376\n"
    },
    {
      "commit": "5e49b497ae2019586937aae0e8159292363728b5",
      "tree": "349e75a3f541a96fa080e1724e368e0e1a21e046",
      "parents": [
        "77a60f006f8b7260207043529d3ed004db301bd5"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Dec 03 16:26:51 2013 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 06 12:14:47 2014 -0500"
      },
      "message": "Update framework to use M33 Skia. DO NOT MERGE\n\n(These CLs are already in master.)\n\nBug: 13246311\n\nThis cherry-picks 7 CLs:\n\n-----------------------------------------------------------------------\n\nRemove calls to deprecated SkBitmap::setIsOpaque()\n\nsetIsOpaque() has been removed from ToT Skia.\n\nUpdate setters for mIsPremultiplied and hasAlpha to take the\nother into consideration.\n\ncherry-pick from: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a\n\n-----------------------------------------------------------------------\n\nMerge AssetStream with AssetStreamAdaptor.\n\nAdd enums to the constructor for AssetStreamAdaptor to choose the\ndifferent behaviors used by the (former) two different classes.\n\nThe old clients of AssetStream now get the following features of\nAssetStreamAdaptor\n- Debugging statements on error.\n- The stream is an SkStreamRewindable.\n- getLength() returns the correct value, and the old way of getting\n  the length (read(NULL, 0)) is no longer implemented, since it is\n  no longer used.\n- isAtEnd() returns the correct value. ToT Skia makes it pure virtual,\n  so some implementation is necessary.\n\ncherry-pick from: I2a5395914e4f53830aaefee396556459083a1c56\n\n-----------------------------------------------------------------------\n\nDeprecate Android-specific SkPaint functions.\n\nThe following functions were problematic:\n const SkGlyph\u0026 getUnicharMetrics(SkUnichar, const SkMatrix*);\n const SkGlyph\u0026 getGlyphMetrics(uint16_t, const SkMatrix*);\n const void* findImage(const SkGlyph\u0026, const SkMatrix*);\n\nReplacing them with calls through SkGlyphCache solved a nasty crash\nbug, so they have all been deprecated.\n\nBug: 11968757\ncherry-pick from: Id746315d41aec5b211b78b172a883c2061130f08\n\n-----------------------------------------------------------------------\n\npass SkGlyphCache into updateGlyphCache()\n\nDoing so prevents us from double-locking the glyph cache, thereby\neffectively locking ourselves out of reusing work that we\u0027d just done.\n\nBug: 11968757\ncherry-pick from: I5c552f2d0bbe30af2ce9054ba684e7da756a0d89\n\n-----------------------------------------------------------------------\n\nUpdates to the Skia API needed to merge the WebView m33 version of Skia.\n\ncherry-pick from: I0f63b53f2aae58871413b132742fc84138f069a3\n\nBugfix for screenshots (recent apps) due to incorrect rowBytes computation\n\nbug: 12915192\ncherry-pick from: I4d5fe2a2f75baf66099e0970fb646686a1992714\n\n-----------------------------------------------------------------------\n\nFix bug in AndroidPixelRef where we did not store the correct imageInfo for a recycled bitmap.\n\ncherry-pick from: I882483b78886e2f19fa4e43a86e69f5a82b3b7e5\n\n-----------------------------------------------------------------------\n\nChange-Id: Ie2b731a9f0795802418cfecddb4b684c92c64d33\n"
    },
    {
      "commit": "8fb22ae772fc62a10db6a06f283140d9233e8704",
      "tree": "69bfd10565bbf4f9bf5fc43c1e15d4a31483a893",
      "parents": [
        "d138029d92e1d4657815747f30004323061d34de",
        "eee2c72f96cd4e6228c50c8b461b4dd84a9f4538"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 05:45:01 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 28 05:45:01 2014 -0800"
      },
      "message": "am eee2c72f: Merge \"Various format string fixes for 64bit\"\n\n* commit \u0027eee2c72f96cd4e6228c50c8b461b4dd84a9f4538\u0027:\n  Various format string fixes for 64bit\n"
    },
    {
      "commit": "eee2c72f96cd4e6228c50c8b461b4dd84a9f4538",
      "tree": "69cc9fe1e287449039066a3ad338a4d6eb263fdc",
      "parents": [
        "14420e29abc0f16f818ddaf606515861ba69ae68",
        "95ece35c2f8b86203e88b49d67cef8e80e107a2b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 13:41:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 28 13:41:58 2014 +0000"
      },
      "message": "Merge \"Various format string fixes for 64bit\""
    },
    {
      "commit": "2c42b79c6ce5a1229e7f6cccb4b39b54435737c8",
      "tree": "f0b38647989a1d47e98282abbbb6ddb2b5beb6f9",
      "parents": [
        "36fad8f6fcfbc2087b910600ed5a6f9741177d00"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 26 10:44:33 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 26 10:44:50 2014 -0800"
      },
      "message": "Fix AOSP build - DO NOT MERGE\n\nChange-Id: I42b420c2ce89ce364a2809b28b827964e6923fa1\n"
    },
    {
      "commit": "36fad8f6fcfbc2087b910600ed5a6f9741177d00",
      "tree": "65bd93bc54c55941cd409d68c8273cd8eb6bc165",
      "parents": [
        "2ba70fd49bfcbb516e75c198c106764609335feb"
      ],
      "author": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Thu Jan 09 14:11:57 2014 +0900"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 26 10:43:26 2014 -0800"
      },
      "message": "Fix graphics corruption caused by HWUI caches\n\nSome caches(PatchCache, TextureCache, PathCache) for HWUI\nuses deferred removal for their cache entries even though\nactual resource objects are immediately freed by\nResourceCache.\nFor this reason, the uniqueness of a resource address in\nthe caches is not guaranteed in specific cases.\n(Because malloc() can return the same address when malloc()\nand free() called very frequently.)\n\nSo it can be possible the cache have two cache entries for\ntwo different resources but the same memory address.\n(Of course one of the resources is already freed.)\nIt also can be possible mGarbage vector in PatchCache has\nduplicated addresses and this can lead to duplicated free\nblocks in the free block list and graphics corruption.\n(Deferred removal was implmeneted based on an assumption of\nunique resource addresses.)\n\nSo this patch makes sure resource objects are freed after\nthe resources are removed from the caches to guarantee\nthe uniqueness of a resource address and prevent graphics\ncorruption.\n\nChange-Id: I040f033a4fc783d2c4bc04b113589657c36fb15b\nSigned-off-by: Sangkyu Lee \u003csk82.lee@lge.com\u003e\n"
    },
    {
      "commit": "95ece35c2f8b86203e88b49d67cef8e80e107a2b",
      "tree": "643c6b184d6c02ae5ff36af5207cfc15d4ee3be1",
      "parents": [
        "bbfc08b3abc0934f67659f3238eb79dcac838c17"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Thu Feb 13 11:02:27 2014 +0000"
      },
      "committer": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 24 17:39:46 2014 +0000"
      },
      "message": "Various format string fixes for 64bit\n\nChange-Id: I74532a4e0400033f5ee3e3f6827ac42f77d16f53\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "22c66639093a634b5688372d261d003b0478c450",
      "tree": "bb7a2e55ec9588e0dce75d372198182b4f0eb497",
      "parents": [
        "05cebdc2abd05b0dca351306cb039245d50c67ae",
        "73fc558e44be259c0833c8c8074ad2333bcb378d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 21 14:23:57 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 21 14:23:57 2014 +0000"
      },
      "message": "Merge \"Fixes for 64bit in libhwui\""
    },
    {
      "commit": "73fc558e44be259c0833c8c8074ad2333bcb378d",
      "tree": "7fcfe431026c8967e6f6839b9aaf876012ab825b",
      "parents": [
        "16ea3e6a5b37dc436d1089996004bcae12f5e3b0"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Thu Feb 13 11:03:40 2014 +0000"
      },
      "committer": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Fri Feb 21 13:07:29 2014 +0000"
      },
      "message": "Fixes for 64bit in libhwui\n\nUsing reinterpret_cast allows conversions between pointer types\nand integers which don\u0027t have the same size. The corresponding\nflags is -Wint-to-pointer-cast.\n\nChange-Id: I8ff0c79d235fa6d07b8d9305edc185d946d5133d\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "4de3f481bc59ab4b766dc027e41aff7cda9d62f7",
      "tree": "49232000eaf4d8686816ed7211b351e976ad4950",
      "parents": [
        "2b3c14bf75c71524a0fcbc3e9d1fdab9aa6c3473"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Jan 27 16:00:23 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 12:10:24 2014 +0000"
      },
      "message": "AArch64: Make AssetAtlasService 64-bit compatible\n\nChanges in this patch include\n\n[x] Long(64-bit) is used to store native pointers in\n    AssetAtlasService and related classes as they can be 64-bit.\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: Ib4c77c134e3ad5b21732e20cde9a54a0b16bdab1\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "443dd9313f06ec61abc9fee908f6e693d1091590",
      "tree": "ed5a2ff68a63ec8827d19dfdddb46d8d5fad0796",
      "parents": [
        "60097a9c5a7214cb73d0bc966adef767743f8798"
      ],
      "author": {
        "name": "Patrik Bannura",
        "email": "patrik.bannura@sonymobile.com",
        "time": "Wed Feb 12 13:38:54 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 10:06:23 2014 +0000"
      },
      "message": "libandroidfw: fix build error for 64-bit\n\nFixed casting int to pointer in logging code.\nPreviously ints where printed as pointers and\nthe %p format specifier was used for convenience\nto get hex output. This change uses %x and also\ngets rid of the casts.\n\nChange-Id: Ia2539769d245f50c0f3884119f80682defe69d61\n"
    },
    {
      "commit": "788fa41482b9d398591b7db8b0b01839029611ad",
      "tree": "ab94d4040351d79cca717a8b7e21fc6be5d0fcb5",
      "parents": [
        "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:57 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\n(cherry-picked from commit 91447d88f2bdf9c2bf8d1a53570efef6172fba74)\n\nChange-Id: I1b43086860661012f949fb8e5deb7df44519b854\n"
    },
    {
      "commit": "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2",
      "tree": "f3cb2956e73be5cddeef2792622d52a638f643a7",
      "parents": [
        "24d8fa739b7ca0791174af260ed95cdc139e0903"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 20 13:57:11 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:23 2014 +0000"
      },
      "message": "AssetManager support for 3 letter lang/country codes.\n\n- 3 letter codes are packed into the existing 32 bit locale\n  field in ResTable_config\n- We introduce new fields for script / variant information.\n\nNote that we define a \"match\" between two ResTable_config\nstructures to be purely on the basis of their language \u0026\ncountry (disregarding the script and the variant). However,\nconfigs with scripts and variants are considered to be more\nspecific than those without.\n\n(cherry picked from commit 378c6775a62d9c461cde51f06c1b14bb014c78fd)\n\nChange-Id: I7dce82a3fe2412834252723f458826ae41535a78\n"
    },
    {
      "commit": "ecbeae74f299f44f9ec4c79ddd885e999d4e1b64",
      "tree": "060184a770f7410ef85c57416bb2422f0abea051",
      "parents": [
        "89492190b39e301d8203d0a9a9f6b11120c16ecb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:02:06 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 11 18:02:06 2014 -0800"
      },
      "message": "Use size_t* in AssetManager::createIdmap\n\nResTable::createIdmap takes a size_t*, and the idmap command is\npassing in a size_t*, make AssetManager::createIdmap take a\nsize_t*.  Should fix the mac build.\n\nChange-Id: Idc16dedfe2aa7367c75f89a937a8242d494e8f8e\n"
    },
    {
      "commit": "67754d93c4bfb2da1831b1dd2b40c12a838b1028",
      "tree": "8ea3d4f1c262d60d848d2d986972ea8c86d83b5b",
      "parents": [
        "578087e39845a0c9a728ba18963f498d1f69b279",
        "48d22323ce39f9aab003dce74456889b6414af55"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Feb 11 21:29:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 11 21:29:58 2014 +0000"
      },
      "message": "Merge \"Runtime resource overlay, iteration 2\""
    },
    {
      "commit": "578087e39845a0c9a728ba18963f498d1f69b279",
      "tree": "bbe22fa48925693b2e2172860162f12dfd5b2cc1",
      "parents": [
        "3aeb629d8251699237e3d067be4fb44ba206626c",
        "65a05fd56dbc9fd9c2511a97f49c445a748fb3c5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Feb 11 20:30:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 11 20:30:08 2014 +0000"
      },
      "message": "Merge \"New command line tool \u0027idmap\u0027\""
    },
    {
      "commit": "e9bea2a18201d079831750865ab1d013528d862a",
      "tree": "3ce8760b0c6265626964bbf3621d782947f01db3",
      "parents": [
        "449273e2d575041ffe1a5d435666d36923de888b"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Fri Feb 07 16:31:41 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Fri Feb 07 19:10:04 2014 +0000"
      },
      "message": "Fix TinyHashMap to use generic hash_type instead of hash_t\n\nTinyHashMap used hash_t(key) to generate hashcode. This\nwould not work for 64-bit pointers as hash_t is declared as\nan uint32_t.\n\nReplaced the hash_t(key) call to more generic android::hash_type(key).\nThis function is a template function declared in TypeHelpers.h and\nhas a version available for all data types including pointers.\n\nChange-Id: I612cf18b49ca7c30b63f9d6938df68fed7d80d08\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "449273e2d575041ffe1a5d435666d36923de888b",
      "tree": "0fe962b748ae075edc30bd9cce3210a0f3a50bbb",
      "parents": [
        "bc80e40b160596c262fee0ee4df4b9f15cc14e89",
        "3ed192760314dc976cd02f62ac49798daa89b4b1"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Feb 05 21:36:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 05 21:36:42 2014 +0000"
      },
      "message": "Merge \"Fix for positioning of glyphs within a bitmap\""
    },
    {
      "commit": "48d22323ce39f9aab003dce74456889b6414af55",
      "tree": "510aa964078d251874e2c0e7c8556f237b5710c4",
      "parents": [
        "65a05fd56dbc9fd9c2511a97f49c445a748fb3c5"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Fri Jan 31 14:43:27 2014 +0100"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Mon Feb 03 11:20:30 2014 +0100"
      },
      "message": "Runtime resource overlay, iteration 2\n\nSupport any number of overlay packages. Support any target package.\n\nUPDATED PACKAGE MATCHING\n------------------------\nIn Runtime resource overlay, iteration 1, only a single overlay package\nwas considered. Package matching was based on file paths:\n/vendor/overlay/system/framework-res.apk corresponded to\n/system/framework-res.apk. Introduce a more flexible matching scheme\nwhere any package is an overlay package if its manifest includes\n\n    \u003coverlay targetPackage\u003d\"com.target.package\"/\u003e\n\nFor security reasons, an overlay package must fulfill certain criteria\nto take effect: see below.\n\nTHE IDMAP TOOL AND IDMAP FILES\n------------------------------\nIdmap files are created by the \u0027idmap\u0027 binary; idmap files must be\npresent when loading packages. For the Android system, Zygote calls\n\u0027idmap\u0027 as part of the resource pre-loading. For application packages,\n\u0027idmap\u0027 is invoked via \u0027installd\u0027 during package installation (similar\nto \u0027dexopt\u0027).\n\nUPDATED FLOW\n------------\nThe following is an outline of the start-up sequences for the Android\nsystem and Android apps. Steps marked with \u0027+\u0027 are introduced by this\ncommit.\n\nZygote initialization\n   Initial AssetManager object created\n+    idmap --scan creates idmaps for overlays targeting \u0027android\u0027, \\\n           stores list of overlays in /data/resource-cache/overlays.list\n   AssetManager caches framework-res.apk\n+  AssetManager caches overlay packages listed in overlays.list\n\nAndroid boot\n   New AssetManager\u0027s ResTable acquired\n     AssetManager re-uses cached framework-res.apk\n+    AssetManager re-uses cached \u0027android\u0027 overlays (if any)\n\nApp boot\n   ActivityThread prepares AssetManager to load app.apk\n+  ActivityThread prepares AssetManager to load app overlays (if any)\n   New AssetManager\u0027s ResTable acquired as per Android boot\n\nSECURITY\n--------\nOverlay packages are required to be pre-loaded (in /vendor/overlay).\nThese packages are trusted by definition. A future iteration of runtime\nresource overlay may add support for downloaded overlays, which would\nlikely require target and overlay signatures match for the overlay to\nbe trusted.\n\nLOOKUP PRIORITY\n---------------\nDuring resource lookup, packages are sequentially queried to provide a\nbest match, given the constraints of the current configuration. If any\npackage provide a better match than what has been found so far, it\nreplaces the previous match. The target package is always queried last.\n\nWhen loading a package with more than one overlay, the order in which\nthe overlays are added become significant if several packages overlay\nthe same resource.\n\nHad downloaded overlays been supported, the install time could have been\nused to determine the load order. Regardless, for pre-installed\noverlays, the install time is randomly determined by the order in which\nthe Package Manager locates the packages during initial boot. To support\na well-defined order, pre-installed overlay packages are expected to\ndefine an additional \u0027priority\u0027 attribute in their \u003coverlay\u003e tags:\n\n    \u003coverlay targetPackage\u003d\"com.target.package\" priority\u003d\"1234\"/\u003e\n\nPre-installed overlays are loaded in order of their priority attributes,\nsorted in ascending order.\n\nAssigning the same priority to several overlays targeting the same base\npackage leads to undefined behaviour. It is the responsibility of the\nvendor to avoid this.\n\nThe following example shows the ResTable and PackageGroups after loading\nan application and two overlays. The resource lookup framework will\nquery the packages in the order C, B, A.\n\n        +------+------+-     -+------+------+\n        | 0x01 |      |  ...  |      | 0x7f |\n        +------+------+-     -+------+------+\n            |                           |\n        \"android\"                Target package A\n                                        |\n                       Pre-installed overlay B (priority 1)\n                                        |\n                       Pre-installed overlay C (priority 2)\n\nChange-Id: If49c963149369b1957f7d2303b3dd27f669ed24e\n"
    },
    {
      "commit": "65a05fd56dbc9fd9c2511a97f49c445a748fb3c5",
      "tree": "f832a1d344dc2102ebbf247a46dcd2839761161a",
      "parents": [
        "c064a1b5d9a68bb5513e6ed64a067ab822e98764"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Fri Jan 31 14:01:52 2014 +0100"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Mon Feb 03 09:47:16 2014 +0100"
      },
      "message": "New command line tool \u0027idmap\u0027\n\nIntroduce a new tool \u0027idmap\u0027 to handle generation and verification of\nidmap files. The tool is modelled on \u0027dexopt\u0027, and is intended to be\nused similarly, notably by \u0027installd\u0027.\nSee cmds/idmap/idmap.cpp for further documentation on \u0027idmap\u0027.\n\nNote: this commit is interdependent on a commit in project build/ to add\n\u0027idmap\u0027 to PRODUCT_PACKAGES.\n\nNote: the changes to androidfw are only stubs. The actual implementation\nwill be provided in Runtime resource overlay, iteration 2.\n\nChange-Id: I7131b74ece1e46c8a9c0a31d103e686aa07da2bb\n"
    },
    {
      "commit": "7c4887f66bfa3dad16f8b03dc825ade96d7de130",
      "tree": "9ed404cd4e19d5a28b75fe132fae66bce4550276",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 13:47:27 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\n(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)\n\nChange-Id: I874c5d03c134dc3c331fba423b5280366296287c\n"
    },
    {
      "commit": "745d4efc8369d255341d810790132660e33d3b61",
      "tree": "f28ae30721d932409fd8189ac6ef5c0289d106c2",
      "parents": [
        "9fc157a4767f54d1cff53dc9489638b67aec2da3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:17:22 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 11:20:24 2014 +0000"
      },
      "message": "AssetManager cookies should be int32_t and not void*.\n\nCookies are really indices into vectors and arrays, so\nthey don\u0027t need to be void*. We choose int32_t instead\nof size_t to allow their width to be well specified.\n\n(cherry picked from commit ebfdd0f467e39c3af8d92cade78263935340acb7)\n(cherry picked from commit a7fa2e592e2e579e5acdb903dba83fc074ebc215)\n(cherry picked from commit a9d5701b034ed2d9771b3f0943e1add00741d7cd)\n\nChange-Id: I2aed3db568b6fdc487bf99e2c5dd123206736fda\n"
    },
    {
      "commit": "3ed192760314dc976cd02f62ac49798daa89b4b1",
      "tree": "d1c1e5797f4dad52e2369afe6a27b3033609747e",
      "parents": [
        "c9a60b0f77525244ac4f970258703b8dc62ee140"
      ],
      "author": {
        "name": "Alexander Toresson",
        "email": "alexander.toresson@sonymobile.com",
        "time": "Wed Aug 28 16:13:06 2013 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Thu Jan 23 13:31:15 2014 +0100"
      },
      "message": "Fix for positioning of glyphs within a bitmap\n\nFor positioning of glyphs within a bitmap, roundf(int + float) is used,\nwhere the float is the glyph position and the int is the text position.\nWhen the text position is varied, this may lead to the sum being rounded\nin different directions, due to floating point rounding, caused by that\nfloating point numbers have different precision in different ranges.\n\nThis may therefore lead to slightly different positioning for glyphs and\ntherefore slightly different widths and heights for text strings,\ndepending on the position they are rendered at.\n\nThe solution in this patch is to use int + (int) roundf(float), which\nhas consistent rounding, and also enables us to use the full range of\nints.\n\nChange-Id: Id1143cdfcbdfa9915ced878ae04df589a3e03cee\n"
    },
    {
      "commit": "920287399aa640a5352e02ab19fd23b67a8c975b",
      "tree": "749dca1256860289c961917e3166761955679f0e",
      "parents": [
        "486544f763bd27eb92c95101e23f939c79c9890e"
      ],
      "author": {
        "name": "lina.x.pi",
        "email": "lina.x.pi@sonymobile.com",
        "time": "Thu Jan 09 18:17:03 2014 +0800"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Fri Jan 17 13:49:26 2014 +0900"
      },
      "message": "Initialize pointer members to NULL to avoid illegal reference\n\nmBitmap and mTexture is not initialized to NULL which causes\nillegal address access when it fails to be created from\noversized bitmap.\n\nChange-Id: Iea54bec8788bc5f3a10040fdb43f416c0d41a14c\n"
    },
    {
      "commit": "804ff38bff2fbb0ee258b13b4bb66eb33d565724",
      "tree": "fcd1e61dc3c3ef0c59c5a4b9c59ef0d91a35122e",
      "parents": [
        "7f8c70a1a48df91ee5541b03dc380c08ab6ebf42"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Dec 13 12:57:36 2013 -0800"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Dec 18 17:04:04 2013 -0800"
      },
      "message": "Handle user-defined cache path for RS.\n\nChange-Id: I92e3346dca331ae6a9dfbe4f95292bc604dfd196\n"
    },
    {
      "commit": "070274ec0ccb8643c52e41e4119f356f0f51bc36",
      "tree": "18eb61af1da9cc0b4a7440c41f8aef730db48d6a",
      "parents": [
        "d21752dff45c7d8856e63026cfddc303a302df14"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 16:48:07 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Dec 11 16:48:07 2013 +0000"
      },
      "message": "Add libutils dependency for libandroidfw host build.\n\nChange-Id: I7fe0bb466f0b1cdbfef8934da2231ad20f05b648\n"
    },
    {
      "commit": "afd31e08299008fdc5c2813f21b2573f29dc53df",
      "tree": "7f83dd8f1e7ed71d4fe8ce280841e43ce275ac6d",
      "parents": [
        "6e2d0c1d91f644ab50e0c0b7cae4306262a4ca41"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 03 13:16:03 2013 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 09 16:23:16 2013 +0000"
      },
      "message": "Reimplement ZipFileRO in terms of libziparchive.\n\nThis lets us share zip archive processing code with both\nthe runtime (Art, dalvik) and critical java code\n(StrictJarFile).\n\nThis change also moves several utility methods to ZipUtils\nand dedups code across several zip inflation methods.\n\nOne of the side effects of this change is that several\nprocessing loops are now O(n) instead of O(n^2).\n\nbug: 10193060\n\nChange-Id: I3c7188496837a47246c4f342e45485a70fef3169\n"
    },
    {
      "commit": "dbccd44a638ae8705a5b14bff8b2dd74abc26045",
      "tree": "14bfabaf3f3c7be86dfc064e919e00433a0cf2bb",
      "parents": [
        "ecfae4f899873f224e1aeed076dc8a41f8884487",
        "b873a17ce7be0a9771c24999adca6964431728f6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "message": "Merge commit \u0027b873a17ce7be0a9771c24999adca6964431728f6\u0027 into HEAD\n\nChange-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd\n"
    },
    {
      "commit": "a5ff739d3c9e15d07f1d5c644b4f11205cdac0e8",
      "tree": "ee98034d893f195d9f692735e75ee22a816601da",
      "parents": [
        "1f8350935caa6a44ef2608e34d4e3a91db4424a7"
      ],
      "author": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Mon Nov 04 06:30:25 2013 +0530"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Tue Nov 05 09:22:37 2013 +0530"
      },
      "message": "Update the layer\u0027s alpha value upon composition of the layer\n\nFixes: This patch makes sure that the layer\u0027s alpha value is\nup-to-date and does not reflect the previous view\u0027s alpha value.\nit fixes the square block on marquee fading edge when text view\nis applied transparency.\n\nChange-Id: I110649db72a75fecc02ba56c201a05773f80328c\n"
    },
    {
      "commit": "c367d48c55e5a3fa0df14fd62889e4bb6b63cb01",
      "tree": "cc6a7e56e5c5e74d66603c8170660fd99c52bff3",
      "parents": [
        "b4cae4a955ebd91cf35aaeb00ab12ce6f1d5fc48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "message": "Fix a variety of small publicly-reported bugs.\n\nPossible NULL dereference in cmds/bootanimation/BootAnimation.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61556\n\nMissing fclose in core/jni/android_os_Debug.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61546\n\nBad loop guards in core/jni/android_util_Process.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61557\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I5820f3824e72d07a9acb776cf0af3e7443f5694a\n"
    },
    {
      "commit": "318ae7bb92869d99a05388c598ad105e7aa4cdbd",
      "tree": "45220c2560535adb2b4c4dc81470ce7c20347d27",
      "parents": [
        "8e4b16d67851ad5eb91c82955b3c3d59f0770b6b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 24 18:44:54 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 25 22:31:31 2013 +0000"
      },
      "message": "Take SkBitmap\u0027s stride into account when uploading textures\nBug #10151807\n\nChange-Id: I7ba4804fa3619088fea70eb55f10519fff0bf5f0"
    },
    {
      "commit": "d8a84a8609951826135a2e41a1cdd6b7cf680e27",
      "tree": "ff834471858d179000e18c12dcd5cd1c38966058",
      "parents": [
        "7c1b10872f3d57b3afdb0f070fcf602e4d72df37",
        "996fe656340ede058a6f0e6b18f9ec525ddb4e27"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sat Sep 21 00:33:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 21 00:33:36 2013 +0000"
      },
      "message": "Merge \"Correct bitmap merging logic\" into klp-dev"
    },
    {
      "commit": "996fe656340ede058a6f0e6b18f9ec525ddb4e27",
      "tree": "7efca330f6633eb665b611469f1149dabb1383a5",
      "parents": [
        "564c45b976b56bc33f18271e1c813a0bd91b2eb4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 20 17:13:18 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 20 17:25:31 2013 -0700"
      },
      "message": "Correct bitmap merging logic\n\nbug:10863163\n\nThis fixes two issues\n\nThe check for pure translation was incorrect. It was fixed and renamed\nfor clarity.\n\nCertain matrix paths weren\u0027t setting kTypePositiveScale. For\nsimplicity (and because positive scale is simple to check) removed\nflag in favor of dynamic checking.\n\nChange-Id: Ic5ce235653ef49a68b8b242bd89fc2e95874ecc9\n"
    },
    {
      "commit": "16c84069a4cc0c0d3c35e798dc5e4b0130d4a26f",
      "tree": "82565c1ba045ee11d0810e86996a279f98cfb124",
      "parents": [
        "a2d65108dd32a0836fe08f0c72efdd5c727dad44"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Sep 19 15:38:21 2013 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Sep 19 15:38:21 2013 -0700"
      },
      "message": "fix emoji clipping in hw draw path\n\nI guess we don\u0027t want to overwrite the last line in every RGBA glyph\nwith our one-line texture atlas spacer?\n\nBug: 10841207\nChange-Id: Ief85ca58650c731e9d21dbf90942b7b44670abcc\n"
    },
    {
      "commit": "ce9ee16d654a42f31d211c60708d7b23f17c1d8e",
      "tree": "4044921a68cc010ac40c343ddd8692c71d209e1b",
      "parents": [
        "a42ceb03cf6a1cbcd9f526afb02d806b2c200ee3",
        "32f05e343c5ffb17f3235942bcda651bd3b9f1d6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 18 01:50:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 01:50:02 2013 +0000"
      },
      "message": "Merge \"Conservatively estimate geometry bounds\" into klp-dev"
    },
    {
      "commit": "a42ceb03cf6a1cbcd9f526afb02d806b2c200ee3",
      "tree": "78925e53817b579c4a7952b74900be75fa5492c1",
      "parents": [
        "9b6459841e52b9d44ec8ec57af5eb8007841f93d",
        "d965bc5823d878a3fd056b8a95fb4eb578ed3fe4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 18 01:49:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 01:49:32 2013 +0000"
      },
      "message": "Merge \"Disallow negative scale matrices in merged Bitmap drawing\" into klp-dev"
    },
    {
      "commit": "32f05e343c5ffb17f3235942bcda651bd3b9f1d6",
      "tree": "f3c0ed7a1a252728c21bd5b178ff69d625bf74d5",
      "parents": [
        "0f3e1487b26a822697f70747290809081c2072cc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 17 16:20:29 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 17 17:48:14 2013 -0700"
      },
      "message": "Conservatively estimate geometry bounds\n\nbug:10761696\n\nAvoids a case where a rect with top coordinate of (e.g.) 0.51f is\nassumed to not draw in the first row of pixels, which leads to it not\nbeing clipped. Since rounding can cause it to render in this first\npixel anyway, we very slightly expand geometry bounds.\n\nNow, in ambiguous cases, the geometry bounds are expanded so clipping\nis more likely to happen.\n\nChange-Id: I119b7c7720de07bac1634549724ffb63935567fc\n"
    },
    {
      "commit": "d965bc5823d878a3fd056b8a95fb4eb578ed3fe4",
      "tree": "708968d03c9260b2cc3f3bcd5eea4355c3146f63",
      "parents": [
        "0f3e1487b26a822697f70747290809081c2072cc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 16 14:47:13 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 16 18:19:55 2013 -0700"
      },
      "message": "Disallow negative scale matrices in merged Bitmap drawing\n\nbug:10622962\n\nChange-Id: I55ac18ad56b53dc9e6e6ea14cd3ec4bdafa98ac3\n"
    },
    {
      "commit": "5af5fc50c2f43fc0e0813e02cb6a950901a9c0b8",
      "tree": "221c3597a772b71ffc68a3cc6b8f0076f2e4ed9e",
      "parents": [
        "9210bc85545f31973c957b5179e6a82d05f473c6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 13 14:41:31 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 13 14:44:08 2013 -0700"
      },
      "message": "Fix merged operation clipping\n\nbug:10745870\n\nMissing \u0027const\u0027 meant MergingDrawBatch would never clip anything.\n\nChange-Id: Ia6367eff94cf5f437efafbc3ba7f0da102ffd956\n"
    },
    {
      "commit": "1de466fc91511de8428affcf1eb71dc6af946145",
      "tree": "f3f175819331a48534b19a68331abd189fb76708",
      "parents": [
        "25f17f295b4da464a2758c11a02cabb51bf4722f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 12 16:09:19 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 12 23:13:38 2013 +0000"
      },
      "message": "Always disable the clip for layers\nBug #8149344\n\nChange-Id: Ifd413cadb171232eb846b3d91b05b2d2457b9f35"
    }
  ],
  "next": "88ee0dac81dec12aefdeee23072df9b3864a06a4"
}
