)]}'
{
  "log": [
    {
      "commit": "f327e07b37e349b1ec5eaad6dc294a9b7a081d20",
      "tree": "2c64b1f6212045a529c18d1dbe04b3da8fd1d6e9",
      "parents": [
        "9e0c175a0cea5c8c88a6927e6375554118f74a82"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 16:01:26 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 09 18:07:12 2013 -0800"
      },
      "message": "Implement ObjectReference.MonitorInfo.\n\nChange-Id: Iefc276939b9e569f4ea4d7a5af9a28276a3fb632\n"
    },
    {
      "commit": "4cd121ef0cb35fced70c7d9de378277be7a727d9",
      "tree": "c786e70cfe50147749d9dd7494dd7112271c8f60",
      "parents": [
        "1a25aa432314bcf008c11e3514afc0b7aeb64d5c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 07 17:35:41 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 08 11:06:02 2013 -0800"
      },
      "message": "Implement the Thread.sleep native method.\n\nThis makes returning TS_SLEEPING from JDWP simple and cheap, and\nmakes the stack dumps for sleeping threads more easily understood\nby app developers (because there\u0027s no Object.wait magic going, and\nthe thread state is \"Sleeping\" rather than \"TimedWaiting\").\n\nAlso make Object.wait() a native method in its own right, so every call into\nMonitor::Wait can explicitly pass the most appropriate ThreadState: kSleeping,\nkWaiting, or kTimedWaiting.\n\nAlso add Thread.sleep and Object.wait(long, int) calls to the ThreadStress test.\n\nChange-Id: I49adb45dbcd669eba7cf3def45e6cbfc461a3254\n"
    },
    {
      "commit": "c8253caa7045a7683666725a6d8aeba96a8f9c7a",
      "tree": "45969fd6f23e277ee1fbcdcb0d218ebdf636fe14",
      "parents": [
        "306057fd278d75bf3794bd5243a3b6652c487d18",
        "c8fece309fa1d3514071fadaca34530648462b50"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:44:35 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 02 11:44:35 2013 -0800"
      },
      "message": "Merge \"Port the Runtime.nativeLoad change to art.\" into dalvik-dev"
    },
    {
      "commit": "c8fece309fa1d3514071fadaca34530648462b50",
      "tree": "d4d20537d732e39effcd3ed7d45c44d7b14312cd",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:27:23 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 02 11:27:23 2013 -0800"
      },
      "message": "Port the Runtime.nativeLoad change to art.\n\nAlso improve the diagnostics when RegisterNatives fails.\n\nChange-Id: I1000e2e240ce71fbcb4dbc42168253ef8a15c565\n"
    },
    {
      "commit": "306057fd278d75bf3794bd5243a3b6652c487d18",
      "tree": "62652a97caace11e50408d15688ced3514039219",
      "parents": [
        "2d76b041be770102fc912effc398e629a18180d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 12:45:53 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 02 11:15:42 2013 -0800"
      },
      "message": "Support for deoptimization needed for debugging.\n\nThe deoptimization code is untested, and some sanity checks in the\ninstrumentation are disabled because they need debugging.\n\nChange-Id: I1b60a65a60bddc9b107ad4659da097b55ce901c3\n"
    },
    {
      "commit": "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461",
      "tree": "2350745da33df6fcb9fb0c9059e55ea5d5ea8f67",
      "parents": [
        "76b6167407c2b6f5d40ad895b2793a6b037f54b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:34:25 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:35:05 2012 -0800"
      },
      "message": "Move logging.h into base/logging.h.\n\nChange-Id: Id68f85f7c3a71b156cb40dec63f94d4fb827f279\n"
    },
    {
      "commit": "76b6167407c2b6f5d40ad895b2793a6b037f54b2",
      "tree": "5c433a0907ddf401f4078b6703253b1ae75e723e",
      "parents": [
        "f66330a747eff155eb571b634fc9d901c55a78a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:47:30 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:11:44 2012 -0800"
      },
      "message": "Move mutex.h into base/mutex.h.\n\nWe don\u0027t actually need any hackery to get the right mutex.h any\nmore, but since we planned on having the google3-like stuff\nin google3-like locations, this is an easy one to fix.\n\nChange-Id: Ie27464ebbc208a6f4e694a97cf26b1cee0737009\n"
    },
    {
      "commit": "1cac343f8621a81bcd3f52f8eee0f497a66d7408",
      "tree": "b2c2dc7326ae708e4d2aa185c6234df8341d3dcc",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "message": "Remove now unused RelocationBehavior\n\nChange-Id: Ifdb98a63376014a698b53bc926fb1c5512dc2e57\n"
    },
    {
      "commit": "cfaa455374aae0a08c8cb28b5bb306b17866d652",
      "tree": "ca8f25a06f234385b6e62bb774085f1324e5d519",
      "parents": [
        "3676aeb03d5f70933891bb3b21abb8e31a81e36c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 21:00:08 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 16:38:21 2012 -0800"
      },
      "message": "Turn the thread peer_ into a Object*.\n\nDon\u0027t use a JNI global ref for the thread peer_ so that we can\nsupport more threads than we can global refs. This fixes run-test 51.\nFix a race in thread destruction where a thread may be requested to\nsuspend while deleting itself.\n\nChange-Id: Id8756a575becf80d2a0be0a213325034556927f1\n"
    },
    {
      "commit": "725a957985171d712d5c048cc3d00ff14968784b",
      "tree": "3bd4b161268ecd477aa471665316fb27a3dda145",
      "parents": [
        "35883cc623fdf475a4ead1dafcba9e9becc1ed11"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 13 18:20:12 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 14 11:42:33 2012 -0800"
      },
      "message": "Pulled out instrumentation into its own class separate from trace.\n\nThis is in preparation for Ian\u0027s debugger changes. The instrumentation\nstill needs support for debugging, which I\u0027ll add later.\n\nChange-Id: I29ce0af1ff2eaec8f6d2f54963263381363ebf72\n"
    },
    {
      "commit": "64b6d145fa53b8dfb07a8fc2426af13f155d5a4d",
      "tree": "727647da235e21508d6661c7e2a780ff8ee2003e",
      "parents": [
        "0f79d728370ab51b9b16a356b058c48330f43148"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 29 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 01 17:26:15 2012 -0700"
      },
      "message": "Interpret class initializers when building image.\n\nWe initialize all image classes with the interpreter if they have a\nclass/static initializer.\nBlack list classes whose initializers need access to on device native\ncode. If such classes are added to the image classes they will fail when\nthey attempt to enter JNI code. A number of \"intrinsic\" style JNI\nroutines are special cased to allow more than just trivial class\ninitializers to run.\nAdd a lock for initialization in the compiler to serialize the execution\nof class initializers and avoid deadlock.\nRemove InSourceSpace from image writer (cruft) and teach the image writer\nto fix up referent fields in references.\nFix bugs in the interprerter and implement filled-new-array.\nFactor some VM code to more easily share between the interpreter and\nJNI entry points.\n\nChange-Id: I6bb811dea84f1b82260b1a4e73ac7412179c0b41\n"
    },
    {
      "commit": "2502544dda14d654e09cb060729825f34abbb66a",
      "tree": "59057a2e4ee8db45d1c75326b9f63f2785897f56",
      "parents": [
        "2a85d8d034863df3c5ee156a140d0bd88b2b9224"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 29 23:10:54 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 29 23:10:54 2012 -0700"
      },
      "message": "Move Unsafe offset code to Java.\n\nChange-Id: I29c3cafaa7adceded6b1e934df63c80b5e0efa87\n"
    },
    {
      "commit": "2fa6b2e2fc3d2a2fc27808ce518dc76b80ce369a",
      "tree": "daba5f5e64409452e31ae42e3b1b6b6491ccb007",
      "parents": [
        "6ed960d260d0ec3cbbef455c646ccd47f4e78119"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 17 00:10:17 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 26 16:12:59 2012 -0700"
      },
      "message": "Interpreter.\n\nThe opcodes filled-new-array and packed-switch aren\u0027t implemented but\nare trivial given that they are variants of implemented opcodes.\nRefactor Field::Get routines to take the declaring class in the case of\nstatic field accesses. This avoids a check on every use of a field.\nRefactor arg array builder to be shared by JNI invokes and invocations\ninto the interpreter.\nFix benign bug in const decoding in the verifier.\n\nChange-Id: I8dee6c1f4b7f033e6c003422c56e9471cfaccda8\n"
    },
    {
      "commit": "aed8e8da3bd0ad57330d06d8517a3289029ddfe2",
      "tree": "9c77724b61cccc84f6abb21a1618d0bab1ead67a",
      "parents": [
        "41ada6273d3a4040a83d42c74a687e1ea9c4663b",
        "c621681b6d0fd682030830f5b98703eded2c87e6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 19 17:38:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 19 17:38:17 2012 -0700"
      },
      "message": "Merge \"Remove missing parameter from Object.internalClone.\" into dalvik-dev"
    },
    {
      "commit": "c621681b6d0fd682030830f5b98703eded2c87e6",
      "tree": "4be30b353d4f38a5b4fff1c16c9e100dfb92b8cf",
      "parents": [
        "30de32dec8dba21f7fec117b779c2b4e6bb4e4e6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 19 17:17:32 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 19 17:17:32 2012 -0700"
      },
      "message": "Remove missing parameter from Object.internalClone.\n\nChange-Id: I3e43e49042e21db839baae06e0504337f0cbe1fd\n"
    },
    {
      "commit": "50e17445e426517ca0dbd17027ca4a1823f97cee",
      "tree": "ef04ec59fd493389dc49067afeb8e50f31fb9aed",
      "parents": [
        "18fd7ec440e90260bf1c9eddca34229553a79b86"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 19 13:02:37 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 19 13:02:37 2012 -0700"
      },
      "message": "don\u0027t inhibit randomization on non-arm platforms\n\nChange-Id: I064ddaa5242de043d41940b8ac4d54ecdfacd6bb\n"
    },
    {
      "commit": "3056d0ca38acc3d829a13ec8f97d35a002ee354e",
      "tree": "395028dc5fbfaf00f52594fe2df34b57b88e65f4",
      "parents": [
        "ec139de9e77663c13a907a5244267db8bed947b5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 10:49:56 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 11:33:07 2012 -0700"
      },
      "message": "Improve accuracy of heap trim times\n\nBefore, WaitForConcurrentGc was being called inside of Heap::Trim.\nThis caused the printed trim times to be larger than they should be.\n\nChange-Id: Icc76b5ed7fb99350536d48a5215e7c1fdb8b4567\n"
    },
    {
      "commit": "28db0129e5d7ef642cf8845c86c0e11832817085",
      "tree": "3f1ca5abeb2e622e193573165bf20a626447337e",
      "parents": [
        "a85b8376740641f13dc078aea6be94d15a800803"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 16:20:41 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 22:26:03 2012 -0700"
      },
      "message": "Add oat file dependency on boot.oat load location\n\nChange-Id: I89742e361675bd4e5177e3af213bcc826ddd60de\n"
    },
    {
      "commit": "1a0b47568294be277315044aa11f4875c244e185",
      "tree": "0d308c853fbd41c2dc015cedbf5a2065beeb653a",
      "parents": [
        "c4dc43e8df6e1dba780d9eb06a1c7676d0577ba0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 17 16:23:18 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 17 16:23:38 2012 -0700"
      },
      "message": "Fix Zygote selinux code to support null values\n\nChange-Id: I05f9189f11ffd6e6d6d32582b051a91845653ad7\n"
    },
    {
      "commit": "dc1cd1037bf1b81c55b842b230fcc5f0d1e73003",
      "tree": "483082b002427e9fd5a2e595765fbc4f94f36c92",
      "parents": [
        "b8404a7de94c109e3c17b4205b5f8aaae996eb33"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:35:32 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 17 10:35:32 2012 -0700"
      },
      "message": "Remove HAVE_SELINUX guards\n\nChange-Id: Ibbf8ecff5dad3936be9b0788039381810a9c2c77\n"
    },
    {
      "commit": "1c23e1edb7361bbaec6e57fca86d8d3797960ad2",
      "tree": "af8aa791777271fc5105f19a70aa972768493856",
      "parents": [
        "ed6d5ed3494648780b9e91422c90d6bc22c16b79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 14:14:11 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 17:34:08 2012 -0700"
      },
      "message": "More space refactoring.\n\nAdd common interface, AllocSpace.\n\nRenamed the old AllocSpace to DLMallocSpace.\n\nAdded an new option enforce_target_size_, which when enabled, doesn\u0027t let\nthe heap grow past ideal heap size calculated during last Gc.\n\nRemoved redundant AllocationSize calls.\n\nMoved large object space to its own file instead of being in space.h/cc.\n\nChange-Id: I15e60531114bf213800599737cbd66ef44b46b15\n"
    },
    {
      "commit": "7469ebf3888b8037421cb6834f37f946646265ec",
      "tree": "b1eb8cd8d1e3b6263c2de77616020de4b4b5019f",
      "parents": [
        "d8195f19840911a73b1491dfc8e7c18139753731"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 24 16:28:36 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 08 18:02:42 2012 -0700"
      },
      "message": "Refactor and remove copy mark bits.\n\nRefactor code GC realted code to be in a GC folder.\n\nRemove copy mark bits by using pointer changing instead.\n\nEnable concurrent sweeping of system weaks.\n\nFix non concurrent GC plan.\n\nChange-Id: I9c71478be27d21a75f8a4e6af6faabe896e5e263\n"
    },
    {
      "commit": "4445a7e3398a6143939168097a3aa275b734504d",
      "tree": "9eda34219b4a840125694a86ddba49077e15b944",
      "parents": [
        "50b35e2fd1a68cd1240e4a9d9f363e11764957d1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 17:19:13 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 06 09:48:02 2012 -0700"
      },
      "message": "Class clean-up.\n\nMove Class code out of native and into Java.\nRemove ClassLinker::FindDexFile.\n\nChange-Id: Idd9c4563d2c32e76690675242ff491276ace9848\n"
    },
    {
      "commit": "50b35e2fd1a68cd1240e4a9d9f363e11764957d1",
      "tree": "4f3c58b7b293380f19e4f33357cb352e3330772e",
      "parents": [
        "8e9a1497f0d7da4d55f6e7ed8a7d96ba6db7222d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 10:09:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 11:07:39 2012 -0700"
      },
      "message": "Explicitly pass Thread::Current to MutexLock and Alloc.\n\nChange-Id: I8b75bc0617915465f102815b32306aa7760dcae4\n"
    },
    {
      "commit": "2fde53367dbe721e5273c34b590e67112322cc9e",
      "tree": "c5e10aa7d9d41b29298a42a0b96807787e27c574",
      "parents": [
        "2e447e0e8725503d975c50fbbd13df4c769ca85e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 14 14:51:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 04 10:14:03 2012 -0700"
      },
      "message": "Refactor spaces and add free list large object space\n\nAdded some more abstraction for spaces, we now have ContinuousSpaces and DiscontinousSpaces.\n\nAdded a free list version of large object space.\n\nPerformance should be better than the memory map version since we avoid creating more than\none memory map.\n\nAdded a cause for Gc which prints with the Gc message, dalvik has this as well.\n\nChange-Id: Ie4aa6b204fbde7193e8305eb246158fae0444cc1\n"
    },
    {
      "commit": "1f5393447b9f45be7918042d9ee7b521376de866",
      "tree": "1793cb0ae00b38a63f8cfd3a25b6cb0ee4edca16",
      "parents": [
        "870ea4772199f8d4cbd9a269f9093620ee50a59c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 21:09:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 09:27:04 2012 -0700"
      },
      "message": "Make PopSirt inlinable, pass self to SirtRef.\n\nChange-Id: Ieb91526b1cb1f8644ceb3c5b99649f658f43bbc1\n"
    },
    {
      "commit": "81d425b0b232962441616f8b14f73620bffef5e5",
      "tree": "cd1e46656269acf20e78817d675e56d9b9133e6c",
      "parents": [
        "bfaf917edbb1de8d158c3615e0da8ac3143d10c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 16:03:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 17:19:25 2012 -0700"
      },
      "message": "Pass self to lock methods.\n\nThis avoids frequent recomputation of\nThread::Current/pthread_getspecific.\n\nAlso add a futex based reader/writer mutex that is disabled.\n\nChange-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee\n"
    },
    {
      "commit": "b7882783b93769cec48e06c305a4ceac4642f787",
      "tree": "d8c8aed92596c597df57038686a118515949b6b7",
      "parents": [
        "d94040a6df2f3dfcf712bff999d3489322cf6ebc"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Sep 27 12:29:02 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Sep 27 13:03:33 2012 -0700"
      },
      "message": "Port 138b7a2e54923d99ed817f9a890c6fcd7c23c335 to art\n\nDisable ADDR_NO_RANDOMIZE for 3.4 or greater kernels\n\nEarly kernels had memory fragmentation bugs on ARM when\nASLR was enabled. The ADDR_NO_RANDOMIZE flag was added\nto work around this bug until the appropriate kernel fix\ncould be made.\n\nLinux kernel 3.4 seems to have this fix, making this workaround\nunnecessary.  Remove the workaround if we detect we\u0027re running\nan up-to-date kernel.\n\n(I believe the kernel patch is also in 3.3, but haven\u0027t explicitly\ntested it).\n\nBug: 5817320\nChange-Id: Ife1e511355c62c16fc90ba22811face7b573b312\n"
    },
    {
      "commit": "dbe6f4613ae0161b169f4fca8a616b0b393370ab",
      "tree": "bcf21fa802f8ae261522e8c9bab3685020908d13",
      "parents": [
        "474b6da273c7ce6df50a4e51eb9929a77e1611c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 25 16:54:50 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 22:36:20 2012 -0700"
      },
      "message": "Change Thread::peer_ to be a jobject instead of an Object*\n\nFixes issue where GC was freeing the java peer if the parent thread exited before the child thread got registered.\n\nChange-Id: I6fbe74865d5827d243ac55fc396679afa97ff2f9\n"
    },
    {
      "commit": "66f19258f9728d4ffe026074d8fd429d639802fa",
      "tree": "fd94009774c6cbbb1528ea096e606133bd35f104",
      "parents": [
        "a5e1e3d153990845d80cb8d013157210f11a473c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 18 08:57:04 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 21 17:32:56 2012 -0700"
      },
      "message": "Change dex cache to be java object instead of array, add pointer to dex file in dex cache.\n\nGeneric clean up to facilitate having GDB macros for Pretty* helper functions.\n\nImproved cleanliness of DexCache since having it as an object array was not the best solution.\n\nFixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.\n\nRename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.\n\nRename done to have the C++ code be closer to the java code.\n\nChange-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9\n"
    },
    {
      "commit": "ba0b9c55adce3f533845ab1b25c552589e5b4118",
      "tree": "053ae9ce87645f18eb380e9709a93ef7608452d9",
      "parents": [
        "46c6bb2f52cef82660b9be7576b49f83845df93a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 11:25:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 20 11:25:12 2012 -0700"
      },
      "message": "Add the native thread state to art SIGQUIT dumps.\n\nBug: 7053953\nChange-Id: I9be3f828332e5bbb003644802d7770b58d8298ed\n"
    },
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "fd678beb171a4686a4f2d53ca4188a4ade8fa54e",
      "tree": "ab932e92d683d8033241bb2248da98e76249d3eb",
      "parents": [
        "5bfa60ffcc953340feb711ed05cf576ac821905e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 30 14:50:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 04 14:58:14 2012 -0700"
      },
      "message": "Additional heap verification for the Gc\n\nThere are now two verification booleans which can be enabled. When these get enabled, it verifies that each live object only references other live objects.\n\nChanged SetClass to use SetFieldPtr to avoid having an extra card mark. This is safe since all classes are held live by the class linker.\n\nChange-Id: I005bb59e5cc8153a79d3ccb3d7b5cabd29fb4051\n"
    },
    {
      "commit": "15bf2d34efa2218e287b584fb3653d268b9edc8d",
      "tree": "4435664bd2c9a041d8c355940f2b5c95e03d38f7",
      "parents": [
        "e4f0b2ab4abd8e942a099e9b9b4682fbdd9eb21c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 17:33:04 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 30 17:22:52 2012 -0700"
      },
      "message": "Use bionic\u0027s dlmalloc 2.8.5.\n\nAlso fix free space computations for DDMS.\n\nChange-Id: Icbc045b5461af89a0516f37f01acaaa815205348\n"
    },
    {
      "commit": "b18e77abdb06a443744fbb6589e0932fa89f6073",
      "tree": "0e77099cfedbbb13a1fee3c1b93c34305b447d1c",
      "parents": [
        "22ad71521f3006b9bf344738c0276a501934fc01"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 21 14:20:21 2012 -0700"
      },
      "message": "Switch art over to the new bionic dlmalloc 2.8.5 callback\n\nChange-Id: I1314e87a51553fd358dbf9c44f804a7eb2de3a7d\n"
    },
    {
      "commit": "cd30d82113913125222454d41981c8740724fb30",
      "tree": "338a7f0a77af657e1643b9d5fb33cf5585680a2c",
      "parents": [
        "627fc20794cd280164f5021e5359f938512247ef",
        "178cdcccdeced1c24ddfe5e96ed39d9a99ee85b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 17:12:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 16 17:12:55 2012 -0700"
      },
      "message": "Merge \"Port multi-user support to art.\" into dalvik-dev"
    },
    {
      "commit": "178cdcccdeced1c24ddfe5e96ed39d9a99ee85b1",
      "tree": "57d11d49bc4efbe096451be081a564931696503e",
      "parents": [
        "f25448336f549de64c62c57f43a20b9079ef56c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 16:47:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 16 16:59:44 2012 -0700"
      },
      "message": "Port multi-user support to art.\n\nDisabled for now, but will blow up in the right place as soon as our\ntree has the rest of the support.\n\nChange-Id: I668176784a2a855c3d22236dc57df53b7fd3ae67\n"
    },
    {
      "commit": "3eace7061b8a854b5d0566d15646302da57caf75",
      "tree": "f6fe6c5d65e69758e4363d8310e0df7fa3f8d925",
      "parents": [
        "66aee5cd571cf4739d2735769304202ea5051fb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 16 10:44:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 16 10:44:47 2012 -0700"
      },
      "message": "Tidy up some raw Object access cruft.\n\nChange-Id: I42fee7eb1f549a795a6c83d3f971ed478e9e5ee5\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "cc236d74772dda5a4161d9bc5f497fd3d956eb87",
      "tree": "2cd44e980357edc5b1a477fb261adb590d34c7c7",
      "parents": [
        "f1ea6b072b8b473eabf91d1d582fb5966ffea4ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 20 10:29:05 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 27 14:30:51 2012 -0700"
      },
      "message": "Zygote space / partial collection support.\n\nThe zygote space is now created right before zygote fork. This space has new allocations into it disabled, this reduces memory usage since we have more shared pages.\n\nPartial collection works by marking all the zygote space -\u003e alloc space references by using a mod-union table and then recursively marking only over the alloc space.\n\nApproximate improvements;\n\nDeltablue time goes down ~0.5 seconds.\n\nCaffeinemark score goes up ~300.\n\nSystem memory usage goes down ~7MB.\n\nChange-Id: I198389371d23deacd9b4534f39727eb641786b34\n"
    },
    {
      "commit": "32c55de9075a4b6c5e45608dfdae7a5aa3e119b4",
      "tree": "98e7bbf6edcf00e62bd8c67e3992f9e203a4a235",
      "parents": [
        "81e2328c44a1e5b3fe26d275acfcf1ade26c05eb",
        "b062fdd4cb097fbae69b4bcb479c34d83ecab8ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 12 08:08:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 12 08:08:21 2012 -0700"
      },
      "message": "am b062fdd4: Each space has its own bitmap(s)\n\n* commit \u0027b062fdd4cb097fbae69b4bcb479c34d83ecab8ca\u0027:\n  Each space has its own bitmap(s)\n"
    },
    {
      "commit": "b062fdd4cb097fbae69b4bcb479c34d83ecab8ca",
      "tree": "215ea8fb42828a0f753ac5bd424ca098ce748342",
      "parents": [
        "ca314c6a1be1b4cc11f4d284da90af7dc8a4ce25"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 03 09:51:48 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 17:17:46 2012 -0700"
      },
      "message": "Each space has its own bitmap(s)\n\nEach alloc space now has One mark+live bitmap. Each image space has only one live bitmap.\n\nChange-Id: I2e919d1bd7d9f4d35d0e95ed83a58df6f754df6e\n"
    },
    {
      "commit": "aa4fab67c8f87047b44865b7a736d4b0a1936d45",
      "tree": "d2483a8352415023807800de30fcca0e25f6c96c",
      "parents": [
        "f70ab99ca425e931f4056577b7925e6e284381be",
        "26c5e1503425cae17f5b16fdf06a2d62ec03a59b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 13:18:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 11 13:18:55 2012 -0700"
      },
      "message": "am 26c5e150: Port \"Avoid method overriding if its super method is inaccessible\" to art.\n\n* commit \u002726c5e1503425cae17f5b16fdf06a2d62ec03a59b\u0027:\n  Port \"Avoid method overriding if its super method is inaccessible\" to art.\n"
    },
    {
      "commit": "26c5e1503425cae17f5b16fdf06a2d62ec03a59b",
      "tree": "91e3e62df1b13958b8b73a2ea871ccb877f8162a",
      "parents": [
        "5a8e3d5e87aed128837fb84874d18a1f68e63397"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:47:22 2012 -0700"
      },
      "message": "Port \"Avoid method overriding if its super method is inaccessible\" to art.\n\nThis is an art equivalent of https://android-review.googlesource.com/#/c/32480/3.\n\nChange-Id: Ifc2cd21e7e92f596bced3eabae4d16f16f4095ef\n"
    },
    {
      "commit": "ea9aff71aafeab5177ec6e32441704288afb290b",
      "tree": "1bd648149d71bdfa370afde690d2200deb3f39a1",
      "parents": [
        "089e2aa42a1f42251f92c3f41c41f12d25d18662",
        "52673ffae0025d86f4023735581f19ebcc477487"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 28 00:08:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 28 00:08:30 2012 -0700"
      },
      "message": "am 52673ffa: Move IsDaemon to native code.\n\n* commit \u002752673ffae0025d86f4023735581f19ebcc477487\u0027:\n  Move IsDaemon to native code.\n"
    },
    {
      "commit": "52673ffae0025d86f4023735581f19ebcc477487",
      "tree": "f684286493c5a71417b787717526a73de13ae9f0",
      "parents": [
        "9f509b90111ccc88dce25d587b2df4f87eb68013"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 27 23:25:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 28 00:05:10 2012 -0700"
      },
      "message": "Move IsDaemon to native code.\n\nHaving the daemon status in the managed heap means it is only readable\nby an attached thread in the runnable state. This is problematic when\nterminating the VM.\n\nAdd extra asserts that ScopedJniThreadState and Thread::SetState only\noccur on expected threads.\n\nRemember a cause for no thread suspension asserting.\n\nChange-Id: I8cf35c4c77751f8b1a35a5fb9a7f67682bf153bc\n"
    },
    {
      "commit": "4d7d723ffc4d9ee1861749ed978b12626c33dc53",
      "tree": "181c2711f5552f011bd9072e2584cc466e03e45a",
      "parents": [
        "112129dc20f0aaa366176a8cdeb1ef7abc088801",
        "afe25515c358617321d69ab4f25003e3d905d613"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:25:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 27 17:25:55 2012 -0700"
      },
      "message": "am afe25515: Update DexFile_isDexOptNeeded to handle system.img oat files with classes.dex\n\n* commit \u0027afe25515c358617321d69ab4f25003e3d905d613\u0027:\n  Update DexFile_isDexOptNeeded to handle system.img oat files with classes.dex\n"
    },
    {
      "commit": "afe25515c358617321d69ab4f25003e3d905d613",
      "tree": "c30ec73f0ae2f0b233f88b6eaf1c0b6bfd1df2dd",
      "parents": [
        "85545cd13c16c5074cca987f65247d7abddb39f7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:02:58 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 17:16:42 2012 -0700"
      },
      "message": "Update DexFile_isDexOptNeeded to handle system.img oat files with classes.dex\n\nChange-Id: I564bacec777b745a9c911a8fe8dd98437b1ddd2d\n"
    },
    {
      "commit": "3f35966fbae30f3b1ce549f38cfd3eb391ee98e3",
      "tree": "b12c6dd111e16a82f85cc5439c7c378d89ee8f0a",
      "parents": [
        "1bc29eafe0194121cbb647c34bfdd5f009f7a7b6",
        "08fc03ae5dded4adc9b45b7014a4b9dfedbe95a6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 27 12:21:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 27 12:21:35 2012 -0700"
      },
      "message": "am 08fc03ae: Include held locks in SIGQUIT thread dumps.\n\n* commit \u002708fc03ae5dded4adc9b45b7014a4b9dfedbe95a6\u0027:\n  Include held locks in SIGQUIT thread dumps.\n"
    },
    {
      "commit": "08fc03ae5dded4adc9b45b7014a4b9dfedbe95a6",
      "tree": "3e767d037fd3e47e792b88d982ad38bce26d39e9",
      "parents": [
        "f94404ead1f2e4a1b5a2ff8bbdb65c5e4d4a77ea"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 26 17:34:00 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 27 12:18:25 2012 -0700"
      },
      "message": "Include held locks in SIGQUIT thread dumps.\n\nHandy if you have an ANR that\u0027s locking related. Quick tour:\n\n   at org.apache.harmony.dalvik.NativeTestTarget.emptyJniStaticSynchronizedMethod0(Native method)\n   - locked \u003c0x60135aa8\u003e (a java.lang.Class\u003corg.apache.harmony.dalvik.NativeTestTarget\u003e)\n   at java.lang.reflect.Method.invoke(Native method)\n   at C.whileTrue(Main.java:63)\n   at C.synchronizedOnClassString(Main.java:56)\n   - locked \u003c0x60002a70\u003e (a java.lang.Class\u003cjava.lang.String\u003e)\n   at C.nestedSynchronizationWithTryCatch(Main.java:44)\n   - locked \u003c0x61336b90\u003e (a java.lang.String)\n   - locked \u003c0x61336bd0\u003e (a java.lang.String)\n   at C.nestedSynchronization(Main.java:35)\n   - locked \u003c0x61336b18\u003e (a java.lang.String)\n   - locked \u003c0x61336b50\u003e (a java.lang.String)\n   at C.synchronizedOnClassC(Main.java:30)\n   - locked \u003c0x613366f8\u003e (a java.lang.Class\u003cC\u003e)\n   at C.noLocks(Main.java:27)\n   at C.\u003cclinit\u003e(Main.java:24)\n   - locked \u003c0x613366f8\u003e (a java.lang.Class\u003cC\u003e)\n   at Main.main(Main.java:19)\n\nA non-static synchronized native method works too:\n\n   at org.apache.harmony.dalvik.NativeTestTarget.emptyJniSynchronizedMethod0(Native method)\n   - locked \u003c0x613371a8\u003e (a org.apache.harmony.dalvik.NativeTestTarget)\n   ...\n\nNote that most stack traces don\u0027t look any different; the above is a\npathological example that exercises different kinds of locking. Testing\nwith system_server shows most threads don\u0027t hold any locks.\n\nFuture work (marked by TODO) is that explicit JNI MonitorEnter calls in\nnative code aren\u0027t shown.\n\nChange-Id: I2747f5cddb4ef64b1935736f084a68fe8e4005e9\n"
    },
    {
      "commit": "eded2ea60adabcfce3ac0adfcf454636d5efa4f9",
      "tree": "d8796ea5b5f19921a1674cb1f805f9d5c8f6f9c5",
      "parents": [
        "f43e1f9ec70bac4005fb5ed6c2e4c47ef35b45b3",
        "271769a39b900a5f9f752cea318980e96367b55b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:25:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 26 15:25:12 2012 -0700"
      },
      "message": "am 271769a3: Merge \"Increase use of ScopedJniThreadState.\" into ics-mr1-plus-art\n\n* commit \u0027271769a39b900a5f9f752cea318980e96367b55b\u0027:\n  Increase use of ScopedJniThreadState.\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "e30c6d9f6458a747640cf614a69df9e1024532dc",
      "tree": "b0171fb5862b143df3355dbf680143c5428ba50e",
      "parents": [
        "64cd269a73f78aa5505963a44d83a7892f2f74a2",
        "0399dde18753aa9bd2bd0d7cf60beef154d164a4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:13:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 21 22:13:50 2012 -0700"
      },
      "message": "am 0399dde1: Remove Frame, merge shadow and quick representations.\n\n* commit \u00270399dde18753aa9bd2bd0d7cf60beef154d164a4\u0027:\n  Remove Frame, merge shadow and quick representations.\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "c151f90d7e31a59675e118c5aff20c8d3ad50ad0",
      "tree": "923511887af93148632377a5f52546c524249e5f",
      "parents": [
        "384c251c0b9f8918cdebf5f430878c84f10b1e46"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 20:33:21 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 20:33:21 2012 -0700"
      },
      "message": "Untested port of the SELinux dalvik change to art.\n\nChange-Id: I26b473156fe965f6ee34d8cbca6719c71442d912\n"
    },
    {
      "commit": "25abb8ca0fb56a0f93a7e7e1dde1c226948662f6",
      "tree": "baa61c7a6281e02c69e065c2855e985824e27753",
      "parents": [
        "9d6786b0499fce605aae16fb9cfb39c9562df256",
        "4d999fe696d43de5872f7be293e8a749cb69beaf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 14:26:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 20 14:26:59 2012 -0700"
      },
      "message": "am 4d999fe6: Merge \"Throw OOME if pthread_create(3) fails.\" into ics-mr1-plus-art\n\n* commit \u00274d999fe696d43de5872f7be293e8a749cb69beaf\u0027:\n  Throw OOME if pthread_create(3) fails.\n"
    },
    {
      "commit": "57aba86f29d7e795bf7e68c65cc464d2291b6af1",
      "tree": "6d03848a0d66c686092d03c063298bac6cefa2f2",
      "parents": [
        "72e401c59bce47fdf0274a0d47f0340b05e4f27f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 14:00:47 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 20 14:00:47 2012 -0700"
      },
      "message": "Throw OOME if pthread_create(3) fails.\n\nThis is how dalvik behaved, though we offer useful detail messages.\n\nThis patch also fixes a bug where we weren\u0027t actually including detail\nmessages in OOMEs (not just the pre-allocated one).\n\nChange-Id: If6c8f47008a9bd058d9773f2f2e6e9a4f0d843e1\n"
    },
    {
      "commit": "4519844b5e2ff7409acb46f73ccaff07ecdc009f",
      "tree": "1b70b7f30b02ee64e008462d2911c46d185d232f",
      "parents": [
        "a0fc2c7c19277de43516acdcdf9c24a7bd36dc70",
        "7664f5cd118b355a5fe0c7536cb48ac991ed2b62"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 11:22:43 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 11 11:22:43 2012 -0700"
      },
      "message": "am 7664f5cd: Fix GC performance regression\n\n* commit \u00277664f5cd118b355a5fe0c7536cb48ac991ed2b62\u0027:\n  Fix GC performance regression\n"
    },
    {
      "commit": "7664f5cd118b355a5fe0c7536cb48ac991ed2b62",
      "tree": "0564c36316e2aa0a892ff9914258433f14641a07",
      "parents": [
        "9eb5f03e0dd90ac25e01fcf81f832c50a1f09d2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 08 18:15:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 11:17:13 2012 -0700"
      },
      "message": "Fix GC performance regression\n\nEnable CMS and fix performance regression due to recursive marking image spaces. Dependent on my java change list.\n\nChange-Id: I4765792aa8226e811ac158f04ab88217db755573\n"
    },
    {
      "commit": "97d99dd76dba4245f194e23004fb38d8413b0e81",
      "tree": "25d4f47b0c5d62eebf251475e154b32ba62be60d",
      "parents": [
        "22efc080a6ed1e985fa6198dde05f0e4b273bdb6",
        "622a6988351d77da0008142f4ce1ea447d838556"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 18:08:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 18:08:13 2012 -0700"
      },
      "message": "am 622a6988: Clean up the hprof implementation a bit.\n\n* commit \u0027622a6988351d77da0008142f4ce1ea447d838556\u0027:\n  Clean up the hprof implementation a bit.\n"
    },
    {
      "commit": "e301764320e766b39cc393c7be692ef661093831",
      "tree": "5e9ba314e5d6708512109b01319552c36090c895",
      "parents": [
        "029c456815dbbe59208868a80137db379c20ca03",
        "a8454bd4dc137513f3d4d3f69922165804aa7419"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 18:00:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 18:00:25 2012 -0700"
      },
      "message": "am a8454bd4: Merge \"Trim the native heap too, like dalvik did.\" into ics-mr1-plus-art\n\n* commit \u0027a8454bd4dc137513f3d4d3f69922165804aa7419\u0027:\n  Trim the native heap too, like dalvik did.\n"
    },
    {
      "commit": "622a6988351d77da0008142f4ce1ea447d838556",
      "tree": "4308a9a60d5844ec3106e4d92018eb873e492019",
      "parents": [
        "06db56c39997b1bb1e69a3c5f2ba960dcd13e11a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 17:58:54 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 17:58:54 2012 -0700"
      },
      "message": "Clean up the hprof implementation a bit.\n\nChange-Id: I9e6622cd5ec10fe8af6553f72095bf3dee00afdd\n"
    },
    {
      "commit": "9eebd3b36f1f04c430623d6a2cffff05d80513ba",
      "tree": "487a51f0f4e78c385e240ce7722d46d4ca220be9",
      "parents": [
        "a9719eb4167b544438268d46692389761652fc5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 13:56:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 08 14:10:51 2012 -0700"
      },
      "message": "Trim the native heap too, like dalvik did.\n\nChange-Id: I240f33937ffe7a3d3df2a66cf5b4ee5296bce16d\n"
    },
    {
      "commit": "cb8f890e0723c4c9379aaf5c58bc80096c043f21",
      "tree": "92912345419f68166f2cac81ceb5f16f63dade80",
      "parents": [
        "5ddbe0bd1d3091f7afca7ad7e8ce8494c0c79994"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 16:42:50 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 16:42:50 2012 -0700"
      },
      "message": "[DO NOT MERGE] Bring ics-mr1-plus-art\u0027s Zygote in line with dalvik-dev\u0027s.\n\nWe\u0027re missing some libcutils changes in ics-mr1-plus-art, so we need to\ndisable the set_sched_policy call, but other than the #if, we\u0027re now 100%\nin sync with dalvik-dev.\n\nChange-Id: Id45527d846d72c796ad8504fdd90ba8bf9570d4c\n"
    },
    {
      "commit": "28c7bfdb245c09dfb6d953c42c42ebc5bb178ea1",
      "tree": "c9fb61afdd73ded021cbc0b0d2b6d1001f8e2706",
      "parents": [
        "60234563a621362c6ffe753fe5368afcd6682bcb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:45:40 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:45:40 2012 -0700"
      },
      "message": "Lose the boolean from Runtime.nativeExit.\n\n(This is getting ics-mr1-plus-art back in sync with dalvik-dev.)\n\nChange-Id: Icdb30a02444fd75a709b385cacf2b86b4e18f71d\n"
    },
    {
      "commit": "eac766769e3114a078c188ea26776a81f0edb3cf",
      "tree": "4b9b8dfc89725173431817baba4455c013e40577",
      "parents": [
        "3f9ace8d90bfc48c8d7bf35af66de8ce8238de7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 12:04:43 2012 -0700"
      },
      "message": "DO NOT MERGE Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nConflicts:\n\n\tsrc/native/java_lang_Runtime.cc -- nativeExit lost an argument in dalvik-dev\n\n(cherry picked from commit 7756d5473fa27ce7e6ac7c31770eef7030431da4)\n\nChange-Id: I6184fc20c2a9ec16c4b053584a4d1c3b64452d0f\n"
    },
    {
      "commit": "7756d5473fa27ce7e6ac7c31770eef7030431da4",
      "tree": "b980f5daea1c11f016360d8a334748d999780e1d",
      "parents": [
        "1f92871d20f804913f460bb69dc4d605cabf30cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 11:49:41 2012 -0700"
      },
      "message": "Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nChange-Id: Ifd441f8c84c4cff904ee62bbd6b5707ad365967d\n"
    },
    {
      "commit": "1d81bce6e2fb41d8de355e5c11547900f66d96c5",
      "tree": "70a710d8d1f1c13c0be0810cbc89ec49bdb338cc",
      "parents": [
        "7bdfa4279305bbbf9af05488fdaeb11d778f4d42",
        "aaa5edcf2deb1bddcbf5fb27820ad2240ac5b4f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 17:23:58 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 16 17:23:58 2012 -0700"
      },
      "message": "am aaa5edcf: Improve reflection IllegalArgumentException detail messages.\n\n* commit \u0027aaa5edcf2deb1bddcbf5fb27820ad2240ac5b4f2\u0027:\n  Improve reflection IllegalArgumentException detail messages.\n"
    },
    {
      "commit": "aaa5edcf2deb1bddcbf5fb27820ad2240ac5b4f2",
      "tree": "c2d0f408237ad5a30bfd67819e5c9a72cc3ac45e",
      "parents": [
        "983f2e411aee6b1d09e6da30e059b782b2699909"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 16 15:54:30 2012 -0700"
      },
      "message": "Improve reflection IllegalArgumentException detail messages.\n\nAlso add a missing InstanceOf check that was causing CheckJNI to kill us\nif someone tried to pass an inappropriate reference type through\nMethod.invoke. (Amusingly, CheckJNI produced pretty much the exact detail\nmessage that Method.invoke should have.)\n\nPlus a new test for this stuff.\n\nBug: 6504175\nChange-Id: Ice95eecbdba5a0927c6eaf68e56d6500dc52ad2e\n"
    },
    {
      "commit": "2abeb9bd1435d95faa08ecb6786f2fb9bc184bc9",
      "tree": "8731223d6e7ba2fb39abd21e5c32e83c2aa87bce",
      "parents": [
        "7ecccc93ad287dc9076ed64f26668941c1b70df0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 11 23:42:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 11 23:42:02 2012 -0700"
      },
      "message": "Clean up the non-portable bits of Zygote.\n\nChange-Id: I24789708d67bf9b705061032aa7074c3c167b525\n"
    },
    {
      "commit": "2e73b645261e41cf4d9eb4a133147285cac3e320",
      "tree": "548b8f2a9e2e37e0b0e053f8bd03aba558ca27d9",
      "parents": [
        "930c54bceee553a0fe01cd58da6823bb55168043"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 11 16:46:43 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 11 16:46:43 2012 -0700"
      },
      "message": "This branch has an up-to-date cutils.\n\n(You will need to sync system/core.)\n\nChange-Id: I8db5bdc59a555b1ec53a70d02c42ba97941a0ad9\n"
    },
    {
      "commit": "a4dd5903ff3fcf96d2a7f03d5ab2640e3f10a65c",
      "tree": "144e9cad6b210b117850e0a2550d0c11d2dcbd73",
      "parents": [
        "914570cfd4df532f8a333e57cd5ccf8576aad650",
        "ab30c6fec7a297e3b6953b00c95ed38bb448cfe6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 12:02:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 09 12:02:48 2012 -0700"
      },
      "message": "am ab30c6fe: Merge \"Tidy up and finish reference table dumping.\" into ics-mr1-plus-art\n\n* commit \u0027ab30c6fec7a297e3b6953b00c95ed38bb448cfe6\u0027:\n  Tidy up and finish reference table dumping.\n"
    },
    {
      "commit": "73e66f73f5093b64f2b023ebbb85916a13d5c937",
      "tree": "fca2dcdf446aec9aad2a3096098c038279279e53",
      "parents": [
        "145d491d1a30b291eb3ea608507a04451237f327"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 09:34:45 2012 -0700"
      },
      "message": "Tidy up and finish reference table dumping.\n\nChange-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca\n"
    },
    {
      "commit": "154cef6e704126ede910b239dcd19d3eaf201b73",
      "tree": "f212ef8427ba4f84e8136ed054db61388e837a6e",
      "parents": [
        "16dfc04da6d6fe92a3fbc3a2d0fa813861ada157"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 02 22:34:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 02 22:38:09 2012 -0700"
      },
      "message": "Only linux has personality\n\nChange-Id: If668d9756d03cc12d6a2c0ac01d40245779bc296\n"
    },
    {
      "commit": "9cde5054d9db5ee5942d35c0758bbee1106115cd",
      "tree": "97c0d3b041620e61056f26d91cd1ccee64818ef5",
      "parents": [
        "763330669f7e420d01f544fbd91e1fb0a9399b9d",
        "51e5386d207785316431be6719b3f128bc4048c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 17:36:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 17:36:47 2012 -0700"
      },
      "message": "Merge \"Port 311886c6c6fcd3b531531f592d56caab5e2a259c to art.\" into dalvik-dev"
    },
    {
      "commit": "51e5386d207785316431be6719b3f128bc4048c0",
      "tree": "f97500a384a66e61f96b6ff29caf29e9ff4fc132",
      "parents": [
        "10b628b805bf54831c5e601c5b0daa2f12b8a724"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 17:17:28 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 17:19:14 2012 -0700"
      },
      "message": "Port 311886c6c6fcd3b531531f592d56caab5e2a259c to art.\n\nARM kernel ASLR bug workaround.\n\nBug: 5817320\nChange-Id: I9a04e669a642c08a07b0b3da29700d2cfd8d279f\n"
    },
    {
      "commit": "eab5198f806fccf1aef79db7602c4e3ce0a4e7bd",
      "tree": "3c669cb1c8217838661dc7104d7f31b2d32758ea",
      "parents": [
        "84d9357b9ac6a9b9fe5bd083d31abc760f1d1844",
        "7c6169de901fd0a39c8e0c078874dc25207f5b59"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 17:12:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 02 17:12:25 2012 -0700"
      },
      "message": "am 7c6169de: Port my AOSP QuasiAtomic rewrite to art.\n\n* commit \u00277c6169de901fd0a39c8e0c078874dc25207f5b59\u0027:\n  Port my AOSP QuasiAtomic rewrite to art.\n"
    },
    {
      "commit": "7c6169de901fd0a39c8e0c078874dc25207f5b59",
      "tree": "dd7adafc6bcdb734c26a495e4bd923081ef637e7",
      "parents": [
        "736df0253aa65ebccb29ddb6443c31b7730ca3e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "message": "Port my AOSP QuasiAtomic rewrite to art.\n\nChange-Id: I9e8fe487b15083cfc441a90ec1ec0eb5e645229e\n"
    },
    {
      "commit": "18124a1063c8b49c6692d5deb7384a6d05eedc4b",
      "tree": "7a676cac3048450f0bd0cc8224903e10a0ac78c3",
      "parents": [
        "02546c5f58074f12649f1d837a947b68ea8e994a",
        "b6636b8ef90221eaf7f4779eb2c2256f560d3e64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:43:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 24 10:43:17 2012 -0700"
      },
      "message": "am b6636b8e: Add a reminder that we need to track a change in master.\n\n* commit \u0027b6636b8ef90221eaf7f4779eb2c2256f560d3e64\u0027:\n  Add a reminder that we need to track a change in master.\n"
    },
    {
      "commit": "b6636b8ef90221eaf7f4779eb2c2256f560d3e64",
      "tree": "fb028eb0cdaac32dc51dad167ecc7c8ea38c60bd",
      "parents": [
        "5b17d08be8f9508ead25891c4d3e707f9dddfbc5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:41:16 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:41:16 2012 -0700"
      },
      "message": "Add a reminder that we need to track a change in master.\n\nChange-Id: I99a98063871d99803ea95b121ddb286b5d05f048\n"
    },
    {
      "commit": "930542462d03d62c241481130794f3768cbcf511",
      "tree": "96a25856a2f35bfc33528514bd7c5dd48565de58",
      "parents": [
        "0f4b3f6d809c60dc8f66056c685787433f7fe737",
        "620cf223c9c37258f1888fef9bd8bfbf624480f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 23:12:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 20 23:12:28 2012 -0700"
      },
      "message": "am 620cf223: Merge \"Tidy up some C-isms.\" into ics-mr1-plus-art\n\n* commit \u0027620cf223c9c37258f1888fef9bd8bfbf624480f7\u0027:\n  Tidy up some C-isms.\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "034b7172fe8cb29adad6b7fc177696df0ad4ba18",
      "tree": "aadbec2c022c587b6369aebcb25ae3bba2e47070",
      "parents": [
        "469911a591d677d1e06b0174c8589343c4fcedee",
        "fbe5b757cff040a455f93388d6eebdee0653a089"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:58:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 19 00:58:33 2012 -0700"
      },
      "message": "am fbe5b757: Fix LLVM build. Otherwise, function not used warning.\n\n* commit \u0027fbe5b757cff040a455f93388d6eebdee0653a089\u0027:\n  Fix LLVM build. Otherwise, function not used warning.\n"
    },
    {
      "commit": "fbe5b757cff040a455f93388d6eebdee0653a089",
      "tree": "1cc69bee1f70aa8adae7fb32add6c46f8a3a0ddb",
      "parents": [
        "da83d972b1aa90ada23b592bcea00603d1ee78b7"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:26:00 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Apr 19 00:33:43 2012 -0700"
      },
      "message": "Fix LLVM build. Otherwise, function not used warning.\n\nNote that we use -Werror.\n\nChange-Id: I14c2d1d040d392cf5b2866298dc9c62a216f329b\n"
    },
    {
      "commit": "d455de8f30b4b5b47fb4721392c73a43857a6488",
      "tree": "deab5dac69e42c5bfdcd42f864fbd0284d369dcb",
      "parents": [
        "9e69127384552476ad2fdc5d7e3caa21adea80c4",
        "264675757a1d1ba43f53634d1301b7d6b79fe02c"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Apr 18 21:59:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 18 21:59:17 2012 -0700"
      },
      "message": "am 26467575: Don\\\u0027t use work_around_app_jni_bugs for llvm now.\n\n* commit \u0027264675757a1d1ba43f53634d1301b7d6b79fe02c\u0027:\n  Don\u0027t use work_around_app_jni_bugs for llvm now.\n"
    },
    {
      "commit": "264675757a1d1ba43f53634d1301b7d6b79fe02c",
      "tree": "de8ebe45f28c4c287d3be5e8cca7fee2fe5c587a",
      "parents": [
        "69eafaae2c910ea6f704a3867f9b78647174a0df"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Apr 17 20:51:22 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 18 18:44:23 2012 -0700"
      },
      "message": "Don\u0027t use work_around_app_jni_bugs for llvm now.\n\nChange-Id: Id698e60c09dc863311445498d8813e38a48b8cc4\n"
    },
    {
      "commit": "e132f438aed99ea9e10b1779b27cd6869b6f5701",
      "tree": "191bbb97c6095e13fa0aeed6f08f8bc233743a69",
      "parents": [
        "b4c10132c03ab88fdff107b96f2b2a8e573038ef",
        "0dae08ead9112adb81ad507b81187f00f77bc168"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 14:45:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 14 14:45:12 2012 -0700"
      },
      "message": "am 0dae08ea: Move JNI methods out of top-level.\n\n* commit \u00270dae08ead9112adb81ad507b81187f00f77bc168\u0027:\n  Move JNI methods out of top-level.\n"
    },
    {
      "commit": "0dae08ead9112adb81ad507b81187f00f77bc168",
      "tree": "5c09e5ab16fa544360e6354796f999cfeaf991e7",
      "parents": [
        "776ac1fa61237db645adb4370a4aab888530caf4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:55:11 2012 -0700"
      },
      "message": "Move JNI methods out of top-level.\n\nChange-Id: Ia9c883ba9a13b205cda7b72024e2939f02583acb\n"
    }
  ]
}
