)]}'
{
  "log": [
    {
      "commit": "337e764debde56b1462fb5f2794b3e917d8a42e2",
      "tree": "5a2b4e77654a0897408f04e429045e49359a0e4b",
      "parents": [
        "cd5e3f85fc9228b943ee8dfda0951e068953596c",
        "f24687e2731811fd0e3803b691fd47a659f89329"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 11 03:49:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 03:49:37 2014 +0000"
      },
      "message": "am f24687e2: Merge \"Plumb display power state through display manager.\" into klp-modular-dev\n\n* commit \u0027f24687e2731811fd0e3803b691fd47a659f89329\u0027:\n  Plumb display power state through display manager.\n"
    },
    {
      "commit": "037c33eae74bee2774897d969d48947f9abe254f",
      "tree": "9f6a33f07f48b9a08088eb287c1bfdd1fd97bda5",
      "parents": [
        "7289f3ab8f05db6206d696d75f460fadc05dc731"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 09 00:31:55 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 10 20:46:14 2014 -0700"
      },
      "message": "Plumb display power state through display manager.\n\nDeclare a new method, Display.getState() to retrieve the actual\npower state of a display.\n\nImproved documentation for Intent.ACTION_SCREEN_ON and\nIntent.ACTION_SCREEN_OFF to clarify what they really mean in\nterms of the interactive state of the device.\n\nDeprecated PowerManager.isScreenOn() and replaced it with\nPowerManager.isInteractive() with a more suggestive name and\nbetter documentation.\n\nRedirect display power state changes to go through the display\nmanager first and only then head over to the power manager for\nlegacy compatibility.\n\nEliminated the bright here and woke here policy flags since they\nwere unused.  Simplified the input dispatch policy somewhat.\n\nEnsure that screen wake locks are respected up until the point\nwhen dozing really begins.\n\nFixed a regression in DreamService where onDreamingStarted\nmight be called before onWindowAttached.\n\nBug: 13133142\nBug: 13472578\nBug: 13929355\nBug: 13760290\nChange-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0\n"
    },
    {
      "commit": "642421aa7f284817cc1a972a7f9c7a64696a0116",
      "tree": "e51a5b2c212bd95c4a052fcbd6b0bb0f0fce4976",
      "parents": [
        "8f81d29558bb0c97187d5ae3a7ee696ec13b264a",
        "5c31e487c4577e1c47ee7c949325d6a13f0d462e"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "message": "am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u00275c31e487c4577e1c47ee7c949325d6a13f0d462e\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "6c191299a73388cd593809c0b66bafbd08fd2982",
      "tree": "86466cc5d46bb13d87ae71c906349957edd3a7fb",
      "parents": [
        "8db6d9af58b9b81dbd764acd3f6a379afb539bf6"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 03 16:37:27 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 15:21:53 2014 -0400"
      },
      "message": "Introduce new UI_MODE_TYPE_WATCH and qualifier.\n\nDefault ui mode to watch if we have FEATURE_WATCH.\n\nBug:13395758\nChange-Id: Ie5ff95de60e69e91ad3612c7d2f1fca7f49061bd\n"
    },
    {
      "commit": "3399ec317d8a318ca384036bc6fecf4656f1f118",
      "tree": "b430abb72f38e7b93552778a3085ae110ca58e1a",
      "parents": [
        "744cf2b98f3f643380ab1db53e3d2216ecf9d872",
        "b386bfd791d77e24bcfe3261420f82b0a9d3851d"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 20:59:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:59:47 2014 +0000"
      },
      "message": "am b386bfd7: am 89dddcc9: Merge \"Use default visibility for Snapshot::getLocalClip.\"\n\n* commit \u0027b386bfd791d77e24bcfe3261420f82b0a9d3851d\u0027:\n  Use default visibility for Snapshot::getLocalClip.\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": "744cf2b98f3f643380ab1db53e3d2216ecf9d872",
      "tree": "d4f18e2fe42df5d6a8667268c5de3babd49b2632",
      "parents": [
        "71ab4f4f48a9b8b485d80adf18d568ef6265b1e8",
        "4932a355f1594990173e0d9cd1fa38b8491c4a29"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 02 20:30:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:30:29 2014 +0000"
      },
      "message": "am 4932a355: Merge \"Misc. buttons aren\\\u0027t gamepad keys.\" into klp-modular-dev\n\n* commit \u00274932a355f1594990173e0d9cd1fa38b8491c4a29\u0027:\n  Misc. buttons aren\u0027t gamepad keys.\n"
    },
    {
      "commit": "4932a355f1594990173e0d9cd1fa38b8491c4a29",
      "tree": "896c2c94f96f5133397d36222e2f5b28e6582790",
      "parents": [
        "c013eaad574bcb40152d90105d6fbc82293cbb11",
        "f46b5d466dc423509bfa5352c038b14cac5496e8"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 02 20:26:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 02 20:26:36 2014 +0000"
      },
      "message": "Merge \"Misc. buttons aren\u0027t gamepad keys.\" into klp-modular-dev"
    },
    {
      "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": "f46b5d466dc423509bfa5352c038b14cac5496e8",
      "tree": "48991affc17bbed7039efe797829e809ed190316",
      "parents": [
        "d08c864784b5d416805aee502e5294b0188a7bd8"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 01 15:43:43 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 01 15:43:43 2014 -0700"
      },
      "message": "Misc. buttons aren\u0027t gamepad keys.\n\nBUTTON_[1-9] are intended to be misc. buttons so the kernel will\nassign them to non-gamepad devices.  As such, we shouldn\u0027t treat them\nas belonging to gamepads at all.\n\nBug: 13432364\nChange-Id: I9495760f2379e44785b9ce1cf018b6db7f6cb0f4\n"
    },
    {
      "commit": "4669cfff1ed590087eade846aee8b4ef58f31739",
      "tree": "c395a1942cc7570add9036adbfb4d95998e8a0fb",
      "parents": [
        "f1354dd206a74e1475e8c1f8682dfd9d5e146f00",
        "d020fd33d147c88a9cda4976d2fa559e55b4ab03"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Sat Mar 29 00:59:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 29 00:59:46 2014 +0000"
      },
      "message": "am d020fd33: Merge changes Ib18c99b9,I9f42eeb9 into klp-modular-dev\n\n* commit \u0027d020fd33d147c88a9cda4976d2fa559e55b4ab03\u0027:\n  Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE\n  Adds API for determining confirm and cancel keys.\n"
    },
    {
      "commit": "22d074643ed0d010ebfdb0fca685d65eb2632e58",
      "tree": "46ed3de2ff7e9e33f5d5cc0861fa4e052fdc58e7",
      "parents": [
        "68d43e275efae8f7b83388ea6fdebbcf5cd1504f",
        "eaab4df0ddadf313ab6b3c832896003968525091"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:50:58 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:50:58 2014 +0000"
      },
      "message": "resolved conflicts for merge of eaab4df0 to klp-modular-dev-plus-aosp\n\nChange-Id: I871431e5a3ce45a33563ced845e044d37471689b\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": "1b10869f39978a864cfcc4efc73aefc312d8ed79",
      "tree": "2335d099d07547abf1c672bde9b51594bf4e8f1b",
      "parents": [
        "1e3c93975ee9c88284449406d49df2569f03f498"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 19 11:51:26 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 26 14:56:07 2014 -0700"
      },
      "message": "Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE\n\nAlso change MotionEvent.PointerCoords bit packing and unpacking\nmethods to be consistent with BitSets which are now used on the\nnative PointerCoords object.\n\nBug: 11480300\nChange-Id: Ib18c99b94ac555104c69eac526860aa501e89e03\n"
    },
    {
      "commit": "7e55b35a603fe64e8db2c6050a1b778baaccd920",
      "tree": "6bc995b3561f9483f31973610842b54d4a0ca56d",
      "parents": [
        "63d61640d41b85b32ca7287235ca638731555b63",
        "4118480aabb4a7b332e289ebb71d2e4f9bc05d7e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 20:28:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 20:28:00 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": "11e0ead8118d97d0e76a98065a4811fdb01b2db2",
      "tree": "feb083741700046ca0e51fb4c492c2bd58f1b824",
      "parents": [
        "4eefde23de23a5e9145a634e843964f6f6eaa6bd",
        "69e58e446bc2a030ae423d650e60dbfe317331e6"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 20 16:23:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 16:23:50 2014 +0000"
      },
      "message": "am 69e58e44: Merge \"Add idc config option for handling key repeats\" into klp-modular-dev\n\n* commit \u002769e58e446bc2a030ae423d650e60dbfe317331e6\u0027:\n  Add idc config option for handling key repeats\n"
    },
    {
      "commit": "4eefde23de23a5e9145a634e843964f6f6eaa6bd",
      "tree": "9ac167bac0e7c6d02f18fffb5222824ba82f6494",
      "parents": [
        "aebe3b6ca49f232bb0c8733256407680bb56b6cb",
        "29f00c9f35d8565bb3e6b8a2526cbb237db6446a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 15:47:34 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 15:47:34 2014 +0000"
      },
      "message": "am 29f00c9f: am 7c9bd98a: am 89513ee5: Merge \"Fix projection offset caching - DO NOT MERGE\" into klp-dev\n\n* commit \u002729f00c9f35d8565bb3e6b8a2526cbb237db6446a\u0027:\n  Fix projection offset caching - DO NOT MERGE\n"
    },
    {
      "commit": "69e58e446bc2a030ae423d650e60dbfe317331e6",
      "tree": "19d5fab296fd6478aaf9c094c4fbf1cd132584f1",
      "parents": [
        "29f00c9f35d8565bb3e6b8a2526cbb237db6446a",
        "39ca0522928fe134c1164a091806547e4ef1ed0b"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 20 01:55:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 20 01:55:16 2014 +0000"
      },
      "message": "Merge \"Add idc config option for handling key repeats\" into klp-modular-dev"
    },
    {
      "commit": "29f00c9f35d8565bb3e6b8a2526cbb237db6446a",
      "tree": "6afe675a19d1a07a6013db614a849bde14466789",
      "parents": [
        "abde0aaa7958976b8f3a66e348d6a5152b0d838e",
        "7c9bd98a4bb0aa6954d5f612c197d03f309980f0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 01:14:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 01:14:44 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": "48250e141dc738578f6957f86ac841f3cb522057",
      "tree": "090934e3407ad12512fa19768c5bebeae4f8e13c",
      "parents": [
        "2fb4a6bb9eee5e99fee4fae2949f48e839d749d7",
        "9a09a5236529962afbaba9893e5eaf72bd6621b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:47:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:47:02 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": "39ca0522928fe134c1164a091806547e4ef1ed0b",
      "tree": "a4fb98091d6893a3cf5bfcd80d6300758770d326",
      "parents": [
        "006209c2fc1b6deef10f6d52831e9cef35cca212"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 17 13:03:47 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 17 14:13:25 2014 -0700"
      },
      "message": "Add idc config option for handling key repeats\n\nBug: 13285870\nChange-Id: Iea2a5d03e29c86dcee5f99a25e48736ebc6dd913\n"
    },
    {
      "commit": "96978ee290ea0ef666c49ffa8733a8c74304c9f1",
      "tree": "4f2d7ab49e4f120705af69e42724f2b1bdb35887",
      "parents": [
        "adb3a198beb015ac505aecde585f0c8bca3a29e2",
        "f8d8777dddf91c741981b4f795f2fb2b1d81c1b6"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 17 15:55:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 17 15:55:43 2014 +0000"
      },
      "message": "am f8d8777d: Update framework to use M33 Skia. DO NOT MERGE\n\n* commit \u0027f8d8777dddf91c741981b4f795f2fb2b1d81c1b6\u0027:\n  Update framework to use M33 Skia. DO NOT MERGE\n"
    },
    {
      "commit": "f8d8777dddf91c741981b4f795f2fb2b1d81c1b6",
      "tree": "9f8a8cc7bd4765932295355b6eed44e6e26b6a2a",
      "parents": [
        "ca0aba399326886d1a39c2344bab296044ba5eb0"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Dec 03 16:26:51 2013 -0500"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Mon Mar 17 13:57:18 2014 +0000"
      },
      "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\nConflicts:\n\tcore/jni/android/graphics/Bitmap.cpp\n\tcore/jni/android/graphics/Graphics.cpp\n\tcore/jni/android/graphics/Typeface.cpp\n\tgraphics/java/android/graphics/Bitmap.java\n"
    },
    {
      "commit": "f80f60ba2b61df9f9544fcae8d8bdbe5542269fc",
      "tree": "d5046b0b305b80c112706fc3af488f0090637bc7",
      "parents": [
        "306c46884eb3121a981a0d1ed0c5461908c227fc",
        "d23d916e0fc573ccde8a622aaa42ccfae9d31f82"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 13 00:40:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 13 00:40:03 2014 +0000"
      },
      "message": "am d23d916e: Merge \"Controllers must have buttons and a movement mechanism.\" into klp-modular-dev\n\n* commit \u0027d23d916e0fc573ccde8a622aaa42ccfae9d31f82\u0027:\n  Controllers must have buttons and a movement mechanism.\n"
    },
    {
      "commit": "d23d916e0fc573ccde8a622aaa42ccfae9d31f82",
      "tree": "bfb96fd3017fa2511bc13c4b741e3200215bf709",
      "parents": [
        "ca9eef6203b7cfb0084f8305d4dcc5d70a7a25cd",
        "b0aa4822f59ac39e736f67e76b0a7742ca4c3da9"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 13 00:37:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 13 00:37:10 2014 +0000"
      },
      "message": "Merge \"Controllers must have buttons and a movement mechanism.\" into klp-modular-dev"
    },
    {
      "commit": "306c46884eb3121a981a0d1ed0c5461908c227fc",
      "tree": "fb00a8e1fad68c23a8f5bdf120991511fdc9ede9",
      "parents": [
        "840af707b38cf2177cf546e460899fa2d3da335a",
        "ca9eef6203b7cfb0084f8305d4dcc5d70a7a25cd"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 12 21:12:26 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 12 21:12:26 2014 +0000"
      },
      "message": "am ca9eef62: b/12068020 Make kb layouts only unique to vendor/product. Do not merge\n\n* commit \u0027ca9eef6203b7cfb0084f8305d4dcc5d70a7a25cd\u0027:\n  b/12068020 Make kb layouts only unique to vendor/product. Do not merge\n"
    },
    {
      "commit": "840af707b38cf2177cf546e460899fa2d3da335a",
      "tree": "911c50f162f1a6f7acdc7ec96a9611d44776749b",
      "parents": [
        "236e174a96e73e5ae189285d984e3091210c762b",
        "c1e0015ec3dfacc137cb500066020b25f18ecbb7"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 12 21:12:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 12 21:12:23 2014 +0000"
      },
      "message": "am c1e0015e: b/12068020 Add a way to add uniqueness to device descriptors. Do not merge\n\n* commit \u0027c1e0015ec3dfacc137cb500066020b25f18ecbb7\u0027:\n  b/12068020 Add a way to add uniqueness to device descriptors. Do not merge\n"
    },
    {
      "commit": "ca9eef6203b7cfb0084f8305d4dcc5d70a7a25cd",
      "tree": "e1d23691fc25baa5271a075350eb93e01b6f1e9c",
      "parents": [
        "c1e0015ec3dfacc137cb500066020b25f18ecbb7"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Dec 16 11:27:55 2013 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 12 13:21:08 2014 -0700"
      },
      "message": "b/12068020 Make kb layouts only unique to vendor/product. Do not merge\n\nThis is a cherry-pick of https://googleplex-android-review.git.corp.google.com/#/c/399886/\n\nInstead of storing a kb layout per device descriptor (which is expected\nto be unique), store it for each vendor/product. This way we can keep\na consistent layout between identical but physically different keyboards.\n\nThere are some corner cases this is expected to fail on, namely devices\nthat incorrectly have the same vendor/product id. Devices that don\u0027t\ndefine a vendor/product id will continue to use the descriptor to store\nlayout files.\n\nChange-Id: I1f2508561992080459310d5a644dad65a9c24f1a\n"
    },
    {
      "commit": "c1e0015ec3dfacc137cb500066020b25f18ecbb7",
      "tree": "49ddcf95b7dfd66fe0bf04ffe570f40cc5e80b8b",
      "parents": [
        "0575b185c618a79ede771389ed9a78436b5636bd"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Dec 11 17:02:46 2013 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Mar 12 13:20:57 2014 -0700"
      },
      "message": "b/12068020 Add a way to add uniqueness to device descriptors. Do not merge\n\nCherry pick from https://googleplex-android-review.git.corp.google.com/#/c/398226/\n\nThis adds an integer to the descriptor of devices without uniqely\nidentifying information. It will reuse values that are no longer\nin use, so if you remove a single device and attach a different\nidentical device it will appear to be the same device.\n\nTODO: Derive uniqueness from USB port when possible. This version\nwill generate different descriptors for each half of a USB keyboard\nthat shows up twice.\n\nChange-Id: Ie628f19c01469f6ec2d354cd00000898ac6432fa\n"
    },
    {
      "commit": "b0aa4822f59ac39e736f67e76b0a7742ca4c3da9",
      "tree": "40424c729b5b76fe91705fa3e829c511d0af2b14",
      "parents": [
        "2d8a3908d2b0a74ccdecd97e86e7bfda1caa218e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 12 12:56:51 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 12 12:58:53 2014 -0700"
      },
      "message": "Controllers must have buttons and a movement mechanism.\n\nSome devices have joystick axes or DPad keys, but no gamepad buttons\n(or vice versa). We shouldn\u0027t count these as gamepads since games\ncan\u0027t really be expected to work with this setup in the general case.\nInstead, require that a device has a movement mechanism (joystick\naxes or DPad buttons), as well as at least one gamepad button before\nconsidering it a controller.\n\nBug: 13432364\nChange-Id: Ia113c8441557d4c858c1e5740a3e1c7e0e9fdcdd\n"
    },
    {
      "commit": "a54f852d3df7ac2e245ccffe8409b217330e5092",
      "tree": "160a9d1566c16380d8eb59bf13da092cb849996a",
      "parents": [
        "dd0db799ee25833a8989a823299f039ac31fef58",
        "ed28fc89e3085a88c6bd8b4269988150f3eceb56"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Mar 11 23:16:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 11 23:16:25 2014 +0000"
      },
      "message": "am ed28fc89: Utilize new Android LED constants. DO NOT MERGE\n\n* commit \u0027ed28fc89e3085a88c6bd8b4269988150f3eceb56\u0027:\n  Utilize new Android LED constants. DO NOT MERGE\n"
    },
    {
      "commit": "ed28fc89e3085a88c6bd8b4269988150f3eceb56",
      "tree": "75104173d5bcb047968215a419f4597a4c9bca44",
      "parents": [
        "5f0c0498a1382ef955cccca95920ec878fe2a64c"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Oct 18 15:26:48 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Mar 11 14:52:18 2014 -0700"
      },
      "message": "Utilize new Android LED constants. DO NOT MERGE\n\nAlso, have EventHub manage game controllers\u0027 player LEDs\n\nChange-Id: Ic7dba19ad236a3c7d1aff5d3f938bd239b98d51d\n"
    },
    {
      "commit": "8272c84cb531a4f148f0b0a31d8359d381137378",
      "tree": "bdd6ace80e9c97b8509bdcde2fd52d09e6ae9102",
      "parents": [
        "e3318addc9c42a7b6d9d1ba8eaff786236b6dec0",
        "bbf826659e8e5d0be683b2459207c495303d53b6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 10 10:47:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 10 10:47:45 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": "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": "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": "be094d89db01387f773786435e110bbe166f3c65",
      "tree": "e6fbb3e9c679b6d5b70178edb9ea36ed343dbcf6",
      "parents": [
        "0d3548bea9986bb7446156699e200ffa147a3a02",
        "8fb22ae772fc62a10db6a06f283140d9233e8704"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 13:46:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 28 13:46:53 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": "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": "71e21fec61d17b41a3f0ed817bfa2ae5fb357212",
      "tree": "d7637284c3a898bdcbeb15f9130d548e07f1cf5b",
      "parents": [
        "74a8b916aceb0b55a7fdfa63bd8267c50d952a28",
        "6ca90042b398153e063cf69dea784e201e76a9ee"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 27 01:59:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 27 01:59:02 2014 +0000"
      },
      "message": "am 6ca90042: Add touch.wake IDC property to control wakeup.\n\n* commit \u00276ca90042b398153e063cf69dea784e201e76a9ee\u0027:\n  Add touch.wake IDC property to control wakeup.\n"
    },
    {
      "commit": "6ca90042b398153e063cf69dea784e201e76a9ee",
      "tree": "aed2d4572c86f6e3edc9d2eb5a0e2640eec74d2c",
      "parents": [
        "42ec5035672fbfe701ddbf90dcc4390dab9188af"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 26 15:12:45 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 26 15:15:53 2014 -0800"
      },
      "message": "Add touch.wake IDC property to control wakeup.\n\nNormally we do not wake the device when the internal touch screen is\ntouched.  This behavior can now be configured by setting a property\nin the input device configuration file.  Add the following line to\nthe IDC file to enable an initial touch to wake the device from sleep.\n\n  touch.wake \u003d 1\n\nChange-Id: Ifd6d4f51afacd30d85f475725a66e6fcccde9cbb\n"
    },
    {
      "commit": "aecb8c43d0c6c3d2b55f88abeaa0e3197be59301",
      "tree": "ca447ed35138f9dcfc10cbb4e2a47e2057175225",
      "parents": [
        "91df776654e5cf66e5115e0c46ecdbe19a55a0bc",
        "7b4cce68853d8bcfce2b6bd7f999915063eb56d2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Feb 26 19:10:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 26 19:10:39 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": "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": "7942397b3174a9642996979ae8b4aafb313dc2e2",
      "tree": "4221e740615802ee628f428cb07ad5fdfd747679",
      "parents": [
        "1648f042f31df54c25a725c4c5ca2c852a10ef0e",
        "192563407964926537d688d4098054c3834341c0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 21 16:47:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 21 16:47:38 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": "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": "520a5673fbe8bff90954045b24a361982861ef8d",
      "tree": "1502b983a0238cd4a6a42533c116e15d7e92217c",
      "parents": [
        "b1903653e4177a9394d7c30e3834fc8469485325",
        "b152473f46d8176e7eb2c55b54342a7a29c525cf"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 13:02:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 20 13:02:21 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": "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": "b1903653e4177a9394d7c30e3834fc8469485325",
      "tree": "c11bf17541b77c5f31e53efe7e54608be9869eb7",
      "parents": [
        "72eff55b2c54446bda219d0b32c7355b0ccf83a0",
        "128599e4496bd7ceb9d70f4addde0eba65103709"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 20 11:57:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 20 11:57:19 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": "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": "8c1fc83445f8dce7e6d0789feeed8bf98d33bf01",
      "tree": "b9eae6651529003e33abaea6a3f18fd17266fb42",
      "parents": [
        "982931c72b6cd00c5eea28efc4b086f47f7aca17",
        "28879bbfe89dc4bf2067a7183975ecffb82f68e6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 17 11:06:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 17 11:06:38 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": "982931c72b6cd00c5eea28efc4b086f47f7aca17",
      "tree": "aa387a5fa4685ccdf4b03251658c2cb2410dc4b6",
      "parents": [
        "8e30d53b6575a08ec0579fb08c8c4f055598d78b",
        "183e5e038bd844ac415b14f22df5c476732066c8"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 17 11:06:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 17 11:06:31 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": "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": "fc268ecae13f1634054e984a7cc6e325c21f6ab5",
      "tree": "0e84e37b0e99fe695c25de0781a425a6975b3055",
      "parents": [
        "97de064a9a01d2481c47767d7fbb5b7d5482a3aa",
        "aa98fb51a8a0148b72e1662cc42102c6547776ce"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 12 19:22:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 12 19:22:56 2014 +0000"
      },
      "message": "am aa98fb51: am f991771f: Merge \"Use size_t* in AssetManager::createIdmap\"\n\n* commit \u0027aa98fb51a8a0148b72e1662cc42102c6547776ce\u0027:\n  Use size_t* in AssetManager::createIdmap\n"
    },
    {
      "commit": "dd3d95f182a634acdcc1b1e8e4954234d048eb54",
      "tree": "989ee8d51a833038825dc36d38c9bdc7d1463917",
      "parents": [
        "aa318b2851042c6f98723446f33469a6545c7294",
        "4ad93639d210297764db3ffcd870ff38464943de"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 11:05:59 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 11:05:59 2014 -0800"
      },
      "message": "resolved conflicts for merge of 4ad93639 to klp-modular-dev-plus-aosp\n\nChange-Id: I7ad222301ec0b863d48a1a9a839469436c385ea0\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": "be83e4a08e909b773ffc06a6e59446deadb8af8b",
      "tree": "eb24fe0027a3429e80a0ed7d96127d779dab6dc6",
      "parents": [
        "4e795ebe1783623a28a988f77b4f0f11d54e73be",
        "38f96e5020b3e82b98fe97b0be363a5ad185860f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 12 00:37:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 12 00:37:24 2014 +0000"
      },
      "message": "am 38f96e50: Add support for injecting events into ActivityContainers. (DO NOT MERGE)\n\n* commit \u002738f96e5020b3e82b98fe97b0be363a5ad185860f\u0027:\n  Add support for injecting events into ActivityContainers. (DO NOT MERGE)\n"
    },
    {
      "commit": "38f96e5020b3e82b98fe97b0be363a5ad185860f",
      "tree": "a81ef59e18c1fbb9424caeafcb10eab262ca2478",
      "parents": [
        "0ff811db58089e7b4e8fbca4f41be8f20c86ce10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 11 14:32:56 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 11 14:43:04 2014 -0800"
      },
      "message": "Add support for injecting events into ActivityContainers. (DO NOT MERGE)\n\nModified ActivityView to inject touch events it receives back into\nits activity container.  The container then injects the event into\nthe input system along with the display id of the underlying virtual\ndisplay.\n\nEnhanced the input system to support concurrent dispatch of touch\nevents on multiple displays which is required for this to work.\n\nChange-Id: I9cf1870db3be6f99a52ed9a1e3ceafe42c940093\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": "be49403a0362c18edaeafe59ac09baac14294dee",
      "tree": "a98d931427d71a5fe9b4b69582e44ddd52769e49",
      "parents": [
        "b8645efbc8b7f57168d1f5108b65e5bea576b1d1",
        "0cd115e1cebf4c090e7c36a65d4a5b7d1c363c21"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Tue Feb 11 20:35:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 11 20:35:50 2014 +0000"
      },
      "message": "am 0cd115e1: am 578087e3: Merge \"New command line tool \\\u0027idmap\\\u0027\"\n\n* commit \u00270cd115e1cebf4c090e7c36a65d4a5b7d1c363c21\u0027:\n  New command line tool \u0027idmap\u0027\n"
    },
    {
      "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": "deefd1fdeaf0b538a13219517f8795fdde198e21",
      "tree": "9b2066b59ee119565f1d9626cba15ad99c4d4c93",
      "parents": [
        "25df673b849de374cf1de40250dfd8a48b7ac28b",
        "5f7c0b1d80f883fa15f88e0e4d508576a36a45de"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 11 13:47:50 2014 +0000"
      },
      "message": "am 5f7c0b1d: am 6d8b21a8: Merge \"Fix TinyHashMap to use generic hash_type instead of hash_t\"\n\n* commit \u00275f7c0b1d80f883fa15f88e0e4d508576a36a45de\u0027:\n  Fix TinyHashMap to use generic hash_type instead of hash_t\n"
    },
    {
      "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": "2c764b20e4a35c509f49e3d9430e135b4f3a0984",
      "tree": "c9149a3fd1483f27056037f08896ecab0a8b4110",
      "parents": [
        "34b84e691c4d5bd853bc5b7c7ccb8040590359d6",
        "0ec3ca6e08e5933016beda147ca9a82e96434b15"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Wed Feb 05 21:43:48 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 05 21:43:48 2014 +0000"
      },
      "message": "am 0ec3ca6e: am 449273e2: Merge \"Fix for positioning of glyphs within a bitmap\"\n\n* commit \u00270ec3ca6e08e5933016beda147ca9a82e96434b15\u0027:\n  Fix for positioning of glyphs within a bitmap\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": "d49babe50d61e0264a9f4fbf0b4e182cc56635db",
      "tree": "7ae7eb3048e7de1f89e59142cbd387e46f23c017",
      "parents": [
        "ff62e966b60bb20dc7c3384485816b1e7bf06057",
        "9af955744d4e0d82b61fc99a932b9a5cf28b5df7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 16:29:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 31 16:29:19 2014 +0000"
      },
      "message": "am 9af95574: am 1cadc07d: Merge \"Change ResourceType cookies to int32_t.\"\n\n* commit \u00279af955744d4e0d82b61fc99a932b9a5cf28b5df7\u0027:\n  Change ResourceType cookies to int32_t.\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": "1cd2834fde49738d9d884ed193bffa986224204d",
      "tree": "2d88b9fa7fa7931d938241f413ab6f575eccc0f2",
      "parents": [
        "dafb2420a34a5b39aca6ddf993e86778edd76b5d",
        "30e20ac528731a778eec45506d1e57c8839b318a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 12:07:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 27 12:07:15 2014 +0000"
      },
      "message": "am 30e20ac5: am ebd43d46: am dff83e2b: am d5970e9c: Merge \"AssetManager cookies should be int32_t and not void*.\"\n\n* commit \u002730e20ac528731a778eec45506d1e57c8839b318a\u0027:\n  AssetManager cookies should be int32_t and not void*.\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": "ee846d3e74eda006f4bbf17cb4844b4d8f9c5cb0",
      "tree": "2a66d4f75fc92545111dde2f5d8b6fa5debecceb",
      "parents": [
        "8582264dbf84aabe18adb113807c1ae8b563b88f",
        "38cf0704f6fbfa6d41d5d10488ce25e645adb835"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Fri Jan 17 19:30:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 19:30:31 2014 +0000"
      },
      "message": "am 38cf0704: am e9a7d229: am 66b5a2b2: am 5150eb8f: Merge \"Initialize pointer members to NULL to avoid illegal reference\"\n\n* commit \u002738cf0704f6fbfa6d41d5d10488ce25e645adb835\u0027:\n  Initialize pointer members to NULL to avoid illegal reference\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": "9158825f9c41869689d6b1786d7c7aa8bdd524ce",
      "tree": "f41944461539f0c70030668b4558296469c307d3",
      "parents": [
        "30d032928a294fbb6f385e9d0367a75b7bf2649b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Nov 22 08:25:26 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 15:25:37 2013 -0800"
      },
      "message": "Move some system services to separate directories\n\nRefactored the directory structure so that services can be optionally\nexcluded. This is step 1. Will be followed by another change that makes\nit possible to remove services from the build.\n\nChange-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85\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"
}
