)]}'
{
  "log": [
    {
      "commit": "9d3b1a424c5c61e24e9659d15fb353026a00d925",
      "tree": "0e543391e3ac7b6ac0bff377e08cd2e233ef7363",
      "parents": [
        "8f5e3d13e166e4873e130a5ef7c987333dbac917"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 19:07:15 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 20:11:42 2013 -0700"
      },
      "message": "Move input library code to frameworks/native.\n\nNo longer compile libandroidfw as a static library on the device\nsince it already exists as a shared library.  Keeping the static\nlibrary would force us to provide a static library version of\nlibinput for the device as well which doesn\u0027t make sense.\n\nChange-Id: I3517881b87b47dcc209d80dbd0ac6b5cf29a766f\n"
    },
    {
      "commit": "49d2b1864c3dfec6faff74d67cb2527a8f1af5a8",
      "tree": "2717d50ecfd85f7b558b2ead2d82bed6ea237dde",
      "parents": [
        "021df141ed8fdc0bc73b8bcb17106e2c7512b372"
      ],
      "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": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "8564c8da817a845353d213acd8636b76f567b234",
      "tree": "71acbd8ace822c769aef917629bf5a079f63274d",
      "parents": [
        "c42e6a0bed2c88fd03466c5104d62d7f98e68768"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "650de3dcfcbc7635da3c070410ef1dc4027ae464",
      "tree": "93cb485d70a4388a76397e6f65a80c1a059425fb",
      "parents": [
        "4257e3b18118200e29a3125a12044c4572c1baf5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Oct 27 14:52:28 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 28 01:46:18 2011 -0700"
      },
      "message": "Optimize fillWindow to improve reverse-seek performance.\nBug: 5520301\n\nWhen an application requests a row from a SQLiteCursor that\nis not in the window, instead of filling from the requested\nrow position onwards, fill from a little bit ahead of the\nrequested row position.\n\nThis fixes a problem with applications that seek backwards\nin large cursor windows.  Previously the application could\nend up refilling the window every time it moved back\none position.\n\nWe try to fill about 1/3 before the requested position and\n2/3 after which substantially improves scrolling responsiveness\nwhen the list is bound to a data set that does not fit\nentirely within one cursor window.\n\nChange-Id: I168ff1d3aed1a41ac96267be34a026c108590e52\n"
    },
    {
      "commit": "5e5d6d8ba04d7579df840cda055cd5dfa9d7666f",
      "tree": "b9c47baaa3b62795dfc12645da4bed2eb5d3ec13",
      "parents": [
        "5b2dda3be5cc903aafb77ce7902c14d76eb26a9b"
      ],
      "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": "0cde89f5f025b7826be009ebb9673b970e180e32",
      "tree": "ee6a4c95c0b07890353a813afb15a52334384f0d",
      "parents": [
        "99f36683a4f2c218d52922ae7c2a0c0b3f2890ed"
      ],
      "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": "3bc6bbc92cd2095f42039b5aadd0a14d0e5d9230",
      "tree": "39b62affe30e0c2895a0f8a52212a7f91bd80dd7",
      "parents": [
        "3b2faf68e5a66ac67b28d6f79d4ba213b6c0d09c"
      ],
      "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": "b37f8a8af15425ed3e65104e8556099d33a9c1ce",
      "tree": "1bc90cf91427cb17603017f91e8fbe3819febcb2",
      "parents": [
        "00e40171892c73295b6e7221ed83126731230b98"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Nov 29 11:22:22 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Nov 29 11:53:55 2010 -0800"
      },
      "message": "fix messages from sqlite layer in c++ code to be useful.\n\nChange-Id: Ib13f86f3481aae391f5e887bb14877f12bf48034\n"
    },
    {
      "commit": "e6544e4cc906c6b5c4157fccdc928149fc39d7d6",
      "tree": "19893999e30e0fc7ad1d9e7923db08466555b689",
      "parents": [
        "f0a896b353e01c7093ba2ee0539f1a7cabef6ec6"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Oct 26 16:44:44 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Oct 26 16:44:44 2010 -0700"
      },
      "message": "convert one of the LOGE to LOG_WINDOW msg to reduce grief\n\ngrief from people who think this message is bad news.\nbut in reality, this message is really just an informational message\nto aid in debugging\n\nChange-Id: I1a2ab1666a27adb7d3fd210528b2c5218640d53d\n"
    },
    {
      "commit": "b7e2c783af9753da65d08924a622560829ba2dbb",
      "tree": "d10acb4b108ca075cf86b593b13290dadcbf0d4f",
      "parents": [
        "6d970255af55443a1c9a4211be9a265408598680"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Oct 05 16:50:51 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Oct 05 16:50:51 2010 -0700"
      },
      "message": "turn off some useless messages\n\nChange-Id: I5ed5696cd052b70e7cf7b872205470cd56fada90\n"
    },
    {
      "commit": "2807df89af680e46cb35ee0035bb10b42d3136a2",
      "tree": "7f78fa82946171e60dc9c13fd4d0b05df860777e",
      "parents": [
        "afd52a0b40e7986d0993217b3fe0cf44fea21274"
      ],
      "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": "d1f74d0e3352987467f12a65b8685b60b057d9ad",
      "tree": "c6c9ff5239951b7ada0a0d13f19eb53c1d3922fb",
      "parents": [
        "239d5b3638ae486f715f44a8c1a71420f486049c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 29 16:54:04 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 29 16:54:04 2010 -0800"
      },
      "message": "Don\u0027t use the MemoryDealer in CursorWindow, it\u0027s not necessary.\n\ninstead use a MemoryHeapBase and MemoryBase directly.\n"
    },
    {
      "commit": "6faf7893b6307a3295993380d61af49f2cda965c",
      "tree": "0b96c41270e160fbafb2956f8a91ec3ef1772b67",
      "parents": [
        "bf124e7e41f7850ac1b7be808221a462db6f3447"
      ],
      "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": "0795272aa226f4e965968a03daddc53ce30b7cda",
      "tree": "6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7",
      "parents": [
        "25ba5b6564224dceefa086b5c439ef28dad530ca"
      ],
      "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": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "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": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "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": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "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"
    }
  ]
}
