)]}'
{
  "log": [
    {
      "commit": "9831ad3ce6bd5b22da16a275ed67e7236eae3d1f",
      "tree": "2f5152add91760c209361fb918ad83a4f24b3502",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Aug 29 21:43:46 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 15 13:16:42 2011 +0100"
      },
      "message": "libc: speed-up flockfile()/funlockfile()\n\nFor Honeycomb, we added proper file thread-safety for\nall FILE* operations. However, we did implement that by\nusing an out-of-band hash table to map FILE* pointers\nto phtread_mutex_t mutexes, because we couldn\u0027t change\nthe size of \u0027struct _sFILE\u0027 without breaking the ABI.\n\nIt turns out that our BSD-derived code already has\nsome support code to extend FILE* objects, so use it\ninstead. See libc/stdio/fileext.h\n\nThis patch gets rid of the hash table, and put the\nmutex directly into the sFILE extension.\n\nChange-Id: If1c3fe0a0a89da49c568e9a7560b7827737ff4d0\n"
    },
    {
      "commit": "bc9d1fe7c467d861a2b7c1deafca5589c1bc309e",
      "tree": "ed4d7ca34ce793a3b91d8c4358c6a80bf70b9cb5",
      "parents": [
        "663e05797f9bb2463217055a2510063ea7977379",
        "4685acbdd45c44e2e21c74242953bee5198209f9"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit%android.com@gtempaccount.com",
        "time": "Wed Aug 03 08:16:37 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 03 08:16:37 2011 -0700"
      },
      "message": "am 4685acbd: am 9efda5b7: Merge \"typo in libc/stdio/wcio.h\"\n\n* commit \u00274685acbdd45c44e2e21c74242953bee5198209f9\u0027:\n  typo in libc/stdio/wcio.h\n"
    },
    {
      "commit": "7743f68204515c64ce363b397a7e0bd8015bd692",
      "tree": "87220e4db8e000bcc11b6d611608f91443583158",
      "parents": [
        "2f5c6d2d663591b0b5cff9f7e90f58f12a5967eb"
      ],
      "author": {
        "name": "Nathan Forbes",
        "email": "me@nathanforbes.com",
        "time": "Sat Jul 02 20:29:25 2011 -0400"
      },
      "committer": {
        "name": "Nathan Forbes",
        "email": "me@nathanforbes.com",
        "time": "Sat Jul 02 20:29:25 2011 -0400"
      },
      "message": "typo in libc/stdio/wcio.h\n\nwhcar_io_data -\u003e wchar_io_data\nSigned-off-by: Nathan Forbes \u003cme@nathanforbes.com\u003e\n\nChange-Id: I45c231efffac265eed51b7632d5a1b21c18bfa55\n"
    },
    {
      "commit": "3f7a3228cdf1a48e379fb297be9114ecd71bff11",
      "tree": "11833674ffcc309e67884e544218a21aceee3fba",
      "parents": [
        "add0a45a117f00553e79e7137d023416f9c0a54f",
        "c5c84c8643250c71bde87541f2b28fc21a9c5cc7"
      ],
      "author": {
        "name": "David Turner",
        "email": "digit@android.com",
        "time": "Tue May 17 04:47:06 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 17 04:47:06 2011 -0700"
      },
      "message": "am c5c84c86: Merge \"vfscanf: Add support for L type modifier for long long\"\n\n* commit \u0027c5c84c8643250c71bde87541f2b28fc21a9c5cc7\u0027:\n  vfscanf: Add support for L type modifier for long long\n"
    },
    {
      "commit": "712e4f81e066578b0925dbfb5a6b664aeba5f564",
      "tree": "9a587fdc41cf8409ca832b58234843c552ba72d4",
      "parents": [
        "e274a9fac077d350391b721e9a08b650b243577e"
      ],
      "author": {
        "name": "Chris Fries",
        "email": "C.Fries@motorola.com",
        "time": "Wed May 04 09:54:06 2011 -0500"
      },
      "committer": {
        "name": "Chris Fries",
        "email": "C.Fries@motorola.com",
        "time": "Thu May 05 11:02:33 2011 -0500"
      },
      "message": "vfscanf: Add support for L type modifier for long long\n\nscanf()\u0027s man page suggests support for %Ld, (and ioux).\nImplement this so that 3rd party code will work correctly.\n\nChange-Id: Idce9d266071cb688ca71429395a2d9edf6813595\n"
    },
    {
      "commit": "f582340a6a48588aa50da17e1620e8f91b146941",
      "tree": "d30c0ffb648b7a43ff469f89f05850f5008482ec",
      "parents": [
        "72f9a5c374bf559e9c69a62c1d95304f913ef6b2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 12 07:13:44 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 14 09:32:56 2011 -0800"
      },
      "message": "Fix the handle locking in stdio\n\nFix the handle locking in stdio to use flockfile/funlockfile\ninternally when and where required.  Macros in \u003cstdio.h\u003e are updated\nto automatically call the underlying functions when the process is\nthreaded to obtain the necessary locking.  A private mutex is added\nto protect __sglue, the internal list of FILE handles, and another\nto protect the one-time initialization.  Some routines in libc that\nuse getc() change to use getc_unlocked() as they\u0027re either protected\nby their own lock or aren\u0027t thread-safe routines anyway.\n\nBased on OpenBSD change by guenther@openbsd.org\nhttp://www.mail-archive.com/source-changes@cvs.openbsd.org/msg01015.html\n\nBug: 3446659\nChange-Id: Ie82116e358c541718d6709ec45ca6796be5a007b\n"
    },
    {
      "commit": "f4e10b721ee281f3e90736364ac15864d0a3adf7",
      "tree": "8d7ad7cf73dd45105d71108aacae3004889745e7",
      "parents": [
        "f65368a6939322ac3a47fc0304e63fb185c5746e",
        "0946b1f6e9223a0a82306e40fc2b41ebddb1f7ef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 16 08:50:20 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 16 08:50:20 2011 -0800"
      },
      "message": "Merge \"Bug 3330205 Put blanks and zeroes in const area\""
    },
    {
      "commit": "e9d0518394dda010c8873dbd0ca4de7db5a5bbec",
      "tree": "7c14520d6d496a8b84a2781161fe13ebfcd5c99d",
      "parents": [
        "015610e64eb728dd031c6b1730b70460d9d298b8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 09:28:31 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 11:47:42 2011 -0800"
      },
      "message": "Bug 3330205 Remove unnecessary static variable\n\nChange-Id: I7e781d26d6565952712f8fb0274d336462b441fd\n"
    },
    {
      "commit": "0946b1f6e9223a0a82306e40fc2b41ebddb1f7ef",
      "tree": "817733df5653de4dea73988207f2d06978716787",
      "parents": [
        "015610e64eb728dd031c6b1730b70460d9d298b8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 11:28:22 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jan 09 11:38:56 2011 -0800"
      },
      "message": "Bug 3330205 Put blanks and zeroes in const area\n\nChange-Id: I8f25aebd1ded3617dc60951271767281f73b8684\n"
    },
    {
      "commit": "b4867734b06a18494976934c6f33ff2549595e3f",
      "tree": "e0872aed3956ed9a5f8e66457acf71b0c066c96d",
      "parents": [
        "f67e5211e045af1b12f646448a5a35f96ba5e8f1"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 00:50:45 2010 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Fri Oct 15 01:10:31 2010 +0800"
      },
      "message": "stdio: make internal symbols static/hidden\n\nAlthough header libc/stdio/local.h declares the macros and private\nvariables of stdio, there are several internal symbols exposed\nunexpectedly.\n\nChange-Id: Ie7a07f85b70322fb9cd05b3c8e1bcc416061eb4b\n"
    },
    {
      "commit": "a910abcd194830d2d113b3e183eb7df4d36cd92e",
      "tree": "291303f658796db61bcbf9b8107b3a88a4f83c79",
      "parents": [
        "1297428e89ead45849068989d334d8b7eae2f602"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:46:25 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 17 09:34:13 2010 -0700"
      },
      "message": "improve readability of stdio: fix indentation and remove trailing spaces\n\nChange-Id: Ic51e58a7c75d20bf770dc0ebd7f97a338fbe0036\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n"
    },
    {
      "commit": "051ea9bc07809a2638e5f022ae10330e23530f64",
      "tree": "e4b9e8ffccf81cc3edfb2d2fd42472a9eee25550",
      "parents": [
        "d791da79432064bc954fedf8d4e4394aaafefe75"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:45:07 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 10 15:42:47 2010 -0700"
      },
      "message": "stdio: simplify __fremovelock()\n\n... by removing extraneous NULL check, as free() already does it.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nChange-Id: I0445f35c7ad0a049a0e4aee1fbe002ed2f13b94b\n"
    },
    {
      "commit": "c8a850bcd174acf43f951b5b70783cb636418b53",
      "tree": "62f931c9e8a683417384825b2f33fb01045ab13c",
      "parents": [
        "6aed4288eba64f8265b98d34fdfd0bc0cd76151d"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:40:45 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Apr 29 07:33:40 2010 -0700"
      },
      "message": "stdio: simplify vasprintf()\n\n... by removing unneeded NULL check, as free() already does it.\nBy the way, we don\u0027t need to set a stack variable back to NULL.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n\nChange-Id: Id90eb8f042b5c922c5ff139b11ff8366fb404566\n"
    },
    {
      "commit": "6aed4288eba64f8265b98d34fdfd0bc0cd76151d",
      "tree": "30ef6162d6d4364d27037798f69dd93eb7e35d53",
      "parents": [
        "e734769276045c0cb89d4620fdd4ef35a0e6c335"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:39:00 2010 -0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Apr 29 07:31:44 2010 -0700"
      },
      "message": "stdio: simplify asprintf()\n\n... by removing unneeded NULL check, as free() already does it.\nBy the way, we don\u0027t need to set a stack variable back to NULL.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\n\nChange-Id: Id1f72e872f73366dddcea4abc75885a3d9a318c6\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "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"
    }
  ]
}
