)]}'
{
  "log": [
    {
      "commit": "eb99f0d9f05dd37f988a815e6bc01bbd7152c31a",
      "tree": "eab0217d74f5887e680f0dbc57aca49acba2913a",
      "parents": [
        "a934219ca8d23a63e5a9f443fafd6d4ac9847c71"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Jun 12 18:05:53 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 18:39:45 2011 -0700"
      },
      "message": "fix RefBase so it retains binary-compatibility with gingerbread\n\nBug: 4595257\nChange-Id: I0d5e10f497e3f39868bff58f6ded510c38b44b12\n"
    },
    {
      "commit": "96fcb702d75dcfb36c3ebd8fe420c8b29fa67fb7",
      "tree": "5e63f8e10ea09915f711d05e1f589ea5c2f8d596",
      "parents": [
        "fb339016ff32c3a5d21390fa027679c27b6a6d73",
        "b40e85f90146a654bfe5657187be491147814ea0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 08 19:34:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 08 19:34:30 2011 -0700"
      },
      "message": "am b40e85f9: am 645434fb: Merge \"Fix a leak in RefBase\" into honeycomb-mr2\n\n* commit \u0027b40e85f90146a654bfe5657187be491147814ea0\u0027:\n  Fix a leak in RefBase\n"
    },
    {
      "commit": "2c0042b666a969091c931614f2fc0dce2f1cfac8",
      "tree": "75f1f82ffa4b12252e80ca48edc8ede8113dba4e",
      "parents": [
        "cea03df201dc6659654234bc5fbfebf1b6a06e42"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 08 16:05:30 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 08 16:25:01 2011 -0700"
      },
      "message": "Fix a leak in RefBase\n\nthis bug was introduced recently. it caused RefBase\u0027s weakref_impl\nstructure to be leaked for every RefBase object (about 20 bytes).\n\nChange-Id: Id85e749ba04521199555dd701198edd097c313d4\n"
    },
    {
      "commit": "24855c09173a6caaec7dcedd0c2d7ce15121d39b",
      "tree": "1b72c39ca375da3f4c43ba5afcf9cde70dd7a53d",
      "parents": [
        "b16b020dd32147fbaaf7de47d5de16bfee10967a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 06 09:55:15 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 06 15:14:25 2011 -0700"
      },
      "message": "merge various SF fixes from gingerbread to honeycomb-mr2 (DO NOT MERGE)\n\n  Fix a race that could cause GL commands to be executed from the wrong thread.\n  RefBase subclasses can now decide how they want to be destroyed.\n  Fix a race in SurfaceFlinger that could cause layers to be leaked forever.\n  Fix a race-condtion in SurfaceFlinger that could lead to a crash.\n\ninitial cherry-pick:\nresolved conflicts for merge of b9783b49 to honeycomb-plus-aosp\n\nChange-Id: I2a335e03fff219e35c18a7b0089b3a11d636576f\n"
    },
    {
      "commit": "b2fd84ad1d470d607af4a83da378d4e317421634",
      "tree": "7f3004f80d6e46b33317676d8d11b79aa3c6bb69",
      "parents": [
        "fc51aaec82ecedb554d158e4284761c9348d09fd",
        "b9783b49f4727a0365f2297bb903db8682855adf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jun 06 09:55:15 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jun 06 09:55:15 2011 -0700"
      },
      "message": "resolved conflicts for merge of b9783b49 to honeycomb-plus-aosp\n\nChange-Id: I1d86ea56b3d1d1b69f6671e5b0df0ca3f0c79643\n"
    },
    {
      "commit": "b9783b49f4727a0365f2297bb903db8682855adf",
      "tree": "0d4831587eed29e6e2366280543ed0f226051807",
      "parents": [
        "10b364b4bea8537f955bbbb8b9b40061264b29c9",
        "c9cd2387b6938a6fbefc731d2177902266f2a130"
      ],
      "author": {
        "name": "Simon Wilson",
        "email": "simonwilson@google.com",
        "time": "Tue May 24 17:29:12 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 24 17:29:12 2011 -0700"
      },
      "message": "am c9cd2387: Merge changes I37f0f315,I8cbf6044,Ibb598931,I5262bf11 into gingerbread\n\n* commit \u0027c9cd2387b6938a6fbefc731d2177902266f2a130\u0027:\n  Fix a race that could cause GL commands to be executed from the wrong thread.\n  RefBase subclasses can now decide how they want to be destroyed.\n  Fix a race in SurfaceFlinger that could cause layers to be leaked forever.\n  Fix a race-condtion in SurfaceFlinger that could lead to a crash.\n"
    },
    {
      "commit": "9e7636681eda094dd328ce9bf54d0b0166be1e67",
      "tree": "daa994e6a3ed671ec6e09e31a8408bd7d6240871",
      "parents": [
        "fa21cb2e58838761157d3ee929a77e23b602bd01"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 19 18:03:31 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 23 16:13:48 2011 -0700"
      },
      "message": "RefBase subclasses can now decide how they want to be destroyed.\n\nThis adds a destroy() virtual on RefBase which\nsublasses can implement. destroy() is called\nin lieu of the destructor whenthe last strong\nref goes away.\n\nBug: 4483050\nChange-Id: I8cbf6044a6fd3f01043a45592b5a60fa1e5fade2\n"
    },
    {
      "commit": "fbb0e9f9846e185ba8ded63d754c4e61b1499b90",
      "tree": "ffc94e0cd4830bd27fc3ef3fa34f491f7d4af0a3",
      "parents": [
        "31418a1e9b905593587d8bf7a4705429db549d97",
        "bb93dad9250c0ee8330ab37bbdcd2eb8bfc0f930"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Tue Apr 26 11:45:46 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 26 11:45:46 2011 -0700"
      },
      "message": "am bb93dad9: am bb10986c: am 13ce221e: Merge \"libutils: Fix an improper const-cast in RefBase\"\n\n* commit \u0027bb93dad9250c0ee8330ab37bbdcd2eb8bfc0f930\u0027:\n  libutils: Fix an improper const-cast in RefBase\n"
    },
    {
      "commit": "c4fbbe06a53de3951c258978ffce1b1f185f8828",
      "tree": "08c3b5801320bbde6566d56a8a29a3eda71c1be3",
      "parents": [
        "ec1a8f7aa7e71e292ef813b1e886a9e26e3635af"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Fri Apr 22 11:13:35 2011 -0700"
      },
      "committer": {
        "name": "Josh Stone",
        "email": "cuviper@gmail.com",
        "time": "Fri Apr 22 11:13:35 2011 -0700"
      },
      "message": "libutils: Fix an improper const-cast in RefBase\n\nUnder Fedora 15 Beta, gcc 4.6.0 warns:\n\n  frameworks/base/libs/utils/RefBase.cpp: In member function\n    ‘void android::RefBase::weakref_type::trackMe(bool, bool)’:\n  frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing\n    ‘const android::RefBase::weakref_impl’ as ‘this’ argument of\n    ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’\n    discards qualifiers [-fpermissive]\n\ntrackMe is not a const function, so don\u0027t use const in the static_cast\nto a weakref_impl pointer.\n\nChange-Id: I3c9ba73eb127985f5f54197ffecf2939c50f632c\n"
    },
    {
      "commit": "32a55cf66e12e5e56d2e05b73c6bef453477c2bb",
      "tree": "e5709c24f92bc304bfc32f75b8f23911092c5f40",
      "parents": [
        "d752c3b3e6c576ed1f18e86a7b18c33dc7c65791"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 25 16:11:44 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 25 16:20:52 2011 -0800"
      },
      "message": "Fix sp\u003c\u003e conversion operator / constructor\n\nsome of the conversion operators were not using the proper\npointer type when calling incStrong/decStrong, usually it\nhas no bad consequences, but for some implementation\nof the ref-counted object it could lead to recording the wrong\nowner id.\n\nChange-Id: If574b9069b8a4cf6e0911a992c8f095aba799995\n"
    },
    {
      "commit": "ec122eb46b6ce8f6e8bb3e08c34e575de666cd3e",
      "tree": "c5d6d30e2802f8e9671731cc16095c6040358f09",
      "parents": [
        "47b8adec3904535c8d8ce2b6e42ecd736f2d90ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 16 20:23:43 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 23 22:21:41 2011 -0800"
      },
      "message": "Fix some issues with RefBase debugging.\n\nFirst slipt sp\u003c\u003e out of RefBase into StrongPointer.h so it can be reused\nmore easily and to make it clear that it doesn\u0027t require RefBase.\n\nNote: the rest of the change only affects the system when DEBUG_REFS is enabled.\n\nThe main problem we fix here is that the owner id associated with each\nreference could get out of date when a sp\u003c\u003e or wp\u003c\u003e was moved, for\ninstance when they\u0027re used in a Vector\u003c \u003e.\n\nWe fix this issue by calling into RefBase::moveReferences from\na template specialization for sp\u003cTYPE\u003e and wp\u003cTYPE\u003e of the\ntype helpers. RefBase::moveReferences() has then a chance to\nupdate the owner ids.\n\nThere is a little bit of trickery to implement this generically in\nRefBase, where we need to use a templatized functor that can turn\na sp\u003cTYPE\u003e* casted to a void* into a RefBase*.\n\nIntroduced a new debug option DEBUG_REFS_FATAL_SANITY_CHECKS\ncurrently set to 0 by default as there seem to be an issue\nwith sp\u003cANativeWindow\u003e which trips the sanity checks.\n\nChange-Id: I4825b21c8ec47d4a0ef35d760760ae0c9cdfbd7f\n"
    },
    {
      "commit": "a688b574d294faae5f56224908b40856c5045aac",
      "tree": "2af92697194f007d9e0beb044c005a863ac40a85",
      "parents": [
        "5fb008e3800032be18c6d5f1e7ace4d7c2661e26"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 16 15:23:08 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 22 18:08:58 2011 -0800"
      },
      "message": "Remove RefBase.h dependency on TextOutput.h\n\nChange-Id: I72cd6b98ef82b4868fe1c8ec87862cf43fb4ee73\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"
    }
  ]
}
