)]}'
{
  "log": [
    {
      "commit": "db403e8ff0d7727015e1a5009bab20eb7ec205bc",
      "tree": "d3f1ecdf0c9aae3a7990b4c525a8bbfbd78d2592",
      "parents": [
        "d50fdb02091e7d258ed9701af5f57d1b2b15cd61"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 18 16:47:56 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 18 16:47:56 2012 -0700"
      },
      "message": "split-up Client.h out of SurfaceFlinger.h\n\nChange-Id: I1993bf23e417163749d886283563a93d50b361b4\n"
    },
    {
      "commit": "555f89d8df316cdc5a25dbedb8614c2ac7a5e0a9",
      "tree": "0fdfb7381cd68f8fbdccad45417653e0231bb3d1",
      "parents": [
        "161534a3c5ee77bc91e7a73ffb6274f35324f8b5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 08 18:54:22 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 09 14:53:26 2012 -0700"
      },
      "message": "Add callback hack to find out when to reload system properties.\n\nEvery IBinder object can accept a new transaction to tell it that\nit might want to reload system properties, and in the process\nanyone can register a callback to be executed when this happens.\n\nUse this to reload the trace property.\n\nThis is very much ONLY for debugging.\n\nChange-Id: I55c67c46f8f3fa9073bef0dfaab4577ed1d47eb4\n"
    },
    {
      "commit": "64a1e08b86d72cb375f9dfdf4eb6307f71817350",
      "tree": "ed3cdc1483a0e66d139d29335be06cd8b3e828f0",
      "parents": [
        "4a8111bc8c7e659164f75dcfe9efcd33582f3669"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 19 17:31:53 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 19 17:32:03 2012 -0700"
      },
      "message": "SF doesn\u0027t need more than a few binder threads\n\nChange-Id: Ic4659fb81f9990cc7caf84a496a8ae659a1d16a9\n"
    },
    {
      "commit": "1b80f793d2328dd94a151411a1cc3a676121ffc7",
      "tree": "b0cff08b9879946de7b4218fd09c1467e39e5c46",
      "parents": [
        "aa1667f006b8900c63f9b8de6883f06dc3980b91"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 17 16:11:08 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 18 17:50:03 2012 -0700"
      },
      "message": "add set thread count\n\nChange-Id: I70f02908d8362a465eb8a2a24356f6989847f7ba\n"
    },
    {
      "commit": "7a7524810a0950c1c2b18014a8f1c637275165c4",
      "tree": "3acf9baaeac8427a99c27354e92b5d8daf0e1cc6",
      "parents": [
        "ed61a47c5b23e277d20a49fceb16d6ba5896b7d2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 19:54:39 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 19:58:57 2012 -0800"
      },
      "message": "get rid of MemoryHeapPmem\n\nMemoryHeapPmem is not used any longer. PMEM is not a supported\ntype of memory by the system anymore. a particular device might\nuse PMEM and need something like MemoryHeapPmem, in this case this\nshould be implemented in device specific code (HAL).\n\nThis will most likely break older no longer supported targets.\n\nChange-Id: I434e4291219950018de8b793b0403bb2d92dd5cc\n"
    },
    {
      "commit": "89d353a4c52197695f06e37267ade99dc627e7e0",
      "tree": "06a5a4f605bb958075eaf7279f44611883507b0a",
      "parents": [
        "7244f940d7f56d2423b1c04e8061a57ccce1eac1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "message": "move CursorWindow from libbinder to libandroidfw\n\nChange-Id: I3b304e4f74e0d0ec8b20c57296c62449c9a0f792\n"
    },
    {
      "commit": "a94f129a7bbaa8ea45c50e49ba3e6127ca2a15ec",
      "tree": "cc601c2c420c5235b4e1526d29509c568f4eb13e",
      "parents": [
        "2bf030602f54cd4594a64f19fe84661660d18952"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:12:18 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 18:06:01 2012 -0800"
      },
      "message": "Some hardening of isolated processes by restricting access to services.\n\nServices now must explicitly opt in to being accessed by isolated\nprocesses.  Currently only the activity manager and surface flinger\nallow this.  Activity manager is needed so that we can actually\nbring up the process; SurfaceFlinger is needed to be able to get the\ndisplay information for creating the Configuration.  The SurfaceFlinger\nshould be safe because the app doesn\u0027t have access to the window\nmanager so can\u0027t actually get a surface to do anything with.\n\nThe activity manager now protects most of its entry points against\nisolated processes.\n\nChange-Id: I0dad8cb2c873575c4c7659c3c2a7eda8e98f46b0\n"
    },
    {
      "commit": "4e975bb488bb3947703e95cb33a4838adda680f7",
      "tree": "6ec8d31f40818c68a5f53534574cbc05d4a271a4",
      "parents": [
        "e08b48632b408e20676e4ce432debb6ae9fc1b13"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed May 04 14:49:28 2011 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 03 12:01:47 2012 -0800"
      },
      "message": "Multi-user - 1st major checkin\n\nSwitching activity stacks\nCache ContentProvider per user\nLong-press power to switch users (on phone)\n\nAdded ServiceMap for separating services by user\nLaunch PendingIntents on the correct user\u0027s uid\nFix task switching from Recents list\nAppWidgetService is mostly working.\n\nCommands added to pm and am to allow creating and switching profiles.\n\nChange-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed\n"
    },
    {
      "commit": "c17f56fdf11d5c5207d02d457692a40252aa3f34",
      "tree": "689f206d19097915136cf75aa06d4caf0af5c551",
      "parents": [
        "2d3f094611619b40fd54a9c24d006a30c447a359",
        "efd912c05c0ef550a1c5ba7a14281261f6a0f9f4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 07 15:51:31 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 07 15:51:31 2011 +0000"
      },
      "message": "am 88061d6b: am 5462bc63: Fix a leak in Parcel::writeBlob.\n\n* commit \u002788061d6b38cfb4bf374039846b753a3b21ac61e1\u0027:\n  Fix a leak in Parcel::writeBlob.\n"
    },
    {
      "commit": "efd912c05c0ef550a1c5ba7a14281261f6a0f9f4",
      "tree": "36828ed995591754042ed8b5bff3b178b1afd25b",
      "parents": [
        "60e2245b63c54c8776ef97ce4bccb4d1510f85f1",
        "93ff1f985e233fe04412a65041e977c9f0c21f5b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Nov 05 02:35:57 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 05 02:35:57 2011 +0000"
      },
      "message": "am 5462bc63: Fix a leak in Parcel::writeBlob.\n\n* commit \u00275462bc6318b4b70e7a58c66994e2bd79f59d9739\u0027:\n  Fix a leak in Parcel::writeBlob.\n"
    },
    {
      "commit": "93ff1f985e233fe04412a65041e977c9f0c21f5b",
      "tree": "2df87eb4ecff390bb6b43c8ff1f018a030844a23",
      "parents": [
        "edc0bf55363230138c5eac11763055b4d471e850"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 04 19:01:44 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 04 19:26:03 2011 -0700"
      },
      "message": "Fix a leak in Parcel::writeBlob.\n\nWas mistakenly assuming that Parcel::writeFileDescriptor took\nownership of the fd that was passed in.  It does not!\nAdded some comments and a default parameter to allow the caller\nto specify whether it wishes the Parcel to take ownership.\n\nBug: 5563374\nChange-Id: I5a12f51d582bf246ce90133cce7690bb9bca93f6\n"
    },
    {
      "commit": "9f760150f6e0f39b9923cfdc875373606839ee00",
      "tree": "ebb4861bf3dab832d6c6e19a6a7fe9615bd15a91",
      "parents": [
        "ae83b8ee9bd5db63f14a9c8d6570a65b66197c2e"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 12 17:27:03 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Oct 25 16:28:24 2011 +0100"
      },
      "message": "Rename (IF_)LOG() to (IF_)ALOG()  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/141576\n\nBug: 5449033\nChange-Id: I42575e7c29cf1c0f465c357a5c97ab118df6f473\n"
    },
    {
      "commit": "3e2fb7056ab4f459c63c6204d60abd537adf8442",
      "tree": "9c7144aa9c9afb225c60dc582c89fa8407560645",
      "parents": [
        "d16b0945e2a9b5258045c92c7989fa373be35cf2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 12 15:41:34 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 12 22:19:41 2011 -0700"
      },
      "message": "Deprecate local-only CursorWindows.\n\nThere is no difference and has never really been a difference\nbetween local-only and remotable CursorWindows.  By removing the\ndistinction officially in the API, we will make it easier to\nimplement CrossProcessCursor correctly.  CrossProcessCursor\nis problematic currently because it\u0027s not clear whether a call\nto getWindow() will return a local-only window or a remotable window.\nAs a result, the bulk cursor adaptor has special case handling\nfor AbstractWindowedCursors vs. ordinary CrossProcessCursors\nso that it can set a remotable window before the cursor fills it.\nAll these problems go away if we just forget about local-only\nwindows being special in any way.\n\nChange-Id: Ie59f517968e33d0ecb239c3c4f60206495e8f376\n"
    },
    {
      "commit": "ec4e0063a1c5cc6e01472cc2a9d27609ce3827d7",
      "tree": "3597d49dcc076c8ff51999e4efc0c2348d42c357",
      "parents": [
        "3829bc3c35750fed49b8700d84c7f6c0ec9e96af"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 10 14:50:10 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Oct 11 11:03:19 2011 -0700"
      },
      "message": "Use ashmem for CursorWindows.\nBug: 5332296\n\nThe memory dealer introduces additional delays for reclaiming\nthe memory owned by CursorWindows because the Binder object must\nbe finalized.  Using ashmem instead gives CursorWindow more\ndirect control over the lifetime of the shared memory region.\n\nThe provider now allocates the CursorWindows and returns them\nto clients with a read-only protection bit set on the ashmem\nregion.\n\nImproved the encapsulation of CursorWindow.  Callers shouldn\u0027t\nneed to care about details like how string fields are allocated.\n\nRemoved the compile-time configuration of string and numeric\nstorage modes to remove some dead weight.\n\nChange-Id: I07c2bc2a9c573d7e435dcaecd269d25ea9807acd\n"
    },
    {
      "commit": "cc0bf53f214d8c9029ce27ac3985dc5c18d5130a",
      "tree": "69afdbb62452d280c2e75b2c35a989dca724357a",
      "parents": [
        "badf8a55e26308dda9481af56916e2cf4df7b589"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Oct 06 13:11:04 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Oct 06 14:40:13 2011 -0700"
      },
      "message": "Clean up CursorWindow code.\nBug: 5332296\n\nThe code is functionally equivalent, but a little more efficient\nand much easier to maintain.\n\nChange-Id: I90670a13799df05831843a5137ab234929281b7c\n"
    },
    {
      "commit": "7746cc318829358bb2c4dc0a03d40a7856a6d13e",
      "tree": "aac392a2daf3e4038fd7bfad9b3587012c9884c6",
      "parents": [
        "a0ac77133ddbfcb0af35a3e289eae7d76cf8b519"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 03 21:09:35 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 03 21:09:35 2011 -0700"
      },
      "message": "Fix handling of \"allow fds\" state.\n\nDidn\u0027t take into account nesting of bundles.  Boo.\n\nChange-Id: Ic8cf21ad8d6f4938a3e105128624c9d162310d01\n"
    },
    {
      "commit": "5707dbf15d0b44c88fbaa6dd271097f2d42932e0",
      "tree": "1948bba62a8ddd4ee448e29628ad4c0946b0f671",
      "parents": [
        "16624bd4fec14e937ea2cc11a6ce45a5c494fa44"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 23 21:17:56 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 03 17:28:13 2011 -0700"
      },
      "message": "Transfer large bitmaps using ashmem.\nBug: 5224703\n\nChange-Id: If385a66adf4c6179a0bb49c0e6d09a9567e23808\n"
    },
    {
      "commit": "8938ed2c8e906fc332301b64787728d4d34da571",
      "tree": "b24c8e54739c81b47fb33196660e056a028253c3",
      "parents": [
        "c673c036712bb113ce2670c46ca808209b9d07e6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 28 23:19:47 2011 -0400"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 03 16:58:41 2011 -0700"
      },
      "message": "Add mechanism for Parcel to not allow FDs to be written to it.\n\nThis is to help implement issue #5224703.\n\nChange-Id: I026a5890495537d15b57fe61227a640aac806d46\n"
    },
    {
      "commit": "8acda7803417cc38cb284298fcb86b479d11fdb5",
      "tree": "81e904ced86ff0d345781382171a55eb7a73bce6",
      "parents": [
        "f4c1088d750a182bd85889c86b3c9ef4ba772405"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Sun Sep 25 14:30:21 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 25 14:30:21 2011 -0700"
      },
      "message": "Revert \"Transfer large bitmaps using ashmem. Bug: 5224703\"\n\nThis reverts commit 56c58f66b97d22fe7e7de1f7d9548bcbe1973029\n\nThis CL was causing the browser to crash when adding bookmarks, visiting the bookmarks page, and sharing pages (see bug http://b/issue?id\u003d5369231"
    },
    {
      "commit": "f4c1088d750a182bd85889c86b3c9ef4ba772405",
      "tree": "e90af1911f2e880bca81c8e6b4e3c24f24f164db",
      "parents": [
        "5cecad7dc9008a3530df1d77d6cf3641ee55390d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 23 21:17:56 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 23 21:20:47 2011 -0700"
      },
      "message": "Transfer large bitmaps using ashmem.\nBug: 5224703\n\nChange-Id: Ic7481dd9f173986f085a8bbdcc59bbe9830d7a44\n"
    },
    {
      "commit": "e16986cae281f118ecd563c384b7f6e5a4b937b5",
      "tree": "524b97b001c397f8f23ef47b6451368b8f166540",
      "parents": [
        "67ef7c507f33676c9a4a3b22dff6ac7dc353f98f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 18:52:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 19:54:07 2011 -0700"
      },
      "message": "Eliminate single-process mode.\nBug: 5010576\n\nChange-Id: Id450dc83efed4897d1e4ff451530fed14457aace\n"
    },
    {
      "commit": "99b49840d309727678b77403d6cc9f920111623f",
      "tree": "8269d3b9e23c3ecdad0de714eefe3d16f54dfdf8",
      "parents": [
        "df63ad85dea1d25d22386615b961779eb335b3c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 27 16:05:52 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 27 17:42:15 2011 -0700"
      },
      "message": "PermissionCache caches permission checks\n\nThis is intended to absorb the cost of the IPC\nto the permission controller.\nCached permission checks cost about 3us, while\nfull blown ones are two orders of magnitude slower.\n\nCAVEAT: PermissionCache can only handle system\npermissions safely for now, because the cache is\nnot purged upon global permission changes.\n\nChange-Id: I8b8a5e71e191e3c01e8f792f253c379190eee62e\n"
    },
    {
      "commit": "5728a92e29c1c9729017a82c5d0bc18fc1069923",
      "tree": "f4f3b360d51155bacd5623286ba2f507b914a3ac",
      "parents": [
        "35766cfcc4c9ea07b6ae375ced2b292789382621"
      ],
      "author": {
        "name": "Anu Sundararajan",
        "email": "sanuradha@ti.com",
        "time": "Wed Jun 22 15:58:59 2011 -0500"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Jun 27 13:48:51 2011 -0700"
      },
      "message": "MemoryHeapBase: Save and binderize the offset\n\nThe offset that is used in the creation of the MemoryHeapBase must be saved, so\nthat it can be used to recreate the Heap when an IMemory object is passed\nacross process boundary through the binder.\n\nChange-Id: Ie618fb5c0718e6711f55ed9235616fd801e648dc\nSigned-off-by: Anu Sundararajan \u003csanuradha@ti.com\u003e\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "51faf46e2958c57dab46d9420e585319125c7c42",
      "tree": "82987a058b1300fb82ae552f660e67cb3e8bb80b",
      "parents": [
        "89675f7611759aaa5ad89f6cba4abf2e0e29c292"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 13 10:21:56 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 13 10:21:56 2011 -0700"
      },
      "message": "Parcel::appendFrom({const } Parcel *parcel, size_t, size_t)\n\nAs far as I can tell \"parcel\" isn\u0027t actually modified by the implementation.\n\nChange-Id: Ib806eefdc13c97b932773e1dc9ca3a4aad4422b2\n"
    },
    {
      "commit": "71f64dd876262407ff2636827de64ccde9c2088b",
      "tree": "6801442cbf9bae269af8bdfb896773f2dbe213e6",
      "parents": [
        "661a8c37c86d02271980fbe9fa065ace9141e430"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 17 13:00:38 2011 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Feb 28 11:37:20 2011 -0800"
      },
      "message": "Binder linkage no longer depends on JNI objrefs as persistent tokens\n\nThere are two areas that have changed to eliminate the assumption that\nlocal jobject references are both canonical and persistent:\n\n1. JavaBBinderHolder no longer holds onto and reuses it parent object\nreference per se.  Since the underlying JavaBBinder object holds a\nreal global ref, this was redundant anyway.  Now, for purposes of its\ntransient need to perform JNI operations, it simply uses the current\njobject ref(s) passed during method invocation, and no longer attempts\nto hold these refs beyond the scope of a single invocation.\n\n2. Binder obituaries no longer assume that a jobject reference to a\nrecipient will always compare \u003d\u003d as a 32-bit value with any future\nreference to the same object.  The implementation now asks Dalvik\nwhether object references match.\n\nThis amended patch fixes the earlier bug around races between\nremote binder death cleanup and local explicit unregistration of\nVM-side death recipients.\n\nBug 2090115\n\nChange-Id: I70bd788a80ea953632b1f466f385ab6b78ef2913\n"
    },
    {
      "commit": "9f5b53d4b09e6e835828d46f3a505ba877b230a3",
      "tree": "12f670ba91b8bded5a0290bdc871564d96be4966",
      "parents": [
        "ef71330158ea1289a932eafc178501c4c4eabcaf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 25 14:37:32 2011 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 25 15:18:53 2011 -0800"
      },
      "message": "Revert \"Binder linkage no longer depends on JNI objrefs as persistent tokens\"\n\nThis reverts commit c2d55dd89743c8a38deb809f3cdf1ad2d1dbac2b.\n"
    },
    {
      "commit": "c811e7a77594329871183411ce03420882d5e000",
      "tree": "378ade7cc908801dfa5a1a92bf940fe1325479bb",
      "parents": [
        "62021d21457e6fa7dcc93b065e761516e75e872d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 17 13:00:38 2011 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 24 13:15:09 2011 -0800"
      },
      "message": "Binder linkage no longer depends on JNI objrefs as persistent tokens\n\nThere are two areas that have changed to eliminate the assumption that\nlocal jobject references are both canonical and persistent:\n\n1. JavaBBinderHolder no longer holds onto and reuses it parent object\nreference per se.  Since the underlying JavaBBinder object holds a\nreal global ref, this was redundant anyway.  Now, for purposes of its\ntransient need to perform JNI operations, it simply uses the current\njobject ref(s) passed during method invocation, and no longer attempts\nto hold these refs beyond the scope of a single invocation.\n\n2. Binder obituaries no longer assume that a jobject reference to a\nrecipient will always compare \u003d\u003d as a 32-bit value with any future\nreference to the same object.  The implementation now asks Dalvik\nwhether object references match.\n\nBug 2090115\n\nChange-Id: If62edd554d0a9fbb2d2977b0cbf8ad7cc8e2e68d\n"
    },
    {
      "commit": "11dde1100dd44bf4426fbc52e1f709dc08a926ec",
      "tree": "33b7b6b8c6f59849cade563b8180b690412bd101",
      "parents": [
        "a76a8045212aa354a13c4c4cbb416bb9fa66a1e2"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Dec 21 09:32:36 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Dec 21 09:32:36 2010 -0800"
      },
      "message": "resubmitting Change-Id: I67b1d04a5c9fc18b0cd4da6184d0b814b64d89e9\n\nChange-Id: I67b1d04a5c9fc18b0cd4da6184d0b814b64d89e9 was reverted\ndue to a bug. fixed the bug and resubmitting it here\n"
    },
    {
      "commit": "204249bcbe2e45be4a8fc2635a0293d93f7ab67d",
      "tree": "b6514877dba7dfbff737216ae02e6ae2335a3585",
      "parents": [
        "626b3f86fa8adddbf3885ec1dc14bc1f12e05a9f"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Dec 20 14:23:48 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Dec 20 14:23:48 2010 -0800"
      },
      "message": "Revert \"bug:2448371 cursorwindow size moved to resource xml file.\"\n\nThis reverts commit 2594bae1f551d758c5c88771310d1ee3dc2c71ac.\n"
    },
    {
      "commit": "bd57473e9056373acab98ae24d80858dfe774fcd",
      "tree": "33b7b6b8c6f59849cade563b8180b690412bd101",
      "parents": [
        "2c7cbb43488999f34332b51f5128b645bf4431f7"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Sun Dec 19 00:21:10 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Dec 20 13:08:08 2010 -0800"
      },
      "message": "bug:2448371 cursorwindow size moved to resource xml file.\n\nlet cursor window size be set per device in device resources file.\ndefault is 1MB.\nfor SR, it is 2MB.\nit can be set to any value (in kB) in the device resource\nstrings.xml file\n\nChange-Id: I67b1d04a5c9fc18b0cd4da6184d0b814b64d89e9\n"
    },
    {
      "commit": "1b6084354710ca52c04ea361d751d19174802d57",
      "tree": "9352b42604e36859861d70ccaf6bea0599e0911a",
      "parents": [
        "f5da3fd78ab2c1fc13280784288494aaf619cc0f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Dec 13 16:52:35 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Dec 14 09:28:16 2010 -0800"
      },
      "message": "Framework-side support for Dalvik \"isSensitiveThread\" hook.\n\nUsed in lock contention stats.\n\nBug: 3226270\nChange-Id: Ie6f58d130a29079a59bdefad40b80304d9bc3623\n"
    },
    {
      "commit": "f3372f7ca355cbc8828f543937469e313e9500ec",
      "tree": "5e221092fc72811b07297d13a0c13f376d68b519",
      "parents": [
        "db0f5623318298290e9d90714dc519c8854ec30d",
        "985f18ef3ac1d2e6d6aebcf1a819355846e228c2"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "message": "am ae087369: am 63070856: Merge \"Don\\\u0027t propagate StrictMode over one-way Binder calls.\" into gingerbread\n\nMerge commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027\n\n* commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027:\n  Don\u0027t propagate StrictMode over one-way Binder calls.\n"
    },
    {
      "commit": "5273603e98d2db3bac656b7bcf5352c04c86d62f",
      "tree": "ae85f89451ef4e278cd237f4a2b28686c2f043c1",
      "parents": [
        "00807f5ab9f53c48f05319d8510aa41be0ba6ea7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Aug 30 16:01:16 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 13:16:49 2010 -0700"
      },
      "message": "Don\u0027t propagate StrictMode over one-way Binder calls.\n\nThis was causing stack stitching problems where a one-way call with\nviolations followed by a two-way call without violations was getting\nthe previous one-way call\u0027s violation stack stitched on to the second\ncaller\u0027s stack.\n\nThe solution is a little more indirect than I would\u0027ve liked\n(preserving the binder\u0027s onTransact flags until enforceInterface) but\nwas seemingly necessary to work without changing the AIDL compiler.\nIt should also be sufficiently cheap, since no new calls to\nthread-local IPCThreadState lookups were required.  The additional\nwork is just same-thread getter/setters on the existing\nIPCThreadState.\n\nChange-Id: I4b6db1d445c56e868e6d0d7be3ba6849f4ef23ae\n"
    },
    {
      "commit": "b8f4015c0aeb006d5028b5e3a6d5e522b184e008",
      "tree": "7b84d84a9d2b56a07f17e822fd4f78faeebd839a",
      "parents": [
        "93cbdf5b9454c707d6644d73b85b3a33fa72f5d3",
        "53456e51ceff4f7f506611264a28ed70fc4bf310"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 14:04:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 27 14:04:14 2010 -0700"
      },
      "message": "am 245cb784: am 84c924a6: Merge \"Replace several IPCThreadState::get() lookups with one.\" into gingerbread\n\nMerge commit \u0027245cb7846c82f7c0840e13f0b994d356846b1678\u0027\n\n* commit \u0027245cb7846c82f7c0840e13f0b994d356846b1678\u0027:\n  Replace several IPCThreadState::get() lookups with one.\n"
    },
    {
      "commit": "70081a1511955f53bd0ed7f2aec9a1bf09f0f379",
      "tree": "c76d2f7b7bc84f7249e94446551e7939bc277df4",
      "parents": [
        "23abef82b6986405dbd3e6522f8713d29d51d1e2"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 09:49:11 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 12:28:57 2010 -0700"
      },
      "message": "Replace several IPCThreadState::get() lookups with one.\n\nAlso, make StrictMode\u0027s ThreadLocal final.\n\nChange-Id: I08d400ed254fa67bb7a3dae1227f205a54c00df0\n"
    },
    {
      "commit": "721c4162c3ad46d55ac09bf68f5922bb683d36f7",
      "tree": "a3023fa114cd510d3139752cde94cd415ffdafab",
      "parents": [
        "ba57d1b9a512a56eaaed3b95b8144d0a25f2b01b",
        "7f7fa79c4e373f58439e3bf34278364607dffb05"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 23:05:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 23:05:35 2010 -0700"
      },
      "message": "am cc52121c: am c4b204bd: Merge \"More StrictMode work, keeping Binder \u0026 BlockGuard\\\u0027s thread-locals in-sync.\" into gingerbread\n\nMerge commit \u0027cc52121c4f88e9feb8404937bcbfff6e73084666\u0027\n\n* commit \u0027cc52121c4f88e9feb8404937bcbfff6e73084666\u0027:\n  More StrictMode work, keeping Binder \u0026 BlockGuard\u0027s thread-locals in-sync.\n"
    },
    {
      "commit": "a877cd85b5a026384542e3271fc310d6a8fe24c6",
      "tree": "1ba5cc4519d9b915cb27261446aedafddc3a9f39",
      "parents": [
        "f568a7480d0d6b59adce86b346d8090ff1375e33"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Jul 07 16:06:39 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 13:18:05 2010 -0700"
      },
      "message": "More StrictMode work, keeping Binder \u0026 BlockGuard\u0027s thread-locals in-sync.\n\nChange-Id: Ia67cabcc17a73a0f15907ffea683d06bc41b90e5\n"
    },
    {
      "commit": "9382d111bbcbfded9f38c54958d21ad765d26235",
      "tree": "9d7225ae2dcc00e7a489f4ba7b1da1f4bfa4e545",
      "parents": [
        "0204112e94508ac4b55b6aa018f90d2620268b43",
        "a2d3f064be0bab165f2f6f49b25a51d7a0166b35"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 20:18:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 14 20:18:50 2010 -0700"
      },
      "message": "am c74034b6: am 24651682: added BinderService\u003c\u003e template to help creating native binder services\n\nMerge commit \u0027c74034b6bf0940dc80c4d4efa1e677ad0d2dfd6c\u0027\n\n* commit \u0027c74034b6bf0940dc80c4d4efa1e677ad0d2dfd6c\u0027:\n  added BinderService\u003c\u003e template to help creating native binder services\n"
    },
    {
      "commit": "a1e6bc864fb821c1b470b7aad9b75c441f54eeb4",
      "tree": "2f88b2cf7e3b5005942093c6139e6e427e1abfda",
      "parents": [
        "ada17246d300f7ab9f57a7adfec4f750f209226c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:41:18 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:43:19 2010 -0700"
      },
      "message": "added BinderService\u003c\u003e template to help creating native binder services\n\nChange-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe\n"
    },
    {
      "commit": "0c2aaca5d6495dabadd6544bc694f881724e65ee",
      "tree": "36f2dbffbbabb094d42a84f5db3869bbaef76e95",
      "parents": [
        "698cdb5c5d7b0f72a8b18fb17da826157e46c8aa",
        "2562c29b50df035047590e7a78e8a79e0f19210b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 13 15:57:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 13 15:57:20 2010 -0700"
      },
      "message": "am 706623dd: am c0a7e690: Add Parcel::readExceptionCode() and Parcel::writeNoException()\n\nMerge commit \u0027706623ddb8314850c0551f0b66e24b5f0bd28620\u0027\n\n* commit \u0027706623ddb8314850c0551f0b66e24b5f0bd28620\u0027:\n  Add Parcel::readExceptionCode() and Parcel::writeNoException()\n"
    },
    {
      "commit": "837a0d0fb2c3fba8082d47d04cb6120af1eb9a54",
      "tree": "91aa19308f64695c7b03b06c5f7268a7a5997cfd",
      "parents": [
        "a65139634e2203230a76b8f510fe3cb21d1b3843"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 13 15:33:35 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 13 15:45:18 2010 -0700"
      },
      "message": "Add Parcel::readExceptionCode() and Parcel::writeNoException()\n\nAdd native Parcel methods analogous to the Java versions.\n\nCurrently, these don\u0027t do much, but upcoming StrictMode work changes\nthe RPC calling conventions in some cases, so it\u0027s important that\neverybody uses these consistently, rather than having a lot of code\ntrying to parse RPC responses out of Parcels themselves.\n\nAs a summary, the current convention that Java Binder services use is\nto prepend the reply Parcel with an int32 signaling the exception\nstatus:\n\n     0: no exception\n     -1: Security exception\n     -2: Bad Parcelable\n     -3: ...\n     -4: ...\n     -5: ...\n\n... followed by Parceled String if the exception code is non-zero.\n\nWith an upcoming change, it\u0027ll be the case that a response Parcel can,\nnon-exceptionally return rich data in the header, and also return data\nto the caller.  The important thing to note in this new case is that\nthe first int32 in the reply parcel *will not be zero*, so anybody\nmanually checking for it with reply.readInt32() will get false\nnegative failures.\n\nShort summary: If you\u0027re calling into a Java service and manually\nchecking the exception status with reply.readInt32(), change it to\nreply.readExceptionCode().\n\nChange-Id: I23f9a0e53a8cfbbd9759242cfde16723641afe04\n"
    },
    {
      "commit": "f9e01ea4818328ecb2f573bcaee3116b49414035",
      "tree": "f72236e82abca38e3a0e72775ac8cdc75939d12d",
      "parents": [
        "60af8760d64e94298e2f5c60bb4f2f91325f748d",
        "8e10e50f29e7137ad5318aadddb40cb3779b36c7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Jun 23 10:18:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 10:18:18 2010 -0700"
      },
      "message": "am efcf68aa: am ef8f96a7: Merge \"Start of work on passing around StrictMode policy over Binder calls.\" into gingerbread\n\nMerge commit \u0027efcf68aa1fd7fcfd52cf3d2837ed8db8e797194b\u0027\n\n* commit \u0027efcf68aa1fd7fcfd52cf3d2837ed8db8e797194b\u0027:\n  Start of work on passing around StrictMode policy over Binder calls.\n"
    },
    {
      "commit": "702ea9d42f52fc145090c0f0bfbe64993e4b8b33",
      "tree": "98267a504e452fb6c9d7fc98ea68d19d2d5aecd0",
      "parents": [
        "5adc399c76f432ce3301db5fa1da511351b70373"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 18 13:07:53 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 12:56:35 2010 -0700"
      },
      "message": "Start of work on passing around StrictMode policy over Binder calls.\n\nThis is (intendend to be) a no-op change.\n\nAt this stage, Binder RPCs just have an additional uint32 passed around\nin the header, right before the interface name.  But nothing is actually\ndone with them yet.  That value should right now always be 0.\n\nThis now boots and seems to work.\n\nChange-Id: I135b7c84f07575e6b9717fef2424d301a450df7b\n"
    },
    {
      "commit": "e733497af5e0bc27d68aa28f8a16cc3978f70c22",
      "tree": "6149ad65b390c97e4dae8641f2631700fb70b62b",
      "parents": [
        "630233a7cf516b3614f6d4eaeabff5cfc4dc4f87"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue May 18 11:54:31 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jun 02 17:40:41 2010 -0700"
      },
      "message": "add API to Cursor to get column value type\n\nChange-Id: I3ef1bcdb2eb1c45f68e829ccb6e3ecde28076591\n"
    },
    {
      "commit": "244a7655aea626c6f16f68d39ba3c92a164adc16",
      "tree": "7e8dd632ba1c60fc4e155e3acd18390c8cee6400",
      "parents": [
        "da9ece0879f22adb00d3ee5c111984e70da5e90f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 27 17:04:23 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 28 10:08:21 2010 -0400"
      },
      "message": "Move CursorWindow class from core/jni to libbinder\n\nTo allow use of the native CursorWindow class outside of the core framework jni\n\nChange-Id: I72e8dcb91a2c691130c33cdfd9a25d343da1c592\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3c233d1a994459969efc7b6fd0309a82ec220db",
      "tree": "031f03af99732267299954bd3ecab17ec2a7ee8f",
      "parents": [
        "1a5b93a2d95106807ca069bfb5e74d6da86283ee",
        "359b3fd8d8351ac2abc3ec65f355d4fe9d5b9c31"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 17:33:45 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 17:33:45 2010 -0700"
      },
      "message": "am 8a8658a5: Merge \"Make static versions of libutils and libbinder.\" into froyo\n\nMerge commit \u00278a8658a5de261c2da72d431940877bd054bc9837\u0027 into froyo-plus-aosp\n\n* commit \u00278a8658a5de261c2da72d431940877bd054bc9837\u0027:\n  Make static versions of libutils and libbinder.\n"
    },
    {
      "commit": "386a332b4f70718cccb08d5511d66e9f4f5bd409",
      "tree": "e41ac9e7b228ad08eabc52486b10357aaaf0c595",
      "parents": [
        "110ecf05428ee0bcd4657048b3f15daa0f01747e"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 00:55:09 2010 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 01:03:31 2010 -0700"
      },
      "message": "Make static versions of libutils and libbinder.\n\nFix some small static-initialization-order issues (and a static-\ninitializers-missing issue) that result from doing so.  The static\nlibraries don\u0027t actually get used for anything real at the moment --\nthey\u0027re used for perf tests of bug 2660235.\n\nBug: 2660235\nChange-Id: Iee2f38f79cc93b395e8d0a5a144ed92461f5ada0\n"
    },
    {
      "commit": "fc821e5d26c6273e667b15d52e3fb691e2e53f87",
      "tree": "532df9facad6571445d85a65fb59ba0580ea5050",
      "parents": [
        "07a4eb35f9ccec9caaee20846f76f8c02031f47d",
        "a3a884d9e298557b1540b33cab69271f521653c2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:43 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:43 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I08f1feae65b1dfc3f740d78654c267f2e3ae5e85\n"
    },
    {
      "commit": "a3a884d9e298557b1540b33cab69271f521653c2",
      "tree": "2ff6ee33a27da80e4407256b5d151c630e8a36bd",
      "parents": [
        "be0807b3433aa884f4b45236a91d4cdefa9ffc18"
      ],
      "author": {
        "name": "Michael Richardson",
        "email": "mcr@credil.org",
        "time": "Tue Nov 03 17:01:28 2009 -0500"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 20 14:14:30 2010 -0700"
      },
      "message": "Allow META* macros outside of the framework\n\nThe META* macros are useful outside of the framework\nfor other systems implementing Binder interfaces, but\nthey depend upon the android namespace. This includes\nthe appropriate namespace operations, which should be\nsane even in that android namespace.\n\nChange-Id: If600156c65191f51f487d0ee301d9f9f532b263d\n"
    },
    {
      "commit": "3c772b706dd8e53fe17b284bb2e60c146867f787",
      "tree": "8009c8e46351dafac6774d3b9ce0483550333f92",
      "parents": [
        "c3a26bfeb0f995abcf2e1b47356003fcecde7855"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:09:03 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:09:03 2010 -0700"
      },
      "message": "fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\n\nget rid off the MAP_ONCE flag is MemoryHeapBase (as well as it\u0027s functionality),\nthis feature should not be used anymore.\n\nthe software renderer was incorrectly using the default ctor which set MAP_ONCE,\ncausing the leak. the software renderer itself is incorrectly used while coming\nback from sleep.\n\nChange-Id: I123621f8d140550b864f352bbcd8a5729db12b57\n"
    },
    {
      "commit": "98e71ddaede9a0bfb681fd237bec1f66c6c53193",
      "tree": "b99491347832c92e1e5af62d11d3a9baf946dd18",
      "parents": [
        "e4f5055ad281096e5b89c4240be29d2c95a43b65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 17:30:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 21 23:27:25 2010 -0800"
      },
      "message": "remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\n\nAdd a Flattenable interface to libutils which can be used to flatten\nan object into bytestream + filedescriptor stream.\nParcel is modified to handle Flattenable. And GraphicBuffer implements\nFlattenable.\n\nExcept for the overlay classes libui is now independent of libbinder.\n"
    },
    {
      "commit": "0dd0d2944a0a7b985db162dec8b49b77d689d171",
      "tree": "dde15fc2105fbf0aa8af4df71f5d73a16688a3f2",
      "parents": [
        "10e6d20fb3083693fc3e0378b982d08cfd9ce034"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 25 19:00:00 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 29 14:51:06 2010 -0800"
      },
      "message": "Simplify the MemoryDealer implementation\n\nAt some point the implementation became complicated because of\nSurfaceFlinger\u0027s special needs, since we are now relying on gralloc\nwe can go back to much simpler MemoryDealer.\n\nRemoved HeapInterface and AllocatorInterface, since those don\u0027t need\nto be paramterized anymore. Merged SimpleMemory and Allocation.\nMade SimplisticAllocator non virtual.\n\nRemoved MemoryDealer flags (READ_ONLY, PAGE_ALIGNED)\n\nRemoved a lot of unneeded code.\n"
    },
    {
      "commit": "8c6cedc9bc9a4b69616a79a95449f6f6b08c7bf1",
      "tree": "b1bbc3748af558bc7a56d7ac4fb96ca059cc845b",
      "parents": [
        "d56352bddd717d2e45f1f3ee7fb52ef7f593f950"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 17:59:37 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 19:11:14 2009 -0800"
      },
      "message": "Propagate background scheduling class across processes.\n\nThis is a very simply implementation: upon receiving an IPC, if the handling\nthread is at a background priority (the driver will have taken care of\npropagating this from the calling thread), then stick it in to the background\nscheduling group.  Plus an API to turn this off for the process, which is\nused by the system process.\n\nThis also pulls some of the code for managing scheduling classes out of\nthe Process JNI wrappers and in to some convenience methods in thread.h.\n"
    },
    {
      "commit": "0db1a8931bb24b4f240c19210e70844af8c1e9ff",
      "tree": "b45e2140c8dd6ebde5b6173f4f71b2da1e2daea1",
      "parents": [
        "db95a9e824f51c39a40833ee3c80daf6b6af3247"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Oct 29 22:55:00 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 30 18:35:47 2009 -0700"
      },
      "message": "libbinder: add a NO_CACHING flag to MemoryHeapBase\n\nThe NO_CACHING flag translates to opening a memory region with O_SYNC.\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "d4851d74ac9c737acda85f1fdbc028c68f481a36",
      "tree": "74e5f73442fdbe503aa82e751af1ddf9bb3e7691",
      "parents": [
        "8039e6edac4754113b31d6ed748b6a377874c65e"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Mon Aug 17 15:28:30 2009 -0500"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 20 03:55:20 2009 -0700"
      },
      "message": "Add offset handling in MemoryHeapBase class\n"
    },
    {
      "commit": "84a6d041e2c69d4d0b69269a0b59e725c9f119a3",
      "tree": "6841d5b1d696e27f66c30ede34c73d30cf5cc5c3",
      "parents": [
        "7f87b14a5b569b5526725fcf2d942156948d064c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 13:33:27 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 15:31:25 2009 -0700"
      },
      "message": "Support for marshalling pointers / intptr_t in Parcel.\n\nSome refactoring to eliminate code duplication in Parcel implementation.\n"
    },
    {
      "commit": "f0adf848ffffeca86f4c0210ea237883d9e5e8d5",
      "tree": "5b6c8e231a6105d5a3ee14e68118d14874fee12b",
      "parents": [
        "7151edd5d83b3b770a0dc77cf52f7fe56b2a3af6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 16 10:05:57 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 16 10:05:57 2009 -0700"
      },
      "message": "Make MemoryDealer\u0027s destructor protected instead of public.\n\nMemoryDealer, like all other subclasses of RefBase,MUST NOT BE stack-allocated, a protected destructor prohibits stack-allocation while allowing the baseclass to properly invoke the subclass\u0027 destructor once the refcount drops to 0.\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": "723ec00af46d1f95d69fe5af53e0a5d09f01a7d6",
      "tree": "ef596c117b8f11f8025770c52baeac04b2e4551a",
      "parents": [
        "310f8da0c3122ed5419db8f12a6e98d3188325b2",
        "39afd5f7daaa525adaf38caf4a48d2cb22e0a41d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\tinclude/ui/Rect.h\n\tlibs/ui/ISurfaceComposer.cpp\n"
    },
    {
      "commit": "83c0446f27b9542d6c2e724817b2b2d8d1f55085",
      "tree": "a5a1a310070cad89ee8aaa86d3b1b874f9d29610",
      "parents": [
        "5f2397488ab700674d059a001e917de28a1b0a0c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 19:00:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 26 16:12:20 2009 -0700"
      },
      "message": "some work to try to reduce the code size of some native libraries\n\n- make sure that all binder Bn classes define a ctor and dtor in their respective library.\n  This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.\n  This is also cleaner, should we want these ctor/dtor to do something one day.\n\n- same change as above for some Bp classes and various other non-binder classes\n\n- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.\n\n- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere\n\n- IBinder::getInterfaceDescriptor() now returns a \"const String16\u0026\" instead of String16, which saves calls to String16 and ~String16\n\n- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.\n  The cache makes BpBinder bigger, so we need to figure out if we need this method at all.\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": "a47f02afb1e1f2c4abd9379c13903a5dde89d354",
      "tree": "8a0f2d2172c27aa2dba4eae77a4420433af84294",
      "parents": [
        "a498449e2b11ed5f15e8c8fda9a429850f891434"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 16:29:38 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 16:29:38 2009 -0700"
      },
      "message": "change 2115 wasn\u0027t merged properly into master. this fixes that.\n\nMerge change 2115 into donut\n\n* changes:\n  bring the native_handle stuff back from master_gl\n\nConflicts:\n\n\tlibs/binder/Parcel.cpp\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"
    }
  ]
}
