)]}'
{
  "log": [
    {
      "commit": "387d4b7de9af2afd0c37a895ff9d012eb1f66156",
      "tree": "a515a4be8d2881d734a6b1c2a2e4f1fdd0c43e1d",
      "parents": [
        "709bb0f79ced522e5fb145182472ee4063b85368"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 15:17:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 09 16:05:31 2012 -0700"
      },
      "message": "Auto-generate a complete NOTICE file.\n\nRemove the hand-collated ones, and switch to a script that pulls the\ncopyright headers out of every file and collects the unique ones.\n\nChange-Id: Ied3b98b3f56241df97166c410ff81de4e0157c9d\n"
    },
    {
      "commit": "52d6233296ec84eb5b58fcbf7bc9da4b96a943aa",
      "tree": "b0186ce62c2aedc309501f0bfc641a291d91d3e6",
      "parents": [
        "a7916509a3446afd0e863b03e4204cee73e81555"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 17:40:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 27 17:43:38 2012 -0700"
      },
      "message": "Report errors to the log, not just stderr.\n\nIn particular this affects assert(3) and __cxa_pure_virtual, both of\nwhich have managed to confuse people this week by apparently aborting\nwithout reason. (Because stderr goes nowhere, normally.)\n\nBug: 6852995\nBug: 6840813\nChange-Id: I7f5d17d5ddda439e217b7932096702dc013b9142\n"
    },
    {
      "commit": "762a4fe2eed6a36b14d3b378c2974ad355d97d54",
      "tree": "a430b718a10128db36185033de5d2c30f87a6ff5",
      "parents": [
        "f848321c4feb0a8b194a2148c3a9d6d65280f924",
        "35d592cc5ac72b851bc2bfb66b159cd62c68a634"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:40:26 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:40:26 2012 -0700"
      },
      "message": "resolved conflicts for merge of 35d592cc to master\n\nChange-Id: I8184302daf61814d26c837f9920b4e68d96d7f65\n"
    },
    {
      "commit": "ee18fb4aacc9b67b397a0b000dda6e350ad5b3f0",
      "tree": "1b0359779dc381a7f2cf91220c5318ba2e4b87b9",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Fengwei Yin",
        "email": "fengwei.yin@intel.com",
        "time": "Wed Mar 28 17:25:17 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 14:20:30 2012 +0800"
      },
      "message": "libstdc++: Fix x86 thread-safe one-time-construction implementation.\n\nThe root of the problem is that the existing implementation is based on the\nARM C++ ABI, which mandates a different guard variable layout than the\nItanium/x86 C++ one.\n\nThis patch modifies the implementation in a way that satisfies both ABIs (and\ndoesn\u0027t require changing the toolchains).\n\nChange-Id: I885e9adc7f088b9c0a78355bd752f1e6aeec9f07\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "e31bfae2baa96742f998155ee26e56c826a8ce3a",
      "tree": "b12cfb44ad035c26278f42fa9b19095e90b79e95",
      "parents": [
        "8180b08fb2f27052f9df2ae4787bb5bf409f13e0"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Nov 15 15:47:02 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Nov 16 16:28:10 2011 +0100"
      },
      "message": "bionic: Do not use \u003csys/atomics.h\u003e for platform code.\n\nWe\u0027re going to modify the __atomic_xxx implementation to provide\nfull memory barriers, to avoid problems for NDK machine code that\nlink to these functions.\n\nFirst step is to remove their usage from our platform code.\nWe now use inlined versions of the same functions for a slight\nperformance boost.\n\n+ remove obsolete atomics_x86.c (was never compiled)\n\nNOTE: This improvement was benchmarked on various devices.\n      Comparing a pthread mutex lock + atomic increment + unlock\n      we get:\n\n  - ARMv7 emulator, running on a 2.4 GHz Xeon:\n       before: 396 ns    after: 288 ns\n\n  - x86 emulator in KVM mode on same machine:\n       before: 27 ns     after: 27 ns\n\n  - Google Nexus S, in ARMv7 mode (single-core):\n       before: 82 ns     after: 76 ns\n\n  - Motorola Xoom, in ARMv7 mode (multi-core):\n       before: 121 ns    after: 120 ns\n\nThe code has also been rebuilt in ARMv5TE mode for correctness.\n\nChange-Id: Ic1dc72b173d59b2e7af901dd70d6a72fb2f64b17\n"
    },
    {
      "commit": "7c72513bfa2a10f48e3205e7d8bf66f6ee1a7082",
      "tree": "cb3a3a0498560224a923bbf912b90062cc3bdd09",
      "parents": [
        "b127b1f208e67d74a7ee94ad2bd0ffb2fed3af6b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jun 14 21:58:55 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jun 14 21:58:55 2011 +0200"
      },
      "message": "libstdc++: make operator new call abort on failure.\n\nThis change ensures that operator new will call abort() in case\nof memory allocation failure. Note that due to our usage of memory\novercommit, this can only happen under very rare circumstances\n(i.e. trying to allocate memory larger than the larger free range\nof virtual address space, or when memory is corrutped in various\nways).\n\nChange-Id: I128b8bf626216e899c22a00f24492cd148a1fc94\n"
    },
    {
      "commit": "d466780c7cedb41edcf13f28ad900556c6aaa5b2",
      "tree": "cbbc780df9598adb5788824075f2519c54f22fff",
      "parents": [
        "519763265ec0b634bd9c264a0aca034882458ecc"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 11 13:18:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 07 14:18:20 2010 -0700"
      },
      "message": "Add missing SMP barriers to libstdc++\n\nChange-Id: I20a8dcd2e3316ac60237e800c682cacc8e59e187\n"
    },
    {
      "commit": "8f92500fa93d174d077af28d8af3e3cb732e0aff",
      "tree": "8dbb819efaf6b071dab7467dd23d8db15aa59ec6",
      "parents": [
        "95604529ec25fe7923ba88312c590f38aa5e3d9e"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:26:30 2010 -0200"
      },
      "committer": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Jan 30 22:26:30 2010 -0200"
      },
      "message": "optimize delete/delete[] operators by removing unneeded branch\n\nRemove redundant not NULL check already done in free().\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\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"
    }
  ]
}
