)]}'
{
  "log": [
    {
      "commit": "285dbde2e0cd0057be070ded3be8f5f453147edc",
      "tree": "b9b6c52aae0b3dffef51d7113713ffad60a6a365",
      "parents": [
        "46a26c63ed0a4322551ae0d8bac3c558d45d20dc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 16:09:43 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:34:50 2010 -0800"
      },
      "message": "Added a name to Surface created by SurfaceFlinger\n\nUpdated the window manager to use this new facility.\nSurfaces name are now printed by \"dumpsys\".\n"
    },
    {
      "commit": "9cce325fae8adcf7560a28eef394489f09bad74d",
      "tree": "3497604564acd2575016d3a331d661f22a8e6db3",
      "parents": [
        "4fae0fd0c9425318094d4c0059331c2c7a996c66"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "2b92d89e23e1a2a07d0e0d01c00eed33ea580aff",
      "tree": "e48a80222a08d42335c728ecf493e6288c34a75d",
      "parents": [
        "1b26c6ae58f9f0e37fd0e3ae7c03a74efcdec904"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 08 15:49:35 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 08 15:49:35 2010 -0800"
      },
      "message": "Add support for physically rotated displays\n\nThis feature is currently controled by a system property.\n\"ro.sf.hwrotation\" can be set to either 90 or 270. It\u0027ll cause\nSF to rotate the screen by 90 and 270 degres respectively.\n\nThat is, if the driver reports 800x480 for instance, and\nro.sf.hwrotation is set to 90, applications will \"see\" a\n480x800 display and will run in portrait.\n\nThis is implemented by introducing an extra \"display\"\ntransformation in the GraphicPlane.\n"
    },
    {
      "commit": "0408772e34931351d062f2088b611325ddaa6cdb",
      "tree": "20216060dace5fea9d84f39eae9d649091116745",
      "parents": [
        "18facb7c4d471e7a2d1e44f5ac1fcff056f96dcf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 17:23:28 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 17:23:28 2009 -0800"
      },
      "message": "fix [2297155] SurfaceFlinger\u0027s freeze-timeout doesn\u0027t work\n\nThere was bug in the logic that calculated the relative timeout, the start time was\nreset each time an event was received, which caused the timeout to never occur if\nan application was constantly redrawing.\n\nNow we always check for a timeout when we come back from the waitEvent() and\nprocess the \"anti-freeze\" if needed, regardless of whether an event was received.\n"
    },
    {
      "commit": "550a11455a5155b078085fd5f464d7f3e5dfb7fc",
      "tree": "cc2aae8a08b6e1429c456596bcbfcba6485b1618",
      "parents": [
        "a248b0f5b8b6153b9cf9e09b39f72bc20a5c6908"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Oct 29 10:19:34 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Oct 30 10:24:06 2009 -0700"
      },
      "message": "DO NOT MERGE: Another gcc 4.0.3 workaround.\n\nTemporarily make a function public that doesn\u0027t need to be.  When\nhost gcc-4.0.3 is gone from the build servers we can undo this.\n\n(Cherry-picked from eclair-mr2.)\n"
    },
    {
      "commit": "3330b203039dea366d4981db1408a460134b2d2c",
      "tree": "f165f7801f2ee8034ad1edfd34e2b554fdaf662f",
      "parents": [
        "0ad3f9f4009c76b56f41da5d26eb7712dee938f1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 05 17:07:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 17:00:25 2009 -0700"
      },
      "message": "fix [2167050] glTexImage2D code path buggy in SurfaceFlinger\n\nWhen EGLImage extension is not available, SurfaceFlinger will fallback to using\nglTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an\nextra copy. However this code path has never been exercised and had some bugs\nwhich this patch fix.\n\nMainly the scale factor wasn\u0027t computed right when falling back on glDrawElements.\nWe also fallback to this mode of operation if a buffer doesn\u0027t have the adequate\nusage bits for EGLImage usage.\n\nThis changes only code that is currently not executed. Some refactoring was needed to\nkeep the change clean. This doesn\u0027t change anything functionaly.\n"
    },
    {
      "commit": "8c0a3d75c8823e179d19c6303f64e669975a4d85",
      "tree": "049b3fe9067777c0da2eb94c5c5118d3bda557d6",
      "parents": [
        "dd3423c6247965bf67ea30c75e484a6f5d72b1a2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 16:44:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 16:59:57 2009 -0700"
      },
      "message": "fix [2133214] STOPSHIP: revert I4a06bb4f: workaround for [2113743] Sholes: frozen then runtime restart going to list view\n\nRevert \"workaround for [2113743] Sholes: frozen then runtime restart going to list view\"\n\nThis reverts commit 4a06bb4f3355b0ef2b76aa883704da9d154c44ae.\n"
    },
    {
      "commit": "2944a2b3601ae5847cf54b3130dcf653a7b24b8a",
      "tree": "8a620fe5903ac32829c721d89ba589ef76fb87b5",
      "parents": [
        "15b047cfb2146e37c76df303b4a5720009ec0aed"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 21 14:33:20 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 21 14:33:20 2009 -0700"
      },
      "message": "Work around gcc 4.0.3 bug.\n\nThis appears to fix the sim-eng build on the gDapper build machines.\n\nBasic problem is that LayerBuffer::OverlaySource has a constructor that\ncalls SurfaceFlinger.signalEvent().  SurfaceFlinger lists LayerBuffer\nas a friend, but that\u0027s not enough to convince gcc that the embedded\nOverlaySource class is also a friend.  I don\u0027t see a way to make them\nfriendly, so I marked signalEvent() as public.\n"
    },
    {
      "commit": "1f0ffc46fdb391a4d5a096f6b8c4554937ca081f",
      "tree": "f2520c83e88292384adb70bd2d8b03fdd58db92b",
      "parents": [
        "03268374fe506458e50b6c0ad6d333077883bb5e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 22:04:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 20 17:08:45 2009 -0700"
      },
      "message": "workaround for [2113743] Sholes: frozen then runtime restart going to list view\n"
    },
    {
      "commit": "cbb288bfe89f585bf48371bd31b2d4aafa32f32e",
      "tree": "73d20f36910dcab8c17c686cdd7014cee285bc39",
      "parents": [
        "f0780974fc31ae88135d1dcb67cb5fd86bb6deb6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "message": "fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nRewrote SurfaceFlinger\u0027s buffer management from the ground-up.\nThe design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.\n\nThe main new feature is to be able to dequeue all buffers at once (very important when there are only two). \n\nA client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.\n\nThe current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.\n\neg. Allowed sequence:   DQ, DQ, LOCK, Q, LOCK, Q\neg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q\n\n"
    },
    {
      "commit": "9795c42e557cfa37b9fd353ef7a2a7977a77f504",
      "tree": "d5d82843e6f352ddee5127025da8b06be250e42e",
      "parents": [
        "161f74cb6af758e77d6ce7e4750c2f9813a5f9f5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 26 16:36:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 26 16:55:50 2009 -0700"
      },
      "message": "dumpsys SurfaceFlinger will now always dump SF\u0027s state, even if SF is deadlocked\n(in this case the state is dumped without the proper locks held which could result to a crash)\n\nin addition, the last transaction and swap times are printed to the dump as well as the time spent\n*currently* in these function. For instance, if SF is unresponsive because eglSwapBuffers() is stuck,\nthis will show up here.\n"
    },
    {
      "commit": "1c97d2ebe1f035beabd90089bfc78326b73d7864",
      "tree": "f78d8eb4239a3abf418d2efd1de88e3b20005df9",
      "parents": [
        "50517543d84446fc91fa65c60eda6d2e2724de10"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 17:46:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 17:46:26 2009 -0700"
      },
      "message": "fix a bug that caused the PixelFormat viewed by Surface to be wrong.\n\nwhat happened is that the efective pixel format is calculated by SF but Surface nevew had access to it directly.\nin particular this caused query(FORMAT) to return the requested format instead of the effective format.\n"
    },
    {
      "commit": "5d7126b625c8c4a7b945e8c247b63abff7bc13b6",
      "tree": "74ae309408f4e1e7916cbeba037a87d7da62ecd3",
      "parents": [
        "5fb9d7d1c168be17573f805615021280e0839f11",
        "792561dab0733bea46e5de58c03640bfb14869fd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 14:20:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 14:20:21 2009 -0700"
      },
      "message": "resolved conflicts for merge of ac38dfc5 to master\n"
    },
    {
      "commit": "970112231e887c8a14441ec4fed55342e019fc8c",
      "tree": "446bac9abff8cd5f446664701268b582b11331a5",
      "parents": [
        "c05c1c14be8fe4d406a57e8fc9ece7631e93e12c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 10:57:27 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 28 10:57:27 2009 -0700"
      },
      "message": "fix [2017532] Partial Update leaves residual image.\n"
    },
    {
      "commit": "1df3bbb8d88a4e725e4a8cdcb293f1e078176f4a",
      "tree": "596d6cc092e5397fd35aac6110e0d32d66551aaa",
      "parents": [
        "96e1107f4b8662d42f94cb71015717b60c058b1c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 19:04:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 19:04:55 2009 -0700"
      },
      "message": "trying to fix the sim, I\u0027m not even sure this syntaxe is valid, but my compilo doesn\u0027t complain\n"
    },
    {
      "commit": "7303c6bf1a8b00a0e7d8165d774a1f259b4ccda9",
      "tree": "329ae25bcf03c06ddca3828a038bd499c63dbee0",
      "parents": [
        "6b5513538aedc19c624ff7a260c832dcfae630f2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:11:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:50:51 2009 -0700"
      },
      "message": "get rid of references to MemoryDealer in SurfaceFlinger\n"
    },
    {
      "commit": "759fdb2ef735422d6b8c65e168fa9d1c24562a86",
      "tree": "043f7f5a9288a37b0e888ebb2d537930c154a149",
      "parents": [
        "84d1f7a09827fe195dd08b647b8c5092d03516f7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 17:33:40 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:45:29 2009 -0700"
      },
      "message": "free gralloc buffers as soon as possible (when a surface is not visible any longer), client who have the buffers still mapped won\u0027t crash, btu may see garbage data\n"
    },
    {
      "commit": "f9d932774e06d5122c48b47d8cabd791783f56d2",
      "tree": "e78c8148d0e3fcc166ebb3f4bd60c931ec956344",
      "parents": [
        "cd8c5e29c245e55a5f648b7a10f8586baf64e622"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:00:27 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:00:27 2009 -0700"
      },
      "message": "fix a memory corruption where a SF Client could be used after it\u0027s been destroyed\n"
    },
    {
      "commit": "945ebbfd3dc07c7168602a1603eeb76ea7425376",
      "tree": "84d870c92c75c4e01ce1da91de579342a75260ee",
      "parents": [
        "aa6e88b80854dbcaa12678e77ffd440006faf828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 18 18:48:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 18 18:48:39 2009 -0700"
      },
      "message": "implement dimming with a texture on msm7k so it uses copybit\n"
    },
    {
      "commit": "375f56363a8737119ce2222dcfaacbe1cf733fc0",
      "tree": "5cdf2be415ef2668b6d4179b00b61e5a57f5c077",
      "parents": [
        "5e78e0965169790111f01354e78b0f8d34c94840"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 15 18:24:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 15 21:56:51 2009 -0700"
      },
      "message": "new Permission class used to improve permission checks speed (by caching results)\n"
    },
    {
      "commit": "3d57964a81cd631d80aa9575647e1ce35b5e82d5",
      "tree": "0958ca702a23944cd1b69d4718ee19ac545d9150",
      "parents": [
        "9648c1a2b9b527bcef64bb9d96e8385a14949840"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "message": "fix a bunch of problems with destroying surfaces.\n\nnow, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).\n"
    },
    {
      "commit": "310f8da0c3122ed5419db8f12a6e98d3188325b2",
      "tree": "0f3435d35e7fe8fca8dc2b347ff46276a8c351c8",
      "parents": [
        "20f68782a4ea71c6a977d7f87d8288d3daa265ec",
        "bdbf6b094d61f694f162a5a5279caededcb1f0a5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 01:27:01 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 02:16:08 2009 -0700"
      },
      "message": "merge master to master_gl\n"
    },
    {
      "commit": "bdbf6b094d61f694f162a5a5279caededcb1f0a5",
      "tree": "b7a3cd2bd1a437237e71598d05b88be3f681c610",
      "parents": [
        "3cf34f1345eca75c5282b65dc4bda5f1e4f23d0d",
        "1131392281cebcf958bbf5981203b1a34eef6ba2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 19:36:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 21 19:36:53 2009 -0700"
      },
      "message": "am 69a6c3eb: Merge change 2292 into donut\n\nMerge commit \u002769a6c3ebd46a8de0e896747757f364322c12608d\u0027\n\n* commit \u002769a6c3ebd46a8de0e896747757f364322c12608d\u0027:\n  split boot animation out of SurfaceFlinger\n"
    },
    {
      "commit": "a1ecca920e15ce04fe56ebf4f1b52ba711f9eb2d",
      "tree": "d5eca56524292b41940347ddbe5387fbf136c141",
      "parents": [
        "1bdc51faa8ecddf4ab34769bfc50becb454c5e79"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "message": "split boot animation out of SurfaceFlinger\n\nConflicts:\n\n\tdata/etc/platform.xml\n"
    },
    {
      "commit": "c5b2c0bf8007562536b822eb060fc54a01f8e08b",
      "tree": "da6084f542177972cf72a985b5d2c10330f87de3",
      "parents": [
        "208059f67ed2dd9fa025e07fcb6954d3cb61c79e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "0926f50664c739eaee60341f8e8c694dc9a4f3eb",
      "tree": "642597de2cc52f7636ae74f1a88f3706e3e54a4a",
      "parents": [
        "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "message": "update surfaceflinger, libui and libagl to the new gralloc api\n\n- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.\n- factor all the lock/unlock code in SurfaceBuffer.\n- fixed \"showupdate\" so it works even when we don\u0027t have preserving eglSwapBuffers().\n- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.\n- make use of LightRefBase() where needed, instead of duplicating its implementation\n- add LightRefBase::getStrongCount()\n- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp\n\n- disabled copybits test, since it clashes with the new gralloc api\n\n- Camera/Video will be fixed later when we rework the overlay apis\n"
    },
    {
      "commit": "cbc93ca8005d0a885d54b9a13c18ea07220feedf",
      "tree": "2cb3f50e2aa184a79ad47c573206b596dcb0e6cb",
      "parents": [
        "0aa758d64ac530833ce9a311b164c9175a7a054c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 21 18:28:33 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:31:11 2009 -0700"
      },
      "message": "get rid of the \"show fps\" debug option\n"
    },
    {
      "commit": "f1d8e87b09abf963cd5b6a026194c1940fadb7b4",
      "tree": "f26b490726ff7548b08cd705f1411fe13528e6a4",
      "parents": [
        "9a11206fe793363c0e8897b478cbe6ef8c52b543"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 20 19:39:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:22:36 2009 -0700"
      },
      "message": "a brand new MessageQueue for SurfaceFlinger.\n"
    },
    {
      "commit": "9a11206fe793363c0e8897b478cbe6ef8c52b543",
      "tree": "0b7fc29027a6803e1ab992f47f0dd66c2a3e3843",
      "parents": [
        "9f88afb013a7560bf1362d7999a4609e38d0ea77"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 17 19:36:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 15:00:41 2009 -0700"
      },
      "message": "more Surface lifetime management\n\nSurfaces are now destroyed once all references from the clients are gone, but they go through a partial destruction as soon as the window manager requests it.\nThis last part is still buggy. see comments in SurfaceFlinger::destroySurface()\n"
    },
    {
      "commit": "01b766839e06c32540cef100e3a7710d12cf1eef",
      "tree": "38528a4f4e1c99b5941f372ec617751ec48dac8c",
      "parents": [
        "62185b7335e85211dc4d0e2003354eb3ea2e66ef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "message": "more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.\n\nThe WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we\u0027ll try to fix later).\n"
    },
    {
      "commit": "076b1cc3a9b90aa5b381a1ed268ca0b548444c9b",
      "tree": "b87f7863623b37fa9a6cc4ef48934aab46f79986",
      "parents": [
        "4ec21527096d0dcaa99634e6058aca3a415461af"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "message": "Integrate from //sandbox/mathias/donut/...@145728\n\nSurfaceFlinger rework for new EGL driver model support.\n"
    },
    {
      "commit": "c08731e756868653d09d3e49b723706df3687070",
      "tree": "9e814e309f97b869d3c558f719a05d63d4707edd",
      "parents": [
        "0d1318b974feba2e6ff13e36a1781343c2fce045"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "message": "AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143320\n"
    },
    {
      "commit": "0d1318b974feba2e6ff13e36a1781343c2fce045",
      "tree": "14ce5fb62dc2a66d81da6ee7fc3444c804676b73",
      "parents": [
        "c3aa00b29fd9ab9b06a2bd675dac404970acb477"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 17:58:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 17:58:20 2009 -0700"
      },
      "message": "AI 143309: am: CL 143160 am: CL 142856 new-new-new-new rotation animation. it may still change one more time.\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143309\n"
    },
    {
      "commit": "24fd77d44088011c88c55a5de459e75792bb2ecb",
      "tree": "9e814e309f97b869d3c558f719a05d63d4707edd",
      "parents": [
        "ecbeaa0cf1cd0bf1bcb00bb25502137db5a9847f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "message": "AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143171\n"
    },
    {
      "commit": "ecbeaa0cf1cd0bf1bcb00bb25502137db5a9847f",
      "tree": "14ce5fb62dc2a66d81da6ee7fc3444c804676b73",
      "parents": [
        "c1992a6f7551e22f14bb3fb92f1bd0b074cdac32"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 15:36:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:36:09 2009 -0700"
      },
      "message": "AI 143160: am: CL 142856 new-new-new-new rotation animation. it may still change one more time.\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143160\n"
    },
    {
      "commit": "7c143aab44b562eb917ca57ed7c1eb584591b7e2",
      "tree": "e1d504f26085a7e832ca0d628ab90b06874d1e4a",
      "parents": [
        "b535e58351bf204e7a96c9cf5f4aebe5bf56f9f2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 22:50:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:50:50 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@142447,142447\n"
    },
    {
      "commit": "74c770be33d41f129334de97ce4d0db141312d02",
      "tree": "e1d504f26085a7e832ca0d628ab90b06874d1e4a",
      "parents": [
        "6219dd7d3a685725e1f8e0fad94e6aa64492ca82"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 22:43:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 22:43:22 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@142446,142446\n"
    },
    {
      "commit": "e74be0afd9b450b8fae7eae92e9c768add565a26",
      "tree": "e65580f0caa45af93f0ffd8e00884a1aa6031b3a",
      "parents": [
        "3cff302213b17e74dcf5cdeb9c4139234e79cb4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 20:25:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:25:55 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@141504,141504\n"
    },
    {
      "commit": "3df5e433a2bbdec20af735fe7fd928bef8ed6ad8",
      "tree": "e65580f0caa45af93f0ffd8e00884a1aa6031b3a",
      "parents": [
        "78b877e7e673bc248a878e4513f978b2eb82e1c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Tue Mar 24 20:25:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 20:25:29 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141502,141502\n"
    },
    {
      "commit": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "ac65e0b172b33f7e068c14e3d95678fa20205577",
      "tree": "4c290a9665c829ec3774425563260a94564fcb71",
      "parents": [
        "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993",
      "tree": "bc5a1f806bd06db8abb197e80be9ead3644c0bcc",
      "parents": [
        "e41dd756db5184519f4dacbf4d95b333822605c7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "276293246ea9cbc0a578a7697cc48930376ec0e9",
      "tree": "03804488c60dda65699333d2311c8d1842ec4b65",
      "parents": [
        "e09fd9e819c23dc90bca68375645e15544861330"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "e09fd9e819c23dc90bca68375645e15544861330",
      "tree": "9a9fdadd1301625f875a3c126c986c79e3363ac4",
      "parents": [
        "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
