)]}'
{
  "log": [
    {
      "commit": "0e90bb97cb105a3c0c9e817f61f83f0982c6ce42",
      "tree": "2dbd02d98501c68442c55c290c9c0a5af76a60b3",
      "parents": [
        "2f77ecb81366d9c269d608e33ec0a1ee9795dffe",
        "137ab19a0a196a419636b078f94aef23b1172335"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 19 07:58:21 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 19 07:58:21 2013 +0000"
      },
      "message": "am 137ab19a: am b37b53bf: am 87942c9a: am b3bfe881: Merge \"Make libutils Looper independent of frameworks/native\"\n\n* commit \u0027137ab19a0a196a419636b078f94aef23b1172335\u0027:\n  Make libutils Looper independent of frameworks/native\n"
    },
    {
      "commit": "1693d7e48f976c2615100378c7e98d245e0213be",
      "tree": "c7d44f2b69021f0d96887a9e6b36fdade2bcf7d5",
      "parents": [
        "d27498cbef862fccb857d7d8970418b893f550ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 11 22:46:45 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 18 22:32:13 2013 -0800"
      },
      "message": "Make libutils Looper independent of frameworks/native\n\nChange-Id: I1dacca10a3cd7601abc3451b69ed761bf71c38fe\n"
    },
    {
      "commit": "0c5f9c04b8b5349575288e201dee997c079b7851",
      "tree": "64da4e2c3f92b62f83718eb3bab474c64f2731e3",
      "parents": [
        "d9a5df44c5866a8cdd63d5ba39d70a0287a6df71",
        "0f7c043ba89de91cb9531645893f3cb79e15ced5"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Dec 18 00:31:31 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 18 00:31:31 2013 +0000"
      },
      "message": "am 0f7c043b: am 7510fa3e: am d38ca369: am 9ade11c1: Merge \"SystemClock: use clock_gettime() on devices without /dev/alarm\"\n\n* commit \u00270f7c043ba89de91cb9531645893f3cb79e15ced5\u0027:\n  SystemClock: use clock_gettime() on devices without /dev/alarm\n"
    },
    {
      "commit": "64289760a2df9409d8f4fa5becb4a49f0acb20a5",
      "tree": "b1cf5104c9a1f658bcca05209156702b75b4a888",
      "parents": [
        "a585e662e0141d8b3445749ef83b8d9b138d7905"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Dec 16 17:04:32 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "SystemClock: use clock_gettime() on devices without /dev/alarm\n\nOn devices with an up-to-date kernel, the back-in-time bug affecting\nclock_gettime() has been fixed and it can safely be used as an\nalternative to the ANDROID_ALARM_GET_TIME ioctl.  To ensure consistent\nbehavior on existing devices, make clock_gettime() a fallback for when\nthe alarm driver isn\u0027t available.\n\nChange-Id: I384af5e7ec9e73e0bad4b6b0f987a8ea4583cba6\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "9b0e074c6d38143e01616404a08b0c7aa992f3c3",
      "tree": "c8cc73a2d73f7a600d70eee4fee2028895a61066",
      "parents": [
        "62a70df0643e7d5d40613904bf6c9747494366ef"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Oct 31 16:25:04 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 06 12:37:14 2013 -0800"
      },
      "message": "Move CallStack to libbacktrace.\n\nFix a small bug in the Printer for strings that didn\u0027t properly\nprepend the prefix.\n\nChange-Id: I33c63841ef6e07728ab3195886539d82b38ee19a\n"
    },
    {
      "commit": "eb0eb4f79fca083009aa7a6b6e28ddcdbcbd1214",
      "tree": "0b57a1d4b64788480efa9db1988ee7e313063085",
      "parents": [
        "d3beee649ffe7c2879b7b3616d33d6e813e28dbd"
      ],
      "author": {
        "name": "Shuo Gao",
        "email": "shuo.gao@intel.com",
        "time": "Thu Oct 17 11:36:11 2013 +0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Oct 30 23:24:29 2013 -0700"
      },
      "message": "fix corruption in Vector\u003c\u003e when malloc falied\n\n1. When alloc or realloc failed in the function SharedBuffer::editResize,\nit would return a NULL pointer, then mStorage would update to be 1 by\nSharedBuffer::data() if no pointer check here, which is an obviously\nwrong address, and would cause corruption when used it e.g. in capacity().\n\nSo add the pointer check here for the return value of SharedBuffer::editResize,\nif it\u0027s NULL do not use it to update mStorage, to avoid the value of mStorage\npolluted.\n\n2. when alloc or realloc falied in _grow \u0026 _shrink function, mStorage keep\nthe original value, so mCount should not be updated here.\n\nOtherwise, mStorage might be 0 but mCount\u003e0, so a corruption would happend\nwhen it try to delete items from the Vector since mCount\u003e0.\n\nChange-Id: I7c3814e843c459834ca5eed392e8d63d1cb7d2d8\nSigned-off-by: Shuo Gao \u003cshuo.gao@intel.com\u003e\nSigned-off-by: Jian Luo \u003cjian.luo@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nAuthor-tracking-BZ: 139626\n"
    },
    {
      "commit": "e65b7ea8801145626504c724c28aedd0e5038a28",
      "tree": "5e41390a9a7a0ff264560aef6c50a5802f3cb816",
      "parents": [
        "81f2c3d2117cfe7307ee6efbd82567bd02950965"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 18:09:52 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 18:09:52 2013 -0700"
      },
      "message": "utils: Fix broken sdk build on windows\n\nBug: 11324229\nChange-Id: Ia50e79b5e2430faea77b0c98902e8e018fb9ceff\n"
    },
    {
      "commit": "81f2c3d2117cfe7307ee6efbd82567bd02950965",
      "tree": "4854b722b01a35978cfc4d7f75f02e7b44ab6a1c",
      "parents": [
        "1b84e0a3145f1497fc2259608d8830f371526ece"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 16:01:54 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 16:05:45 2013 -0700"
      },
      "message": "utils: Fix broken build\n\nBug: 11324229\nChange-Id: I7e4f514c5531e4c0c11bb0ba5d67e4dabbcd5792\n"
    },
    {
      "commit": "ec79ef2e7b6b1d81266637ca0e002b5c0c5a789b",
      "tree": "309ff8a328db5ccd522995abe3614959cfded1c6",
      "parents": [
        "a9e453f1b552699f69dca19599c7624a581089bd"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 24 17:09:15 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 25 19:24:56 2013 -0700"
      },
      "message": "utils: Add ProcessCallStack to collect stack traces for all threads in a process\n\n- Also add a Printer class (print lines to logcat, fd, or strings)\n\nBug: 11324229\nChange-Id: I78435ed49aa196a0efb45bf9b2d58b62c41737d3\n"
    },
    {
      "commit": "5cd118178e87c4a6590dc8d8446effa5d5193a9f",
      "tree": "4b9df4d9c9089c86922189f4f6340c6eda68d969",
      "parents": [
        "6b1a027239689a817aa5ca44a2bcbfe48ed21408"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon Sep 23 22:39:15 2013 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon Sep 23 22:39:15 2013 -0700"
      },
      "message": "Disable timestamp logging.\n\nThe kernel problem has been fixed long time ago and the ad-hoc logging\nmechanism is not thread safe and can flood the log with spurious\nmessages.\n\nBUG: 10899829\nChange-Id: I63278db51295e744eed3e47dc8d4cfe621c0d8f7\n"
    },
    {
      "commit": "d98e07fdf9c338589f263c47ce5c844ed43efad5",
      "tree": "d4ff9849df225df1e4c46386fdabe30407ba5513",
      "parents": [
        "be06210c508d5878dcc7d185e5613f4c7e38dfe8"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Aug 02 14:40:08 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Aug 02 14:40:08 2013 -0700"
      },
      "message": "move libs/utils to libutils\n\nChange-Id: I6cf4268599460791414882f91eeb88a992fbd29d\n"
    }
  ]
}
