)]}'
{
  "log": [
    {
      "commit": "ffd6ea4523d8fa1210d2a7bb757cc65e1d18465f",
      "tree": "1e98fb2139d8b5e7dbf8bf395fb8a6fa185ad85a",
      "parents": [
        "65340c1682dc73671d59cfbe27ee86549d23ed1d",
        "771526c88f5cc4b56a41cb12aa06a28d377a07d5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 17:31:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 17:31:50 2012 -0700"
      },
      "message": "Merge \"Resample touch events on frame boundaries.\" into jb-dev"
    },
    {
      "commit": "771526c88f5cc4b56a41cb12aa06a28d377a07d5",
      "tree": "71c36f271192ee66f069f0d1130a73e91b8302b9",
      "parents": [
        "330314c6fb7c178c0f0da65d6aa8c9e7d3004568"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:13:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 27 15:58:42 2012 -0700"
      },
      "message": "Resample touch events on frame boundaries.\n\nBug: 6375101\nChange-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3\n"
    },
    {
      "commit": "665a376d245d7bbfc43e3cfa651afc7448604afa",
      "tree": "a838497443ccd7ea52d429f55a9305debdb57a1e",
      "parents": [
        "d51f90ff7e9c5afa3feb4e2c2a3956861c2fd95e",
        "fdd6fc1beb5076a630c7066b8b1731995636c09f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 15:20:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 15:20:04 2012 -0700"
      },
      "message": "Merge \"Work-around for a Skia rasterization bug Bug #6411457\" into jb-dev"
    },
    {
      "commit": "fdd6fc1beb5076a630c7066b8b1731995636c09f",
      "tree": "8df0ddc48fda9ffb9015e3fb190e68ca806646d4",
      "parents": [
        "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 11:47:13 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 27 11:47:13 2012 -0700"
      },
      "message": "Work-around for a Skia rasterization bug\nBug #6411457\n\nSkia does not generates the bottom right pixel of a rect when\ndrawing a rect as an SkPath into an alpha8 bitmap.\n\nChange-Id: Ifb5286ae67745c9e44ee387b6d6ad607a9a2e6ce\n"
    },
    {
      "commit": "8bd12ea8001f72f4450e318e43c50dbc46b4869c",
      "tree": "9b4edec9a02b98392cad6871b579139bb62cc92a",
      "parents": [
        "87b16c803932e8d54889cdb60117034fdc2ef75c",
        "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 14:06:41 2012 -0700"
      },
      "message": "Merge \"Decode common GL error codes when logging frame error status\" into jb-dev"
    },
    {
      "commit": "a44a63ac5c29b2cc57df95ec495def8cdddd9c6f",
      "tree": "476fde78dde6caa2ab5053d2ba2e2c6b344404eb",
      "parents": [
        "8f8d9fb52c65e50a32babf67ef764e173d2a5473"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 26 14:05:02 2012 -0700"
      },
      "message": "Decode common GL error codes when logging frame error status\n\nChange-Id: I38b333eea53aef20340ce48dfcb0dd30a223f7a8\n"
    },
    {
      "commit": "a75fbc3c76dfe6a1c678b66f83cef878e3f3cdf4",
      "tree": "adb91464ca79fb962644d559a48f482c5ee2d87d",
      "parents": [
        "85973212e9a63590118c2ad8937798bc1aa62687",
        "c2c9543c135ffc4e18c7db0e817112ac03e3e97a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 26 12:27:56 2012 -0700"
      },
      "message": "Merge \"On new content, attach functor directly\" into jb-dev"
    },
    {
      "commit": "c189ef53220059acf2adedc92ac4ac7e6a993e6b",
      "tree": "faf8d04864c0276bf4d5166cc72eb0b5fe77e68b",
      "parents": [
        "1b8f499a14a4340d3422d95c7f6fdc8c0c72b3a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 25 20:02:53 2012 -0700"
      },
      "message": "Ensure we start every frame in the proper GL state\nBug #6345013, #6314960\n\nChange-Id: I6985f7f233eb6a5f9223e9f4be3f323154b5dbf0\n"
    },
    {
      "commit": "c2c9543c135ffc4e18c7db0e817112ac03e3e97a",
      "tree": "59bab91aaec14c1682d7f8500d552c21f1326fe9",
      "parents": [
        "7725180c646d1976a2a2097735862a75ec47c544"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:13:52 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 25 15:42:59 2012 -0700"
      },
      "message": "On new content, attach functor directly\n\nbug:6323847\n\ndepends on external/webkit change: https://android-git.corp.google.com/g/#/c/184314/\n\nChange-Id: Ibdf997f3ee4f5c5c1ea5a320556813f175fea93f\n"
    },
    {
      "commit": "3d745c03ace18ee59c539e1b7f1df13f22beb57d",
      "tree": "33caa47aa08df523b6f34ec38a25845418c20f10",
      "parents": [
        "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:36:17 2012 -0700"
      },
      "message": "Fix the build before the bot yells at me.\n\nChange-Id: Ice7fe02b684ad662262aae3cac7a48a835ebcad5\n"
    },
    {
      "commit": "ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47",
      "tree": "04f9b4d5589333970c91e51af6280a5859b78460",
      "parents": [
        "88fffb7a34313d5e94b3974d444d07bd6a4879a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 18:22:09 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 23 20:29:31 2012 -0700"
      },
      "message": "Prevent WebView from crashing when detached from the window\nBug #6365056\n\nWebView enqueues a functor in the hardware renderer to handle\nanimations and this functor is called at a later time by the\nhardware renderer. However, the functor was not removed from\nthe queue when WebView was removed from the window. This could\ncause the hardware renderer to attempt to execute an invalid\nfunctor and lead to a crash.\n\nChange-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508\n"
    },
    {
      "commit": "8bca94ad83f82682bc15df29dc25377fe43da17f",
      "tree": "04e78f028b7a6b8c8a9e9e66d0aa4d22ed97f073",
      "parents": [
        "fd6a5245ccb0294dada070444d9d9c6be752e668"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 23 16:12:32 2012 -0700"
      },
      "message": "More work on international keyboards.\n\nChanged the English US keymaps to implement a strict US key map\nwith no additional ALT functions.\n\nFixed a bug copying the alias in the InputDevice copy constructor.\n\nAdded support for end of line comments in KCM and KL files.\n\nAdded the German keyboard layout.\n\nSorted the keys in the keyboard layout files by physical arrangement\nto make it easier to maintain them.\n\nBug: 6110399\nChange-Id: If44d83de5b98f2bf0016cbb8e12264387b286aaa\n"
    },
    {
      "commit": "1271e2cc80b01d577e9db339459ef0222bb9320d",
      "tree": "d308bb451af2ecf76715ec0389de3e95b60e6d5a",
      "parents": [
        "003952ba33f711963ad26588b2aca293deb8d50a"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 20 09:54:27 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 23 11:13:17 2012 -0700"
      },
      "message": "Remove USE_DISPLAY_LIST_PROPERTIES flag\n\nThis flag was still hanging around pending any need to disable\nDisplayList properties. But things seem stable, so it\u0027s time to clean up\nand simplify the code.\n\nAt the same time, I reduced redundance in DisplayList dimensions. We\nused to call drawDisplayList() with width/height parameters that were\nused to do a clip reject. This is redundant with the DisplayList properties\nthat set the bounds of the DisplayList; the left/right and top/bottom properties\nrepresent the same width/height properties formerly used in drawDisplayList().\nThe new approach is to not pass dimensions to drawDisplayList(), but to\ninstead pull those dimensions directly from the DisplayList when needed.\n\nChange-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56\n"
    },
    {
      "commit": "5bbd4b4f5fc19302fa017ad6afee6eb2d489d91a",
      "tree": "2bc118a5ef332003cc7f6791968076c48b3cf84b",
      "parents": [
        "9e6d4b035d4f012d23264d3d2bc946b1ca02dba1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 19:28:00 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 20 20:11:12 2012 -0700"
      },
      "message": "Get alias for Bluetooth devices.\n\nBluetooth devices can be renamed by the user.  Make the\ninput system aware of the user-specified name and transparently\npass it down to applications.  This enables the keyboard\nlayout picker Settings UI to use device names that are\nconsistent with what the user set in the Bluetooth UI.\n\nBug: 6363157\nChange-Id: I8eea26ce2c69c2a3f09c8de02e9e847610e0419c\n"
    },
    {
      "commit": "9a2bbf680e3b5b98051b9f2913ab6bd31b77f79a",
      "tree": "0e6d9dc80e52a02873462a0e051e34fd6f657bbc",
      "parents": [
        "f35ea5d25b286e166bdc43a589a45b56b6358499"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 14:09:10 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 18 15:01:57 2012 -0700"
      },
      "message": "Improve handling of certain keyboard layout properties.\n\nAutomatically choose a default value for the \u0027number\u0027 property\nbased on the characters that the key can generate.\n\nDon\u0027t generate any character when ctrl, alt or meta is\npressed unless the behavior exactly matches the modifier keys\nthat are pressed.\n\nSimplified the basic keyboard layouts taking into account the\nnew features.\n\nBug: 6110399\nChange-Id: Ibc0f0b50c2dcf3f962a33ac77c24d2993b77637d\n"
    },
    {
      "commit": "4a3862f6b0a8971b6ab5b1c46735b28e7604d0db",
      "tree": "4091176054868659d2fa6bec36540f56c08bd116",
      "parents": [
        "6ec6f79e1ac1714e3b837796e99f07ff88f66601"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 18:50:05 2012 -0700"
      },
      "message": "Add Dvorak keyboard layout.\n\nAdded support for mapping both scan codes and HID usages to\nKeyLayoutMap and KeyCharacterMap.  Keyboard overlays can\nnow influence how key events are mapped to key codes.\n\nBug: 6110399\nChange-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf\n"
    },
    {
      "commit": "6ec6f79e1ac1714e3b837796e99f07ff88f66601",
      "tree": "02aa55617bfa6dd2eb0bec29156e279c8afaaa0d",
      "parents": [
        "a3bc565882dd3984e995363642b1295fe3d24d10"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 16:52:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 17 17:56:32 2012 -0700"
      },
      "message": "Support loading keyboard layout overlays from resources.\n\nAdded the concept of a keyboard layout overlay, which is\na key character map file that has \"type OVERLAY\".\n\nAdded support for loading keyboard layout overlays from\nresources dynamically.  The layouts are reloaded whenever they\nare changed in the Settings application or an application\nis installed.  This is somewhat more aggressive than necessary\nso we might want to optimize it later.\n\nBefore system-ready, the input system uses just the generic\nkeyboard layouts that are included on the device system image.\nAfter system-ready, it considers the user\u0027s selected keyboard\nlayout overlay and attempts to load it as necessary.  We need to\nwait until system-ready before doing this because we need to\nbe in a state where it is safe to start applications or access\ntheir resources.\n\nBug: 6110399\nChange-Id: Iae0886d3356649b0d2440aa00910a888cedd8323\n"
    },
    {
      "commit": "a47425a13c19f95057df78b8bb65bb25657e8753",
      "tree": "675c0d6bf611f2427bb3d11315d410bf9087b20a",
      "parents": [
        "c2346134bb519a54d50655cbef940fc3fdec60a9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 04:09:27 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 13 17:01:15 2012 -0700"
      },
      "message": "Add support for input devices that have vibrators.\n\nAdded a getVibrator() method to InputDevice which returns a Vibrator\nassociated with that input device.  Its uses the same API as the\nsystem vibrator which makes it easy for applications to be modified\nto use one or the other.\n\nBug: 6334179\nChange-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e\n"
    },
    {
      "commit": "882735972e9e7ee52a3116a3aba0440968b2da1a",
      "tree": "be12d9a5d1f8608629d74382f6f1927eadcbbdb8",
      "parents": [
        "d4fecc2567ca54427b9c86900bccbc7103ea8fde",
        "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 18:55:57 2012 -0700"
      },
      "message": "Merge \"Notify applications when input devices change.\""
    },
    {
      "commit": "af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b",
      "tree": "50cf9dd27d673bc5b3f75e6e18e9577873eecd6c",
      "parents": [
        "cc1169831921d9295b2fc01c1eaf7e9b00836f53"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 17:32:48 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 18:54:54 2012 -0700"
      },
      "message": "Notify applications when input devices change.\n\nThis change allows the InputManager to keep track of what input\ndevices are registered with the system and when they change.\nIt needs to do this so that it can properly clear its cache of\ninput device properties (especially the key map!) when changes\noccur.\n\nAdded new API so that applications can register listeners for\ninput device changes.\n\nFixed a minor bug in EventHub where it didn\u0027t handle EPOLLHUP\nproperly so it would spam the log about unsupposed epoll events\nuntil inotify noticed that the device was gone and removed it.\n\nChange-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3\n"
    },
    {
      "commit": "a23eed808a1ae4ec0d818c0a9238385e797fd056",
      "tree": "5255c66fa7fe89763e19e0c2b0476c6b3a52a2fe",
      "parents": [
        "b187d52f8adaad068997595118f32cb02d7a9013"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:19:04 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 12 15:20:16 2012 -0700"
      },
      "message": "Fix layer blending bug\n\nCached layers were sometimes retaining an obsolete blending\nvalue, causing artifacts where translucent objects were disappearing\ncompletely. Also, added extra tracing info for DisplayLists.\n\nIssue #6303668 Flickering views during SwipeHelper drag\n\nChange-Id: I66ce158652c4a3ed316040585b40b1744e1fad0c\n"
    },
    {
      "commit": "cc1169831921d9295b2fc01c1eaf7e9b00836f53",
      "tree": "0817567e4363330957337e0b3bb6387c4911e25f",
      "parents": [
        "49ccac530b5a798e3c4a79b66b51b8546a0deed1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 12 10:05:41 2012 -0700"
      },
      "message": "HID usage should take precedence over scan code.\n\nChange-Id: Ibd8988e3dcc0d64f4019ffe491d9789733f9d243\n"
    },
    {
      "commit": "49ccac530b5a798e3c4a79b66b51b8546a0deed1",
      "tree": "0b25fa1110effb7e8aa46905928b0b159daa96ab",
      "parents": [
        "db13a6bf788cc48af86c8acf6f74b416dfd84199"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 18:27:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 11 20:28:09 2012 -0700"
      },
      "message": "Refactor key code mapping.\n\nAdded handling for EV_MSC / MSC_SCAN which typically reports\nthe HID usage associated with a key.  This will enable key maps\nto map keys with HID usages that Linux does not natively recognize.\n\nRemoved keyCode and flags fields from EventHub RawEvent since\nthey don\u0027t necessarily make sense in isolation now that we\npay attention to HID usage codes too.\n\nRemoved the fallback code for mapping keys and axes.  In practice,\nan input device should be self-sufficient.  We should not ever\nneed to look at the built-in keyboard\u0027s key map.  In fact, there\nusually isn\u0027t a built-in keyboard anyhow.  This code was originally\nworking around a problem where we weren\u0027t loading the key map\nfor touch screens with virtual keys, which has long since been fixed.\n\nChange-Id: I0a319bdec44be9514f795526347397e94d53a127\n"
    },
    {
      "commit": "7b6a75872bd2df96a23453d31c2e2e7fcc373554",
      "tree": "4ef0ab122aa11dc7b039693cfce420b8be063996",
      "parents": [
        "d1f3de40ba50f0a3c4545139ea57242612f52971"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Apr 11 14:32:02 2012 -0700"
      },
      "message": "Pass width/height parameters to webview\n\nWhen webview draws into an fbo layer, it needs to know the\nsize of that surface to create the rendering transform appropriately.\nThis change copies in the current viewport size to the structure that\nis passed to the webview.\n\nChange-Id: I7160b0836d00834134c799c95a439cdc045e2035\n"
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "5bcbfcec4bc49a141341dd333aed2d0d774d04a0",
      "tree": "f995770d6649629f57f913f55407812d8eec2b5b",
      "parents": [
        "1558294582b6a4897fea7c8dafafb188ce5ec939"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Apr 06 16:33:11 2012 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Apr 06 16:33:11 2012 -0700"
      },
      "message": "You don\u0027t need LOCAL_STATIC_LIBRARIES when building static library.\n\nand there is no target static library with name libutils.\n\nChange-Id: Ifec34e1b484d749d3fcd11abe610f192a3213767\n"
    },
    {
      "commit": "69bba1dfb75a732e9d1ee92f1088d6fbe1e26f68",
      "tree": "a76e4ccc8eb89ca531b9b393d44d5d0716fb4606",
      "parents": [
        "43de94a94365b024d3ceab5dfe5710e966ec5685",
        "e38fdfae9196afd1bdc14c5ec6c12793af1e2550"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 15:04:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 15:04:53 2012 -0700"
      },
      "message": "Merge \"Add a unique input device descriptor.\""
    },
    {
      "commit": "e38fdfae9196afd1bdc14c5ec6c12793af1e2550",
      "tree": "54523ccf3fc36a1b50410e2cb6e6d1f7230c40cf",
      "parents": [
        "dc0dbbd4a005f16624978b95817b33156acac526"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:51:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 06 14:57:19 2012 -0700"
      },
      "message": "Add a unique input device descriptor.\n\nThe purpose of the input device descriptor is to make it possible\nto associate persistent settings for each input device, such as the\nkeyboard layout.\n\nThe descriptor is a hash of the information we have about the\ndevice, such as its vendor id, product id, unique id, name,\nor location.\n\nBug: 6110399\nChange-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981\n"
    },
    {
      "commit": "65924a3e56c2e7ac863f8e25e9f9a58b9db7d513",
      "tree": "b7e3da17b6ebfb31eb9bb7e13adb8345e6f793bb",
      "parents": [
        "7c8fd157da36b68529b08b820051ce775f84a9bf"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 05 17:52:11 2012 -0700"
      },
      "message": "fix functor flag parsing, tweak process delay\n\nChange-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012\n"
    },
    {
      "commit": "fda531c9e4e49cfd962d3784b3501f6a1e64dc22",
      "tree": "87adda86eddc128b9b4ec4ea917cd37323a94c07",
      "parents": [
        "30bd284cca7540be3eba2e7874a2c69e051771ce",
        "7b63142d2f4bc32beacedcc761453b8aea1f3a86"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 11:53:28 2012 -0700"
      },
      "message": "Merge \"Disable AA lines vertex attrib arrays after rendering\""
    },
    {
      "commit": "7b63142d2f4bc32beacedcc761453b8aea1f3a86",
      "tree": "97efda39b916945683bb98f954438cb86c8a01e5",
      "parents": [
        "2946445b560fde5e63df17f5a2db60c8349fe532"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 04 11:38:54 2012 -0700"
      },
      "message": "Disable AA lines vertex attrib arrays after rendering\n\nChange-Id: I2f035e9d87f4f97bc1e37355c84570fd58df0374\n"
    },
    {
      "commit": "8c8c2400923bd5b0ab1f52adc4f2232dbf690d91",
      "tree": "5c45fa37ab5c4a3666bf5fb15d9b3c108009ca05",
      "parents": [
        "af92c532e7e0fc076aa8fb55c43f8964dba16fcb",
        "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 19:33:06 2012 -0700"
      },
      "message": "Merge \"Optimize FBOs composition\""
    },
    {
      "commit": "e0aa84b7dc087e999e20055dcc04cb6a48d5bd62",
      "tree": "1aebdbebe17e17239231c890710b5b1c9c0ac4ae",
      "parents": [
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 03 19:30:26 2012 -0700"
      },
      "message": "Optimize FBOs composition\n\nChange-Id: Ifc8eada8922509373c0e4c3b2ed75b6f08d098de\n"
    },
    {
      "commit": "db8c9a6a4d9bf8c39f834b25611926caf21380f6",
      "tree": "5a1ef2e49ea05c5a28477fcf8525ca66e8e31890",
      "parents": [
        "b3fa3960a03ef553e58bf1add88029a6c072c6b6"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Mar 21 18:54:18 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Apr 03 14:02:17 2012 -0700"
      },
      "message": "Optimization of alpha with DisplayList properties\n\nSome views (such as ImageView and TextView) handle non-opaque alpha\nvalues directly. This was originally an optimization, but we can handle it faster\nin many cases without this optimization when DisplayList properties are enabled.\nBasically, if a view has non-overlapping rendering, we set the alpha value directly\non the renderer (the equivalent of setting it on the Paint object) and draw each\nprimitive with that alpha value. Doing it this way avoids re-creating DisplayLists\nwhile getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.\n\nChange-Id: I0f7827f075d3b35093a882d4adbb300a1063c288\n"
    },
    {
      "commit": "e2eaf6997d429249904f842092b075f3da92c5be",
      "tree": "2187a2a450cdf80d9b1ea10eb53d7d15b09753e6",
      "parents": [
        "7eae9cb4e732934741c66f3c76a1c1f7d556af43",
        "5c88fc744db977ef26887df9605beaa409394806"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 17:49:20 2012 -0700"
      },
      "message": "Merge \"Prevent crash when flushing the layers cache Bug #6258973\""
    },
    {
      "commit": "5c88fc744db977ef26887df9605beaa409394806",
      "tree": "3c782510909ace46a555514d9b08044289107406",
      "parents": [
        "6db53c34a7fe8fdc2a8775dc5a400776e2716d38"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:43:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Apr 02 17:45:25 2012 -0700"
      },
      "message": "Prevent crash when flushing the layers cache\nBug #6258973\n\nWhen flushing the layer caches we would attempt to delete the FBOs\nassociate with layers in the cache. The FBO property was however not\nalways properly cleared when recycling layers.\n\nChange-Id: I7dedfe391d659a0849f1e1d84df17313b2c6e2b2\n"
    },
    {
      "commit": "b6a80077dca5a17f33350075485a534d7ed8fa2b",
      "tree": "2028588973227614603bb68a124fc58609001561",
      "parents": [
        "191310b7d367b491496de85dce5e286ebfdc4c73",
        "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 17:07:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 17:07:21 2012 -0700"
      },
      "message": "Merge \"Allow fine-grained control over functors execution\""
    },
    {
      "commit": "8d56b0e1d24f7392314df4be6503af395a843696",
      "tree": "35778539d3be9284697f45d1b4962a46c0c57532",
      "parents": [
        "78e2c336de8984dd86410351efedab86ad617ee8"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 16:34:48 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 16:34:48 2012 -0700"
      },
      "message": "Enabling DisplayList properties\n\nAn earlier commit fixed problems with enabling DisplayList properties.\nThis CL actually enables the properties.\n\nChange-Id: I5c41d0c64e9241822af53eb367de0fed7d9608e0\n"
    },
    {
      "commit": "9420abd56a2af7ddbeb70562b79d61b2dca8c5a1",
      "tree": "8625a64e2d9ffd1520d890c2eb7989ccbef28adc",
      "parents": [
        "1d6013357847983180a317e2acaf807bde8b7ea7"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 16:28:32 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Apr 02 15:31:24 2012 -0700"
      },
      "message": "Re-enable DisplayList properties.\n\nRe-enabling DisplayList properties last week caused some app\nerrors due to the way that some transforms were being handled (specifically,\nthose coming from the old Animations and ViewGroup\u0027s childStaticTransformation\nfield). This change pushes *all* transform/alpha data from View.draw() into\nthe view\u0027s DisplayList, making DisplayLists more encapsulated (and correct).\n\nChange-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938\n"
    },
    {
      "commit": "8f3b8e32993d190a26c70c839a63d8ce4c3b16d9",
      "tree": "8e49ffa8f5405f22b8bb12be9e5607ec6a0fc00a",
      "parents": [
        "e6c966caa3aff3099e6fb00caefa10387f57b9c3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 27 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 02 15:15:07 2012 -0700"
      },
      "message": "Allow fine-grained control over functors execution\n\nAdds non-drawing execution mode\n\nChange-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf\n"
    },
    {
      "commit": "f1260aac0ea7d48794177da0078ab6e85df3f1f3",
      "tree": "7c10c6141a54b91028e523d9ca7392b50679936c",
      "parents": [
        "34461ef1961bfda11601a715944a8ff5ef5f9df4",
        "76240dafe8654cc3b858241e76618e5b2db5451c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:45:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 09:45:38 2012 -0700"
      },
      "message": "Merge \"Disable DisplayList properties pending fixes for AlphaAnimation\""
    },
    {
      "commit": "76240dafe8654cc3b858241e76618e5b2db5451c",
      "tree": "940bdac8b8de930b1cd811ff96c590b894af6c6c",
      "parents": [
        "ee9da04edc5adb8fdcce489ecd09eb67fc2c295e"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:42:34 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 29 09:42:34 2012 -0700"
      },
      "message": "Disable DisplayList properties pending fixes for AlphaAnimation\n\nThe new DisplayList properties design has ordering conflicts with the\nway that alpha works with old animations (AlphaAnimation). This CL\ndisables DiksplayList properties while I\u0027m working on a fix and some\nmore thorough tests for old animations-vs-DL properties in general.\n\nChange-Id: I8f6893138f939171491c2ec3c889214ee55d17b7\n"
    },
    {
      "commit": "972ed5809c518ecaaca58723e85282e58c12758c",
      "tree": "e6aeb30c8f0e14ccaa8a56fec5a088040c1a3bf6",
      "parents": [
        "c8947b3d795f9539d248edf95652974f49142b78",
        "b43a1e5ddf274eb5e01dc8e450bd15b640bebe9f"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 15:08:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 15:08:56 2012 -0700"
      },
      "message": "Merge \"Moving libRS\""
    },
    {
      "commit": "b43a1e5ddf274eb5e01dc8e450bd15b640bebe9f",
      "tree": "bf9d1b5d92ef8f65afd8c51016a5da7130bc6d3e",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "message": "Moving libRS\n\nChange-Id: I1e42204e862585b9c2f7818b615890c60f08faf6\n"
    },
    {
      "commit": "d927a1d99630c05ff773f0e9e8791ca9a965e020",
      "tree": "760f8a19e317d68f937eda312efab59200880ecd",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "message": "Deleted the media, camera, drm related files since they are relocated\n\nChange-Id: I9bc5573ee07e30b305b5b879023aa9ec69e10b91\n"
    },
    {
      "commit": "c72cb1c2e0fe7966f4a32a51ef6b5238516ea772",
      "tree": "a2bfba6331eb3f3b101c0b085f041ce62a1931d3",
      "parents": [
        "b85967b9af76e1e60f7a96603e2567a6449d2e04",
        "5ff1959f9541980c2c957f482a4b0999533bbb4e"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Tue Mar 27 08:49:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 08:49:52 2012 -0700"
      },
      "message": "Merge \"State based shader recompile to support camera input.\""
    },
    {
      "commit": "b85967b9af76e1e60f7a96603e2567a6449d2e04",
      "tree": "e1df4cdf8baa0315ee6296feb238d1722dcf7370",
      "parents": [
        "b3cbd0b4d827577b3b8ad34106779c67a48701dd"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 26 14:37:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 27 08:17:54 2012 -0700"
      },
      "message": "Re-enabling DisplayList properties\n\nSeveral issues came up after DisplayList properties were enabled,\nso they were disabled pending fixes. Those issues have been fixed, so\nDisplayList properties are once again being enabled by default. This\nCL both re-enables these properties (in View.java and DisplayListRenderer.h)\nand fixes the various issues that enabling them caused the first time around.\n\nRelated issues (all currently marked as Fixed, though that was simply because\nDL properties were disabled - this CL provides the real fixes now that\nDL properties are enabled by default):\nIssue #6198276 Text input broken\nIssue #6198472 Native crash at pc 00076428 in many different apps in JRM80\nIssue #6204173 Date/time picker isn\u0027t rendering all parts of UI\nIssue #6203941 All Apps overscroll effect is rendered weirdly/has flickering\nIssue #6200058 CAB rendering issue - not drawing items?\nIssue #6198578 Front camera shows black screen after taking picture.\nIssue #6232010 Layers not recreated when children change (DisplayList properties)\n\nChange-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b\n"
    },
    {
      "commit": "f82b111a6d1cce9a31a008c6461ee72fa350f278",
      "tree": "77f0a9597b752713fc6d614329cb7c70385eb9a5",
      "parents": [
        "1fc18056eb87e86773a5863ca60623d4023795a6",
        "ae540b9943dfd3b5ff757954a988978b68e73687"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 26 17:20:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 17:20:06 2012 -0700"
      },
      "message": "Merge \"rsdGL uses DummyConsumer\""
    },
    {
      "commit": "56485fe62882065688e70fcb1f4b5c3894ed2c87",
      "tree": "253c902bca219766169277bb2d27aa6135535ddf",
      "parents": [
        "994c26b2a600a5a9fb9fbada9c6299c0488ecda7",
        "6554943a1dd6854c0f4976900956e556767b49e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "message": "Merge \"Use a status_t return type for GL functors\""
    },
    {
      "commit": "6554943a1dd6854c0f4976900956e556767b49e1",
      "tree": "82d43bbb28af4feeb6c358077ac1083ca3598e7b",
      "parents": [
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "ae540b9943dfd3b5ff757954a988978b68e73687",
      "tree": "f33686011a2957c1ef95b21168aa4033af5b5700",
      "parents": [
        "0c44525a4888de321c9497204d59c8515f828499"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Fri Mar 23 19:44:11 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Mar 26 15:11:47 2012 -0700"
      },
      "message": "rsdGL uses DummyConsumer\n\nUsing a DummyConsumer instead of a SurfaceTexture avoids\nerrors such as BufferQueue has been abandoned due to the SurfaceTexture\ngoing out of scope and disconnecting from the BufferQueue.\n\nBug: 6172739\nChange-Id: I775ead2d0392a68fd0f7e724d6eb25298d2fb00d\n"
    },
    {
      "commit": "9dcd8c2ab115a0275ed2d1a3846e4788dce9eabb",
      "tree": "1cda95a295f79c531d0e019b497a085878051e78",
      "parents": [
        "0eee33de1558b96462566348d4850556b0b31cc6",
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:53:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 14:53:36 2012 -0700"
      },
      "message": "Merge \"Prevent random crashes on SGX architecture Bug #6219894\""
    },
    {
      "commit": "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd",
      "tree": "7ac017a6e046d16bd148a225b283532a3592c69e",
      "parents": [
        "d4577c0c29f8e38a34d1aeac59803b37769af790"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:52:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 14:52:00 2012 -0700"
      },
      "message": "Prevent random crashes on SGX architecture\nBug #6219894\n\nChange-Id: If77f29da03e557a50e53bae505e1c638a1dbe2cc\n"
    },
    {
      "commit": "5ff1959f9541980c2c957f482a4b0999533bbb4e",
      "tree": "f4e40c5ede485cb90a62e17a3b343b5f38fbf224",
      "parents": [
        "69f819b397e5e4b50b1931da6ef1caba0229640a"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Mon Mar 26 13:52:24 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Mon Mar 26 13:52:24 2012 -0700"
      },
      "message": "State based shader recompile to support camera input.\n\nChange-Id: Ia6c362571e1b44254461522a8c49a8551b46f28d\n"
    },
    {
      "commit": "30b8a65c5c2b950eaa95a0ce6792a05c30c86a08",
      "tree": "bcab87c2c2391e97f5f8d266967da50e007f6c38",
      "parents": [
        "7061b5ffb37ea15f235effa1faaf22bb1750c7f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 12:22:57 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 12:22:57 2012 -0700"
      },
      "message": "mv libcpustats from frameworks/base to /native\n\nOK to lose history\n\nChange-Id: I05ce0452f16a396cff6e18db5424492f3a6f6861\n"
    },
    {
      "commit": "cbe55a1c93056cf2878007ebf823a0ac2ad168b1",
      "tree": "b47661d230ddd4699ffc01ae8e9e02f806beee90",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb",
        "fe1d5ffd1b6c4977a9f301997d2ad90e5b049a3b"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Mar 23 13:29:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 13:29:17 2012 -0700"
      },
      "message": "Merge \"Implement USAGE_IO_INPUT\""
    },
    {
      "commit": "fe1d5ffd1b6c4977a9f301997d2ad90e5b049a3b",
      "tree": "7a3135d31e4415a4b6b31c7e44ad15cfa1ccc86f",
      "parents": [
        "3da5525558ad84757c48907eead66f44f0f5dd32"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Mar 23 11:47:26 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Mar 23 11:47:26 2012 -0700"
      },
      "message": "Implement USAGE_IO_INPUT\n\n\n\nChange-Id: Idbf7bb21f5ab673ad77082c5c19921d2b276c04b\n"
    },
    {
      "commit": "00da68de8e46076cc7f43ba2d5e647ebd0b4d289",
      "tree": "297bc3754ea6c3082ed7fd48b3b20b8c8ff3fd20",
      "parents": [
        "f8338c40b7b7d6368ae616153c89b3686a937b0a",
        "dc60cc4253e43bacd0a52e47d03c73a5b0203b6e"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Fri Mar 23 09:08:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 09:08:10 2012 -0700"
      },
      "message": "Merge \"Wrapping new api\u0027s with proper RS_VERSION\""
    },
    {
      "commit": "f8338c40b7b7d6368ae616153c89b3686a937b0a",
      "tree": "6de81a4f263432f7d6078daf3f061464eb0518fa",
      "parents": [
        "2e842a58ebbc3a8a0599dfb0c19d7cda7ed21e5f",
        "043f5ced1bf82d8cf2df82a92a655afd26534df4"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Fri Mar 23 09:07:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 09:07:46 2012 -0700"
      },
      "message": "Merge \"More rearrangement and renaming.\""
    },
    {
      "commit": "a982dc05d7ca919c07f50e446549ef9dceadf6bd",
      "tree": "e9b0e1564069bf39447db97b966a01c6dda66609",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "message": "frameworks/base: move Zip* from libandroidfw to libutils\n\nZipUtils is needed by build/tools, move it from libandroidfw\n(frameworks/base) to libutils (frameworks/native).\n\nChange-Id: I2b4b7adcdf68eb25ee7cba5dd3b69eadf0523af3\n"
    },
    {
      "commit": "dc60cc4253e43bacd0a52e47d03c73a5b0203b6e",
      "tree": "eee4cc4c43cf663e7277893b6a8d189d35bde2d5",
      "parents": [
        "043f5ced1bf82d8cf2df82a92a655afd26534df4"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Mar 22 16:59:38 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Mar 22 16:59:38 2012 -0700"
      },
      "message": "Wrapping new api\u0027s with proper RS_VERSION\n\nChange-Id: Ib8656cb2b6d0b8adeab15edfd704620451ce56ad\n"
    },
    {
      "commit": "043f5ced1bf82d8cf2df82a92a655afd26534df4",
      "tree": "37380b95f9da620f6502675898a9a24402cc731e",
      "parents": [
        "b09aaeca0841fa053e0f70b7a6ff45ad475d32e1"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Mar 22 10:50:55 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Mar 22 10:50:55 2012 -0700"
      },
      "message": "More rearrangement and renaming.\n\nChange-Id: Ia922c5bff1734a29b786ba95065f81c8dedf90cd\n"
    },
    {
      "commit": "ad13c81371cb0b7e49b4c33159a346ce08ac5d69",
      "tree": "8d47082b929d42c016acaf4ea2f86355dc52c13e",
      "parents": [
        "222dfc784e5c5b4eb6a4770b9f46fe96eecbd65d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 22 08:33:09 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 22 08:33:09 2012 -0700"
      },
      "message": "Disable DisplayList properties\n\nDisplayList properties are (again) disabled by default, via flags in\nView.java and DisplayListRenderer.h. There are various artifacts to\nchase down before enabling by default.\n\nIssue #6198472 Native crash at pc 00076428 in many different apps in JRM80\nIssue #6204173 Date/time picker isn\u0027t rendering all parts of UI\nIssue #6203941 All Apps overscroll effect is rendered weirdly/has flickering\nIssue #6200058 CAB rendering issue - not drawing items?\nIssue #6198578 Front camera shows black screen after taking picture.\n\nChange-Id: I045dc82ce1d85fedbae3bb88eb2a2dfb6891d41f\n"
    },
    {
      "commit": "b09aaeca0841fa053e0f70b7a6ff45ad475d32e1",
      "tree": "194788eb9f3ce5a425490625226204be4473d0e5",
      "parents": [
        "3e6792232aa0ce3e650eaa03529c9eb2fe023ca9",
        "73797e97a80df386982153e53a1b7c9c2a36d7b0"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 15:31:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 15:31:25 2012 -0700"
      },
      "message": "Merge \"Changing rsg to rs where functions don\u0027t rely on graphics.\""
    },
    {
      "commit": "8564be6d8419f6b609e2d6c8daeec2d7b8594a0b",
      "tree": "29026f31aac444b435cb2be02181fa9fc44b69f4",
      "parents": [
        "88796897d323f9291af3116754622e41221946b1",
        "79c23f0f884ceb494c922d6769e6f12260c72daa"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 14:05:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 14:05:35 2012 -0700"
      },
      "message": "Merge \"Breaking up rs headers by logical components.\""
    },
    {
      "commit": "b0317984d34da99b614597ad0a8b39268eacb783",
      "tree": "0f3fceea85382bd70af903866f8e2750ac168f31",
      "parents": [
        "e72cf7341a608402309ce894fc12d050cc7c0e14"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 21 11:52:52 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 21 11:52:52 2012 -0700"
      },
      "message": "Plug memory leak.\nBug #6196903\n\nWhenever a memory flush happens, the GL renderer discards some or all of its\nfont caches. Each font cache holds an array of vertex indices that was\ninitially designed to have the same life cycle as the process. This changed\nwhen memory flushes were introduced but this array was never taken care of\nin the destructor.\n\nChange-Id: Ief124f609ea55b671c0a9b43637d9e013629ebaa\n"
    },
    {
      "commit": "73797e97a80df386982153e53a1b7c9c2a36d7b0",
      "tree": "6db3bb80105005b9937623327e098a2a3751c1bc",
      "parents": [
        "79c23f0f884ceb494c922d6769e6f12260c72daa"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 10:21:08 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 10:21:08 2012 -0700"
      },
      "message": "Changing rsg to rs where functions don\u0027t rely on graphics.\n\nChange-Id: I92a93d7a520b4a5416be88c7c05c2f8d3cc89243\n"
    },
    {
      "commit": "79c23f0f884ceb494c922d6769e6f12260c72daa",
      "tree": "569777c50450fd5c53110db62f7aff908c587b27",
      "parents": [
        "d87eb6c7c686182aaf0e7dd6facacb9e229f9684"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 09:58:15 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 21 09:58:15 2012 -0700"
      },
      "message": "Breaking up rs headers by logical components.\n\nChange-Id: I2d23eec0277b1136852b8a7acb61aecf6f699a7d\n"
    },
    {
      "commit": "bdd896c26453ffc56831b0cd167e8780068cee53",
      "tree": "2dae769a3c4628ebf814ccc103d553839182292b",
      "parents": [
        "80a6b33be276eb6c808fce13debb4bb7a489cdad"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 19 13:40:49 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 19 13:40:49 2012 -0700"
      },
      "message": "Enable DisplayList properties\n\nThis CL simply enables DisplayList property functionality. The code for\nthis feature is already there, but it\u0027s been disabled by default pending further\ntesting and analysis. This change sets these build-type flags to true\nso that all hw-accelerated apps will now use DisplayList properties by default.\n\nIn particular, this feature enables a fast-path for changes that affect the\nhandful of View properties involved in animations (alpha, translationX, etc.).\nSetting these properties now gets propagated to the native DisplayList associated\nwith the View, avoiding costly recreation of the SDK-level DisplayList and\nalso enabling faster invalidation of the view hierarchy.\n\nChange-Id: Ic99c8f28fa9183f2e54e9e4860b333eb9c540f7c\n"
    },
    {
      "commit": "55ba267c097b5aadc265bbb9abc7ec5323c33194",
      "tree": "99ac8653cd40f0c4911238fb7aefe8e6c00460ec",
      "parents": [
        "2833eaf03acda755995b4f15a87458b153478176",
        "2791429451d799d754a785e18e7bfb6befd05ba5"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Mar 16 10:13:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 10:13:06 2012 -0700"
      },
      "message": "Merge \"Add prop to force cap compute threading.\""
    },
    {
      "commit": "4bf8b209955e8a35ec2e4101ed3612e03ecc5dbb",
      "tree": "247ee3a66ce5bc03974bbb42cea668169bc9085c",
      "parents": [
        "ddc421d19c797096de77c24f68a37ad23216e2a7",
        "9d1992deaeb3d60d5928f05b649a2cc654ba98a3"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Mar 16 09:21:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 09:21:14 2012 -0700"
      },
      "message": "Merge \"Optimizing DisplayList properties\""
    },
    {
      "commit": "9d1992deaeb3d60d5928f05b649a2cc654ba98a3",
      "tree": "f6f5b527f3c4e2e43546ad65b24397734ac83e86",
      "parents": [
        "f63c52ac87c07ca37b9681a949b1bb5febce3e43"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 13 11:03:25 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Mar 16 09:14:52 2012 -0700"
      },
      "message": "Optimizing DisplayList properties\n\nDisplayList properties are still disabled default (flags in View.java\nand DisplayListRenderer.h). When they are enabled, and when a View has\na DisplayList, invalidations due to property changes are now optimized\nto avoid causing DisplayList recreation. This eliminates the drawing step\nof invalidation (due to changes in these properties), only requiring\nissuing the previously-created DisplayList to the GL renderer. Invalidation\nis slightly faster (less overhead as we walk up the hierarchy), getDisplayList()\nis potentially much faster (going down to ~0ms), depending on the complexity\nof the View being redrawn and the size of the invalidated hierarchy.\n\nChange-Id: I57587d5b810c3595bdd72a6c52349c2a3d1bdf25\n"
    },
    {
      "commit": "8d3c318b2d6690a156cc22ef6599a73bee7ed482",
      "tree": "ee99ea5976af25ccc213623dbc1e2424706dacd3",
      "parents": [
        "0c269766eaf702b4caeeec56739a63619fba3c93",
        "a1c41e13b521cdd611a8fc46e43b5ae0a2c00238"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "message": "Merge \"Add a new camera open API that allows taking the ownership.\""
    },
    {
      "commit": "2791429451d799d754a785e18e7bfb6befd05ba5",
      "tree": "746d9873b2d545f00b815fa4319a2c5a169a35ce",
      "parents": [
        "d1c8c1292c4273442c052d0899f3375913a51fc5"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Mar 15 19:18:03 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Mar 15 19:18:03 2012 -0700"
      },
      "message": "Add prop to force cap compute threading.\n\nbug\u003d6124869\n\nChange-Id: Ibf2cc388f3906cea2741382ff5e522e3b416393c\n"
    },
    {
      "commit": "acdd4b9c4b03bc6660274ab878731383adb5bca5",
      "tree": "41c9bbd804c64e2a29baac82f0a2168e2decb08a",
      "parents": [
        "a8bfeaf4f49fa33e96f37302f9c9b99c94aa1581"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 15 14:36:52 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 15 14:36:52 2012 -0700"
      },
      "message": "Set the default text length to -1, not 1\n\nChange-Id: Iccf6f8366c0b659ba7c90df99ae05ebc5d81fcbb\n"
    },
    {
      "commit": "a1c41e13b521cdd611a8fc46e43b5ae0a2c00238",
      "tree": "48877fa91b94c62482519f040e966997a9d214d2",
      "parents": [
        "5571ffdd9d419e3b1e050501e6f8dbfb04159b5d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Feb 23 19:01:00 2012 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 14:50:48 2012 +0800"
      },
      "message": "Add a new camera open API that allows taking the ownership.\n\nThe purpose is to let face unlock always get the camera\nsuccessfully. What happened was the camera applications may\nhave opened the camera in onResume under the lock screen.\nThis API lets face unlock take the camera from the camera\napplication. A new permission will be added, so other\napplicatoins won\u0027t be able to take the camera from the face\nunlock.\n\nbug:5584464\n\nChange-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6\n"
    },
    {
      "commit": "81fe4fbd6ba87a0be556c57c14de0b23cf51f179",
      "tree": "f1d31ac922a50504102dedb848a1791c4788f543",
      "parents": [
        "1f1bc8b12a85026788495567f83ffd1baf2630d8",
        "f57e2bceb9f09b0a06ebfe89cd5fd46efcfd6fc8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "message": "Merge \"AudioFlinger playback thread CPU measurement in Hz\""
    },
    {
      "commit": "f57e2bceb9f09b0a06ebfe89cd5fd46efcfd6fc8",
      "tree": "14f817b15ff2ee61648f15c54a7d8f6db465ae37",
      "parents": [
        "a2d68c93941d71194995efdfedc440110d7c5532"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 11:27:10 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:03:01 2012 -0700"
      },
      "message": "AudioFlinger playback thread CPU measurement in Hz\n\nLog statistics on CPU usage in Hz in addition to wall clock time\n\nUse CPU statistics for all playback threads, not just MIXER\n(but they are disabled by default by a compile-time debug macro).\n\nThreadCpuUsage library:\n - Move statistics out of the library and leave that up to the caller\n - Add API to determine a CPU\u0027s frequency\n\nChange-Id: Ia1011123146e641fcf210ef26e78ae2b4d3b64ad\n"
    },
    {
      "commit": "d1c8c1292c4273442c052d0899f3375913a51fc5",
      "tree": "d960fab220e90309b20b2ffb23e62103236d5766",
      "parents": [
        "89ea4ca9c26f3c7e365525a0b83500e85517a457"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Mar 14 15:36:02 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Mar 14 15:36:02 2012 -0700"
      },
      "message": "Fix minor C++ api issues.\n\nChange-Id: I30e12938be5da52b2d952db57a51b4deb5e27239\n"
    },
    {
      "commit": "67c7377ef15508f7b459fe393d30a694ec519d62",
      "tree": "259ca6ea56739ea5681048e7d5317f2027f784a0",
      "parents": [
        "29000644aece4bdaff9cd84fdbfacd38d1ec38a0",
        "390f882f8905e8d1ac0d4b7f2e01aa04dccc3c16"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 18:02:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 18:02:55 2012 -0700"
      },
      "message": "Merge \"Correctly compute the number of bytes written by each op. Bug #6157792\""
    },
    {
      "commit": "390f882f8905e8d1ac0d4b7f2e01aa04dccc3c16",
      "tree": "e3959d0a87585b60b8c4e1bc0d16ca874cda9c23",
      "parents": [
        "6810a2442b7c38a3f5d04aa91cef9c0cc5f92cb9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 18:00:10 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 18:00:10 2012 -0700"
      },
      "message": "Correctly compute the number of bytes written by each op.\nBug #6157792\n\nPreviously, DisplayListRenderer would compute the number of bytes\nwritten after a drawing op by looking at the difference between\nthe start pointer of the command stream and the end pointer of\nthe command stream. The SkWriter class used to record the commands\nstream allocates blocks of storage which would cause a crash when\na command spanned two blocks.\n\nChange-Id: I4d79d3feeb6d72d9d4e6ab05ecebd72d004be56c\n"
    },
    {
      "commit": "29000644aece4bdaff9cd84fdbfacd38d1ec38a0",
      "tree": "8eade5a10366687d8d00e0270d93eb371f58a7c0",
      "parents": [
        "6810a2442b7c38a3f5d04aa91cef9c0cc5f92cb9",
        "759eb4e8f069ecebd3cd790997397d40568f4a12"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Mar 13 16:54:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 16:54:11 2012 -0700"
      },
      "message": "Merge \"Fix test makefile\""
    },
    {
      "commit": "759eb4e8f069ecebd3cd790997397d40568f4a12",
      "tree": "b3c47a234d66800daf8b8e9b33fce18d8152e105",
      "parents": [
        "7d9ec65da08934923def65006a51a9367df2fb58"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Mar 13 16:22:46 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Mar 13 16:22:46 2012 -0700"
      },
      "message": "Fix test makefile\n\nbug\u003d5972398\n\nChange-Id: I9298e08220863eecf5c87047a05d7aa146a4c060\n"
    },
    {
      "commit": "9dc348d75688faba645c03ecd6e72de7cecc87ba",
      "tree": "5bf27444139c7889bcb966823c54c7da296410a2",
      "parents": [
        "f2fbd2eda54cc6083d302ab00367af3db2b7e793",
        "2b6c32ca4177f1a97307f9cbd81ca485df28762c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "message": "Merge \"Fix spurious ANRs in native activities.\""
    },
    {
      "commit": "2b6c32ca4177f1a97307f9cbd81ca485df28762c",
      "tree": "abc217f8ff191ce1ecc7c4eb9b51185b6d47625d",
      "parents": [
        "b2679481b57d87945df02983f95ff8e6c9ba5928"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "message": "Fix spurious ANRs in native activities.\n\nSome native activities experienced ANRs when the input consumer\ndeferred an input event due to client-side batching.  If the\ninput channel was fully emptied then the client had no way of\nknowing that it should wake up to handle the deferred input event.\n\nThis patch also fixes some lock issues in the native activity\ninput queue implementation.  In at least one error case, it\nwas possible for a function to exit without releasing the lock.\n\nBug: 6051176\nChange-Id: I4d9d843237e69b9834f8d8b360031b677fcab8c3\n"
    },
    {
      "commit": "491189f6bb81827a0c8e343f89420a9bcd2e62ae",
      "tree": "d7b43525815c2a8bf13bbc00b8363f8c6d83ddda",
      "parents": [
        "3c9d9c18b41d052c76bad10a448d3acce024649b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 13 11:42:34 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 13 11:42:34 2012 -0700"
      },
      "message": "Fix garbage deref with DisplayList property structures\n\nThis is the real fix to issue 6158892. We currently delete\ntransform/camera structures at DisplayList destructor time, if these\nstructures are not NULL. We set the fields to NULL in an init() method\ncalled (eventually) by the constructor. But it is possible for the object\nto be destroyed before that init code is called, resulting in the deref\nbug reported. The fi is to set these structures to NULL directly in the\nconstructor.\n\nIssue 6158892i: Device runtime restarts frequently\n\nChange-Id: Ibfa0f9314767eed6fd51f4ec7edc0d0edd5fdd0f\n"
    },
    {
      "commit": "3c9d9c18b41d052c76bad10a448d3acce024649b",
      "tree": "b48bafb887d1ed6cfe57cdfc3ecf13b377fc40ad",
      "parents": [
        "e5359373e039c2a30a655d4d5ad82ab08a4715cd",
        "d5a85fb63d91a9297e8d9a11016f3b3ed60dfbab"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 11:19:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 11:19:26 2012 -0700"
      },
      "message": "Merge \"Follow the include style used elsewhere in the library\""
    },
    {
      "commit": "d5a85fb63d91a9297e8d9a11016f3b3ed60dfbab",
      "tree": "e33b5e49f32a1c9d75f3bccc7662487110afc69f",
      "parents": [
        "065781397099719805a0a42023581b2622984dd4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 11:18:20 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 13 11:18:20 2012 -0700"
      },
      "message": "Follow the include style used elsewhere in the library\n\nChange-Id: I14aebdaeb04b6f4c611153ece4ac1f6ad9bfc15f\n"
    },
    {
      "commit": "866ed817d0adf5b874eff277b4a4d2bcc6f61830",
      "tree": "0fd2e788bbbb7d8a65654e327344234af4c8e119",
      "parents": [
        "81a0647c302edb4ed74d6d80d8f85c85a6c3fec4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 13 11:13:13 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Mar 13 11:13:36 2012 -0700"
      },
      "message": "Fix garbage deref in DisplayList structures\n\nIssue #6158892: Device runtime restarts frequently\n\nChange-Id: I4e6afaaf9ac66d6846caf0ed82ea67163d8b15c2\n"
    },
    {
      "commit": "a1cff5043d0fbd78fcf9c48e7658e56a5b0c2de3",
      "tree": "01a809b1ae5a50b8721f05c540a76570794d828c",
      "parents": [
        "bdc5afeee57a943adac3896297fab74b96b307c1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Feb 21 13:43:44 2012 -0800"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Mar 12 15:41:48 2012 -0700"
      },
      "message": "Handle view properties at the native level\n\nBasic functionality of handling View properties (transforms,\nleft/right/top/bottom, and alpha) at the native DisplayList level.\nThis logic is disabled for now (via compile-time flags in View.java and\nDisplayListRenderer.h) as we continue work on it (there is no advantage\nto the new approach until we optimize invalidation and rendering paths\nto use the new code path).\n\nChange-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3\n"
    },
    {
      "commit": "3c4b03d48461928f007efff9da35c5197313fbac",
      "tree": "e5b7e54c9be21daaf9e51e76c7f79d87d87637d3",
      "parents": [
        "dd4a464741a1f674e7e5f04c1694912810855719",
        "d091526841d7eabd6fc73124b572c94bb47f177c"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Mar 12 14:45:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 14:45:32 2012 -0700"
      },
      "message": "Merge \"Fix argument passing with dimLOD.\""
    },
    {
      "commit": "d091526841d7eabd6fc73124b572c94bb47f177c",
      "tree": "b2ab6fc233d109db40fc9cf37f4b29c6a749c63b",
      "parents": [
        "772a73963d22163deff3fd3c7f65013ccb941f34"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Mar 12 14:42:05 2012 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Mar 12 14:42:05 2012 -0700"
      },
      "message": "Fix argument passing with dimLOD.\n\nBUG\u003d6152130\n\nChange-Id: I5c857b692af8ec45e4cbef8140c44d72aec6600e\n"
    },
    {
      "commit": "6e0621794dc771abf417ec0f408c5b6e9b2830b1",
      "tree": "92c21ad0da8032b4ad23523f6bf27eb3900f7af0",
      "parents": [
        "5d1907b2f3e624dc838e9658a1986636252ac8b1",
        "3fe4eb9c60d39acaadd9f807b1a21c239d1270ef"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 12 12:58:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 12:58:21 2012 -0700"
      },
      "message": "Merge \"Turn down the number of glGetError() calls.\""
    },
    {
      "commit": "3fe4eb9c60d39acaadd9f807b1a21c239d1270ef",
      "tree": "29b0f6182fea31c047da7fd03acfbd21b06caa7e",
      "parents": [
        "772a73963d22163deff3fd3c7f65013ccb941f34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 12 12:49:41 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 12 12:49:41 2012 -0700"
      },
      "message": "Turn down the number of glGetError() calls.\n\nglGetError() was invoked every time a display list was updated. This\nwas unnecessary since display list updates do not execute OpenGL code.\n\nChange-Id: Ia0a75a65ccf2a4701fb3a828848cd0c42f256c6c\n"
    },
    {
      "commit": "e1dd94b1a0698fa356b84e1aa80d43f09280c138",
      "tree": "68be3e6ce3ff3f75b5e526be4ead1bbf9b88898c",
      "parents": [
        "c4ffe77a710880416a7cf7c20277311bab2d7abc",
        "50159b1f6af8cbb670ff49908c20d9cdedefb0af"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Mon Mar 12 09:52:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 09:52:47 2012 -0700"
      },
      "message": "Merge \"Split off driver code into a separate static library.\""
    },
    {
      "commit": "772a73963d22163deff3fd3c7f65013ccb941f34",
      "tree": "6d0d6b2b1ac89d7134310814541d013c38decb08",
      "parents": [
        "d65a4f62fe641cfa485663b162b6f10aa74e3665",
        "55fd2c9b2e87986b03cb58676bdf46bc6d5f1c36"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:38:11 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 17:38:11 2012 -0800"
      },
      "message": "Merge \"Don\u0027t bind data to missing uniforms\""
    },
    {
      "commit": "55fd2c9b2e87986b03cb58676bdf46bc6d5f1c36",
      "tree": "d992f9e11ac37f021fba69d0de76575864e4902d",
      "parents": [
        "887c2eea31a9ef2bc27186773e173e083eee7314"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:36:01 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Mar 09 17:37:29 2012 -0800"
      },
      "message": "Don\u0027t bind data to missing uniforms\n\nChange-Id: Ib9d1f14eb0bef04e0910baa4eaf3e49cce81c0ce\n"
    },
    {
      "commit": "50159b1f6af8cbb670ff49908c20d9cdedefb0af",
      "tree": "530c8fba3776eba50e045bb6a4c415371780fbd3",
      "parents": [
        "e61e667d53e76f1286844d8bcdf61bd3b13cfdf7"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Fri Mar 09 15:04:23 2012 -0800"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Fri Mar 09 15:04:23 2012 -0800"
      },
      "message": "Split off driver code into a separate static library.\n\nChange-Id: I055a6d7aecf3663e5e399a0ddee068cc33eca666\n"
    },
    {
      "commit": "6df8876f79e4b784150eb46d5c63b623eac9f90d",
      "tree": "849231de9eb5b3bfb864affbd14dae3b41adff78",
      "parents": [
        "6c8683987d36e7baafec0094fb94cfb97950ab38",
        "bedc023170ccde8cc814df0b3e46a834b297325a"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Fri Mar 09 13:31:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 13:31:41 2012 -0800"
      },
      "message": "Merge \"More header untangling.\""
    },
    {
      "commit": "6c8683987d36e7baafec0094fb94cfb97950ab38",
      "tree": "1b91ca1c0506ec96c9c2d216900c5175f9555e76",
      "parents": [
        "da8b340fd141e8b57f12b3ff75c4c79592d17b1c",
        "5c6dfeb1fb47102ffce415ea7898b33dd1290d54"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 09 13:26:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 13:26:35 2012 -0800"
      },
      "message": "Merge \"Fix issue #6054627: resource matching issue of size qualifiers\""
    }
  ],
  "next": "5c6dfeb1fb47102ffce415ea7898b33dd1290d54"
}
