)]}'
{
  "log": [
    {
      "commit": "f8349361a16a4e2796efe9f3586b994e8d4834e4",
      "tree": "0a3474cde4028e1915c59393f49c147dd76ad766",
      "parents": [
        "44335e189951a863607049a33571932fb6a2a841"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 18 15:00:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 18 15:16:21 2012 -0700"
      },
      "message": "Use static thread safety analysis when available, and fix the bugs GCC finds.\n\nIt\u0027s impossible to express the Heap locking and the ThreadList locking with\nGCC, but Clang is supposed to be able to do it. This patch does what\u0027s possible\nfor now.\n\nChange-Id: Ib64a890c9d27c6ce255d5003cb755c2ef1beba95\n"
    },
    {
      "commit": "a0e180632411f7fe0edf454e571c42209ee7b540",
      "tree": "97dc85e76c5449ec1a901226c44e0f68fec89870",
      "parents": [
        "e5eb1914de86129d78e965fb9f2e1bfb2aa68640"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 13 15:59:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 14 11:44:21 2012 -0700"
      },
      "message": "Add a SafeMap equivalent to std::map but without the error-prone operator[].\n\nChange-Id: Iae5ba2091c55a34dbd1005cf3d25fce2a8d5c1f9\n"
    },
    {
      "commit": "2faa5f1271587cda765f26bcf2951065300a01ff",
      "tree": "c59557857c36741cfcd1b6bf5ae039886a8ad6e7",
      "parents": [
        "0850c69c88d49efd4075288511b70d6c032bd0c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 14:42:07 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 30 16:46:29 2012 -0800"
      },
      "message": "Fix copyright headers.\n\nChange-Id: I5b7bc76a370238d810d78522bd5531600746700f\n"
    },
    {
      "commit": "e5448b5a12003b405b22cde3b94f962ab4888a87",
      "tree": "1192cf30e8b0132a9317290d18402ed9af8c4681",
      "parents": [
        "db9f4c08d8b23495796874158a56bdac612c7a6e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 16:44:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 16:44:06 2012 -0800"
      },
      "message": "Remove most of the unordered_ stuff and use the standard equivalents instead.\n\nChange-Id: I01c6f195fd2cf6edbe430fb31e99b2e2748c2088\n"
    },
    {
      "commit": "cac6cc72c3331257fa6437b36a131e5d551e2f3c",
      "tree": "f2d690a06397d3fceac391802925f48909e999d7",
      "parents": [
        "64155032b391fd7132bdd04ec0669135ae1176a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "message": "More SIGQUIT detail, earlier exit in AttachCurrentThread, handling recursive aborts, and reporting debug/optimized builds.\n\nChange-Id: I932b49a8e92a91e340b4d98b8771dd4a41b61229\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\n"
    },
    {
      "commit": "c33a32bccc4c66ed82ce3a580b16636399385cb4",
      "tree": "ef101d11157784c0724998d39e988a275ed4f69c",
      "parents": [
        "a465c2034094eeb827ff9204951703dc5f269d60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 18:18:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 18:18:07 2011 -0700"
      },
      "message": "Sweep the monitor list.\n\nChange-Id: I343261206f8bbabd245b404dd95d532255e5d870\n"
    },
    {
      "commit": "c74255fffb035001304c9a058a2e730a5a1a9604",
      "tree": "a2ebae8c3170928768fdbdbdd6ab6d05f7bc8636",
      "parents": [
        "d369bb76dee0df2d2a106e9bf7f4e6446ed6deaa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 11 22:47:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 12 16:23:08 2011 -0700"
      },
      "message": "Interning image strings\n\nChange-Id: I7e93b3975fe43d91d00b8185b65e8e0fd67ff6f4\n"
    },
    {
      "commit": "8daa0929f08a3080ea64dbd4e997e72f411e6fc9",
      "tree": "cecee23131d5e0357c17c44bcccc7ddcfb31b925",
      "parents": [
        "4b620ffb1b4d0c96a94bb3afe314f35d53990ec6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 13:46:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 11 14:01:57 2011 -0700"
      },
      "message": "More threads work.\n\nAdds stubs (and sometimes implementations) for dalvik.system.VMStack and\njava.lang.Thread native methods. There was a bug in the dalvik\nthread priority setting code, where the current thread and the passed-in\nthread were confused.\n\nI\u0027ve also pulled Mutex and ThreadList out into their own files, and\nmoved some functionality around (with the aim of having more stuff\nprivate, especially locks).\n\nChange-Id: Ieb0f22669cac3df44ca34f7868f8e7d4dfa09ab6\n"
    },
    {
      "commit": "410c0c876f326e14c176a39ba21fc4dd3f7db8ab",
      "tree": "e4b77ac5ed99b7206c51f6519689fdbc623e843d",
      "parents": [
        "1b4c85959b3d9a4a33bc2160c46c1bbde67350c7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 17:58:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 22:16:18 2011 -0700"
      },
      "message": "Mark more roots.\n\nThis is most of the stuff. (Everything that currently exists, though there\u0027s\nmore to come.)\n\nChange-Id: I235a21b006820a027c494374a5b52ffefed89c32\n"
    },
    {
      "commit": "cf4c6c41b0084dc4567ff709fb8ce9ebd72b26ac",
      "tree": "ca3d0314b5c4111d7ab6fd97b4e68d5b2679e237",
      "parents": [
        "2f0ce9d60a4a9371c63a32a3764320fb02341acb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:16:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 01 15:51:43 2011 -0700"
      },
      "message": "Fully implement string interning.\n\nAlso, more const.\n\nChange-Id: I09cae88d677e8e6e42d0fa9b5d1093c79d225e66\n"
    },
    {
      "commit": "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae",
      "tree": "37078335c64cb760a0379a33eb4ceaf6b08356ea",
      "parents": [
        "68f4fa09cfd72b4292cbe7a213f03da7902ba775"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 23:33:41 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 12:30:48 2011 -0700"
      },
      "message": "Initialize ClassLinker from image\n\nChange-Id: Ibaf47b4181f7c6603a8b37e2eba8fa6509c927ed\n"
    },
    {
      "commit": "de69d7f8c32be83c405bf5a9c5f15fc655f578fa",
      "tree": "cb55a919ba3fc9f5ee0e8f70cf22235bd6161532",
      "parents": [
        "2cfd15d1940c848fd60b454c545a33e2a78d185e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 16:49:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 16:49:37 2011 -0700"
      },
      "message": "Clean up mutexes on shutdown.\n\nChange-Id: Ib961f954280c27f8858c4d6fb9010cc833bb28d2\n"
    },
    {
      "commit": "7e93b50433cde2a44d99212e8040299bde498546",
      "tree": "5365abc77a3ada7f50bfc06b5772e03b86ee8f3c",
      "parents": [
        "8860c0e8491a27aa03b55f2417478fb3629611d6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 14:16:22 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 04 22:59:02 2011 -0700"
      },
      "message": "String intern table and support for unordered_map\n\nChange-Id: I22d86d060780552675c5d7f14a98ffde480eac82\n"
    }
  ]
}
