)]}'
{
  "log": [
    {
      "commit": "69dbec6d9d55eeb2867949c2791d01dc9aa916c8",
      "tree": "be4eca8161eafb4a8466f5adf28a2c8f27cd37d1",
      "parents": [
        "926d8e99aa69151a271180299df68963688010d8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Sep 15 18:03:41 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 17 14:31:55 2014 -0700"
      },
      "message": "Avoid suspending for alloc trace enabling when already suspended.\n\nBug: 17499772\n\n(cherry picked from commit 1d6ee090fddd4bfd35c304d6ceb929d5c529dfcc)\n\nChange-Id: Id09809c476c685f0a197ee75bb08638931364efd\n"
    },
    {
      "commit": "2dbe627954fd78a3659ab3cd42d2ead5b4529441",
      "tree": "c91bf8184bf30260a00364733e38336037d64762",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 10:43:23 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 16 16:03:41 2014 -0700"
      },
      "message": "Add runtime options for large object space\n\nAdds the two following options:\nOption -XX:LargeObjectSpace\u003d{freelist, map, disabled}\nOption -XX:LargeObjectThreshold\u003dsize specifies the size for which\nprimitive arrays are allocated in the large object space.\n\nAdded handling for large object space \u003d\u003d null in collectors.\n\nFixed an error in the mem map space where we didn\u0027t use the page\naligned size LOS for bytes allocated, this resutled in heaps appearing\na bit smaller than they should be.\n\nChange-Id: I6f17c3534b59e7dc68cd375153e7a846799b3da4\n"
    },
    {
      "commit": "a5a53efea976af505f4f849b5925d5e14c4f8e5c",
      "tree": "455a536a9394908c17ec1ede04ab7ec49f9d3420",
      "parents": [
        "91bbd5347b391278b56440b2dbb0b77526bae4e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 12:58:05 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Sep 14 14:48:24 2014 -0700"
      },
      "message": "Add native support for FinalizerList.makeCircularListIfUnenqueued\n\nCalled from FinalizerReference.enqueueSentinelReference to prevent\na race where the GC updates pendingNext of the sentinel reference\nbefore enqueueSentinelReference.\n\nBug: 17462553\n\n(cherry picked from commit 3256166df40981f1f1997a5f00303712277c963f)\n\nChange-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2\n"
    },
    {
      "commit": "7c438b19b71932ac8a44eff44f20744a01559c8d",
      "tree": "f724004a682cb7c2faa0d12579756c3a81b98252",
      "parents": [
        "ebab3bbcaa09b644acd50ec18d79cb0d239bf347"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 17:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 12 18:27:38 2014 -0700"
      },
      "message": "Fix stale root error in verifier\n\nThere was a stale root error caused by the static roots from\nthe reg types. These were visitied if there was an active verifier\nin the method_verifiers_ but this is not always the case when a GC\nis run. The fix is to always visit the static method verifier roots.\n\nThis only showed up as a bug without an image since these roots\nwere primitive classes and always in the image, and therefore\ndidn\u0027t ever need to be updated due to moving GC.\n\n(cherry picked from commit 6167864e28e4e12658ebdbaf1d5239acdaf4aaa4)\n\nChange-Id: I592f2770570de97b431671cfbd409f63697892f1\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "b9620f305c79914f5159cf9279a7ccd173af1186",
      "tree": "edfb15d759f16808d575cb849302fc2fd22d6709",
      "parents": [
        "575a5649715ee50e0de8a107e8a5379d4c465382",
        "928f72bd75c385ba2708c58521171a77264d4486"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 23:43:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 10 23:43:32 2014 +0000"
      },
      "message": "Merge \"ART: Fix things for valgrind\""
    },
    {
      "commit": "928f72bd75c385ba2708c58521171a77264d4486",
      "tree": "86f7fa7a21e3f6d21c9cab2d4fffe4aaa42dc458",
      "parents": [
        "dab9ed52f2df7189b81ccf3237b030ff638a492a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 09 19:53:48 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 15:50:42 2014 -0700"
      },
      "message": "ART: Fix things for valgrind\n\nWire up valgrind gtests. Add valgrind-test-art-host, currently\nonly depending on valgrind-test-art-host-gtest32.\n\nFix an Alloc setting to allow running valgrind.\n\nRefactor the fault handler to manage (and correctly release) the\nhandlers.\n\nFix minor failure-case leaks exposed by tests.\n\nFailing tests:\n\nThe optimizing compiler is leaking non-arena-ed structures\n(e.g., assembler buffers), as code generators are not destroyed.\nThe solution has been moved to a follow-up CL.\n\nNote: All 64b tests are failing as we cannot allocate a heap.\n\nChange-Id: I7f854cfd098d9f68107ce492363e7dba9a82b9fa\n"
    },
    {
      "commit": "44ff47008394f4451ab37dec2852e52b794e6e4a",
      "tree": "563917c17dcf4602f90e20dd3c4e98101a068234",
      "parents": [
        "55454c52abdb496bb6fc070f0fd1c618f7a926aa",
        "8a74117cac720239a69e60e734c7044b433fad47"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 10 17:02:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 10 17:02:31 2014 +0000"
      },
      "message": "Merge \"Address read barrier issue with cl/106467\""
    },
    {
      "commit": "aa4497db59f1eeec954f2ba5da6d458fcdf9b3a4",
      "tree": "1efe5c6c5fe93ae73b6ad02db1a4ac368c71c00e",
      "parents": [
        "6724a9531c92368491dd17937d0087f73a7c0642"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 05 14:01:17 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 10 16:02:14 2014 +0100"
      },
      "message": "Improve dex location canonicalization-related performance.\n\nEagerly add canonical dex file locations to the OatFile\u0027s\nprimary lookup map in Setup(). This moves the boot.oat work\nfrom every app startup to the zygote initialization. Since\nwe always ended up initializing the canonical location map\nanyway due to the way that we\u0027re loading dex files, the lazy\ninitialization didn\u0027t save anything.\n\nClean up dex file name canonicalization to make sure we\nfree() the memory returned by realpath() rather than using\nstd::unique_ptr\u003c\u003e with the default deleter.\n\nAvoid some unnecessary duplicate OatDexFile lookups.\n\nBug: 16828525\nBug: 17346103\nChange-Id: Id8fbc8992f62996138eb2006a0046c6529747c09\n"
    },
    {
      "commit": "8a74117cac720239a69e60e734c7044b433fad47",
      "tree": "88663982b24ac419886c432b22aebb1387c0039a",
      "parents": [
        "9b2b927f573264c2f0d66b24ceeb361857a41ab3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Sep 08 13:22:56 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 09 14:19:23 2014 -0700"
      },
      "message": "Address read barrier issue with cl/106467\n\nAnd tidy/add a check.\n\nBug: 12687968\nChange-Id: If63dc0d9d0a0ce5f2eeb81734ff8f4307865f67d\n"
    },
    {
      "commit": "0e59bf8b767e9be7ea22c67011ea902d597fe43f",
      "tree": "bf6fbf9900ecf85d331023341af7908642825b23",
      "parents": [
        "552da6697f77b1d94a69b0ba54509a25a0de3ae7",
        "6be67eeedbe60afce42300ae3e7f0e7180a96efa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 21:47:08 2014 +0000"
      },
      "message": "Merge \"ART: Change ART for new native bridge sequence\""
    },
    {
      "commit": "6be67eeedbe60afce42300ae3e7f0e7180a96efa",
      "tree": "404ed85d5c31744e66405d0147d9f14a67887428",
      "parents": [
        "47e877ab2d6744f4360d37f179eb5affd6a46470"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 02 21:22:18 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 04 12:46:09 2014 -0700"
      },
      "message": "ART: Change ART for new native bridge sequence\n\nInitialize or unload after a fork.\n\nChange-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67\n"
    },
    {
      "commit": "a07557ccece64fa7084bb01b9d26957bd0977c10",
      "tree": "c2864dffb3324039745112b602cae2eff699a5a4",
      "parents": [
        "2a09504334a3a3b4c47100197df0827cc6740433",
        "c0542af3e2170143ba40d89136e284997e16bf64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 04 00:20:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 00:20:48 2014 +0000"
      },
      "message": "Merge \"Remove abuse of mirror::Object* to reference special values.\""
    },
    {
      "commit": "c0542af3e2170143ba40d89136e284997e16bf64",
      "tree": "a61e3b9cd297a4c52a0c0488a502cb77c47f0690",
      "parents": [
        "d3c9358544bbab15093614c5c2b6a9de86e11f7b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 16:16:56 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 17:15:54 2014 -0700"
      },
      "message": "Remove abuse of mirror::Object* to reference special values.\n\nRemove kInvalidIndirectRefObject, kClearedJniWeakGlobal and\nObjectRegistry::kInvalidObject. Handle error conditions by passing in or\nreturning an error value.\nGetObjectRefType is simplified to be faster and not return invalid references\nthat are not expected according to the spec. Adjust check JNI and\njni_internal_test appropriately.\nFix cases in the debugger/JDWP of out arguments being passed by reference.\nBug: 17376993\n\nChange-Id: I3ce8a28c01827e163f4dc288449959464da788b1\n"
    },
    {
      "commit": "62bcfec936692ff4f75cdc3267c081080b0e6acc",
      "tree": "b9a457ead8ee317c62c842a2a98b9d6294d7d577",
      "parents": [
        "d3c9358544bbab15093614c5c2b6a9de86e11f7b",
        "cdfd39f579574a75b98e7ad48c69826b00361b27"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 02 23:42:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 02 23:42:02 2014 +0000"
      },
      "message": "Merge \"Change intern table to unordered set.\""
    },
    {
      "commit": "63557459a4098294a9ff44d035241de2966047c0",
      "tree": "0c0b200ee1da9d269e77c2c6d2cacc7efa43f6e2",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 04 16:57:15 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 02 15:41:21 2014 -0700"
      },
      "message": "Pre-allocate the NoClassDefFoundError to be thrown for boot classes.\n\nBring over a Dalvik \"optimization\".\nBug: 12804658\nBug: 16853450\nChange-Id: I6419de7bd2ba18d91479cb52489104954f5c4524\n"
    },
    {
      "commit": "cdfd39f579574a75b98e7ad48c69826b00361b27",
      "tree": "0f057472d19bf290766e20ea3ad63d0b28ee83a1",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:16:58 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 02 14:39:49 2014 -0700"
      },
      "message": "Change intern table to unordered set.\n\nIntern table active used bytes goes from 430k to 317k on system\nserver. Similar %wise savings on other apps.\n\nBug: 16238192\n\n(cherry picked from commit d910fcef539e12ab181e56ec80684f39c4e95733)\n\nChange-Id: Ic70395124435c6f420a77e6d8639404a160f395a\n"
    },
    {
      "commit": "bad0267eaab9d6a522d05469ff90501deefdb88b",
      "tree": "1ce689b75184cb322b9edde34d7af938c658a6ae",
      "parents": [
        "0772a9d99c8774463c9076824340eaa4eb66f47f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 25 13:08:22 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 29 18:57:35 2014 -0700"
      },
      "message": "Add native memory accounting through custom allocator.\n\nAdded a custom allocator that lets you pass in a special tag which\nspecifices where the allocation came from. This is used when\ndumping. The performance overhead is low since each allocation only\ndoes a atomic add/sub for each allocation/free.\n\nThe measurements are dumped to traces.txt during SIGQUIT.\n\nExample output:\nI/art     (27274): AllocatorTagHeap active\u003d120 max\u003d120 total\u003d168\nI/art     (27274): AllocatorTagMonitorList active\u003d1572 max\u003d6240 total\u003d11724\nI/art     (27274): AllocatorTagClassTable active\u003d185208 max\u003d185208 total\u003d268608\nI/art     (27274): AllocatorTagInternTable active\u003d430368 max\u003d430368 total\u003d436080\nI/art     (27274): AllocatorTagMaps active\u003d5616 max\u003d6168 total\u003d34392\nI/art     (27274): AllocatorTagLOS active\u003d1024 max\u003d1536 total\u003d2044\nI/art     (27274): AllocatorTagSafeMap active\u003d0 max\u003d51936 total\u003d533688\nI/art     (27274): AllocatorTagLOSMaps active\u003d144 max\u003d1248 total\u003d5760\nI/art     (27274): AllocatorTagReferenceTable active\u003d10944 max\u003d11840 total\u003d19136\nI/art     (27274): AllocatorTagHeapBitmap active\u003d32 max\u003d40 total\u003d56\nI/art     (27274): AllocatorTagHeapBitmapLOS active\u003d8 max\u003d8 total\u003d8\nI/art     (27274): AllocatorTagVerifier active\u003d0 max\u003d18844 total\u003d1073156\nI/art     (27274): AllocatorTagModUnionCardSet active\u003d5300 max\u003d5920 total\u003d56020\nI/art     (27274): AllocatorTagModUnionReferenceArray active\u003d24864 max\u003d24864 total\u003d24864\nI/art     (27274): AllocatorTagJNILibrarires active\u003d320 max\u003d320 total\u003d320\nI/art     (27274): AllocatorTagOatFile active\u003d1400 max\u003d1400 total\u003d5852\n\nChange-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82\n\n(cherry picked from commit 5369c40f75fdcb1be7a7c06db212ce965c83a164)\n"
    },
    {
      "commit": "84d7605f93f1e6e86a16e02017e305c90e93117a",
      "tree": "4602fe9beb2c0e59ff89a828473c1c2acf07930b",
      "parents": [
        "a9ffc181c61f5634753bf1039ed50bf22c800fde"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 22 17:49:35 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 26 16:39:14 2014 -0700"
      },
      "message": "Support booting without functioning boot.oat/art patchoat.\n\nBug: 17000769\n\nChange-Id: I89c26a905af12ea288742368c2c038afd57a879a\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    },
    {
      "commit": "e25826e28ea65d9c1aa23f84788a091c677b20c7",
      "tree": "0d89c7f23c5095907756a53ef8ebdaf92db0a48d",
      "parents": [
        "21259fedf4fd0f786c71f69493ebfbb9affe3a8d",
        "64ad14dbe2225441fb7734bf6d89358d96692eea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "message": "Merge \"Support running without a boot image.\""
    },
    {
      "commit": "64ad14dbe2225441fb7734bf6d89358d96692eea",
      "tree": "8992ebe906a4a0040502132aa9c77628a0a5ced6",
      "parents": [
        "688d4a42ff5ab3bcb28d516afcb80b79c392e8e4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 19 14:23:13 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 25 10:36:26 2014 -0700"
      },
      "message": "Support running without a boot image.\n\nBug: 17000769\n\nChange-Id: I6404d5050c8a2f4ee6e70d58532eb25ee9de248e\n"
    },
    {
      "commit": "6a7824dc81aaab3cb09ced16affca72d1b1da649",
      "tree": "ef5eb2f5f882fb1e1c8f3abb00d2837521e62b59",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 22 14:53:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 22 18:01:39 2014 -0700"
      },
      "message": "Add fallback for non moving space being full.\n\nWhen the non moving space becomes full, we disable moving GC and\nmake the main space the new non moving space.\n\nAlso added a runtime option for changing the non moving space size:\n-XX:NonMovingSpaceCapacity.\n\nBug: 17189964\n\n(cherry picked from commit 4c5a469683e433f126c9863cd393747d2e7c4a29)\n\nChange-Id: If82e3c6f8a0f389e37e14a0b1e6d5126d571fd7a\n"
    },
    {
      "commit": "a68629ed992e2eef7b139b09e46ebe8fd3fb5ef2",
      "tree": "a956520cee8d9057ef887f85e185e323e07325ce",
      "parents": [
        "a37ad7a6caad2e0a83c72c1103015202cbcaf1a4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 22 12:53:59 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 22 18:04:44 2014 +0100"
      },
      "message": "Always setup the native bridge library\n\n... even if the string is empty. This will initialize the native bridge\nlibrary but mark it as unavailable.\n\n- also, rename native_bridge_library_path to\nnative_bridge_library_filename to be closer to the actual meaning (it\u0027s\njust the filename without any path).\n\nBug: 16404669\n\n(cherry picked from commit I94628639691459d48d1fbf0841f36b68d51818e7)\n\nChange-Id: I94628639691459d48d1fbf0841f36b68d51818e7\n"
    },
    {
      "commit": "1f8ef6fa2fb5d79799371f8bf745824b78bc48f2",
      "tree": "0ecf06cfc561501ad65ad774848ce2f30808c123",
      "parents": [
        "00b3024b350afef115bddea712705bdb4877ac11"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 20 17:38:41 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 21 12:04:02 2014 -0700"
      },
      "message": "Fix fault handler to unregister on shutdown\n\nThis fixes a problem with the fault handler where it wasn\u0027t\nunregistering itself during shutdown of the runtime.\n\nBug: 17133266\n\n(cherry picked from commit e8b9afcd0cd86b8808af29a97332038aab70c604)\n\nChange-Id: I1a4ec4292ec049046dda30769265680201729efb\n"
    },
    {
      "commit": "3ea69c0abce1b81b3c45033867d49b00e6d6b709",
      "tree": "0bad76473a1c146a9ddc2d9fcaec32c945365d4d",
      "parents": [
        "506a79fd8a698911b5a82575eed59b9320ae97cd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 15:38:34 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 18 15:39:27 2014 -0700"
      },
      "message": "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.\n\nBug: 17108693\nChange-Id: I346cc090e091605c552e5954d7ea1ca4874cea5f\n"
    },
    {
      "commit": "37f048b19da5ac245a6b2a8473b326d2167cc692",
      "tree": "bf3faf13e33e22c2029b63784c1fefd13cc7484e",
      "parents": [
        "d684cbfbe8abfb9aea4de27687041243217295c7",
        "c8423521c1d1136c70b153479b7df3bf4fd7fc2a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 15 11:35:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 15 04:45:58 2014 +0000"
      },
      "message": "Merge \"[ART] Move to system/core native bridge library\""
    },
    {
      "commit": "c8423521c1d1136c70b153479b7df3bf4fd7fc2a",
      "tree": "f7a0d12391f843d1b1eac1b0227c3237e7da3920",
      "parents": [
        "02a6317297b8745637b265ab75abbfa685879882"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 12 20:55:20 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Aug 15 10:10:09 2014 +0100"
      },
      "message": "[ART] Move to system/core native bridge library\n\nSome cleanups on the way:\n- move NativeBridgeRuntimeCallbacks from a global to a field\n- rename native_bridge_library_string to the more suggestive\nnavtive_bridge_library_path\n- clean up imports\n\nBug: 16884833\nChange-Id: I73aab8e212860ba5aee9444d801806d3da326a41\n"
    },
    {
      "commit": "4fcdc94d22a4608e355aa8df36240181149d10e8",
      "tree": "cb600df7e9b585720c03a08b10509151aa96d5dd",
      "parents": [
        "b66252112d45fd24eab85122fa8902afd1324542"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 10:48:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 18:01:51 2014 +0100"
      },
      "message": "Execute an application even when dex2oat crashes.\n\nBug: 17000769\n\nChange-Id: Iffeb582862a5e794b6c7364c7ec2368cfd0f2214\n"
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "dfd3b47813c14c5f1607cbe7b10a28b1b2f29cbc",
      "tree": "b71dbae2ef905c08eb4cf615c8b44868cc314531",
      "parents": [
        "8b62dc0f993d0445401655fc274e5225498fa81c"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 16:04:32 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Aug 07 09:26:35 2014 -0700"
      },
      "message": "Add implicit checks for x86_64 architecture.\n\nThis combines the x86 and x86_64 fault handlers into one.  It also\nmerges in the change to the entrypoints for X86_64.\n\nReplaces generic instruction length calculator with one that only\nworks with the specific instructions we use.\n\nBug: 16256184\n\nChange-Id: I1e8ab5ad43f46060de9597615b423c89a836035c\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "d5c78f44dc53ef9fda47a95ad3e9799be850c2b2",
      "tree": "bc86b741193ad3487d9e0166cc324d99a200c738",
      "parents": [
        "a947ebc45d2785522b3c9d3295be68fd35d548be"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Jun 11 16:44:46 2014 +0100"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Aug 06 12:42:45 2014 -0700"
      },
      "message": "AArch64: Implicit StackOverflow/NPE/Suspend checks.\n\nThis implements implicit stack overflow checks and null pointer exceptions\nfor AArch64.  Suspend checks are implemented but not switched on yet.\n\nChange-Id: I2eb076f2c0c9d94793d5a898fea49cf409b4eb66\nSigned-off-by: Stuart Monteith \u003cstuart.monteith@arm.com\u003e\n"
    },
    {
      "commit": "58e17cea2da3e541610e9bcdf8ef3efd983e1390",
      "tree": "96d15d853ff4c73b00aa0d485ca96806d4e59ff6",
      "parents": [
        "f2e920734dddbc0eee35c3ba27b88b732df4f82c",
        "c5d824a20c225763761a6dff43294b229ff35469"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jul 29 22:06:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 28 22:45:44 2014 +0000"
      },
      "message": "Merge \"Stop thread from reattaching during runtime shutdown while tracing.\""
    },
    {
      "commit": "c5d824a20c225763761a6dff43294b229ff35469",
      "tree": "d3fcf29c2e7359bdb135931c0f4558644e1ca9fb",
      "parents": [
        "8df73882c60451e7f789bf9b1f3db2d7dc228640"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 28 18:35:38 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jul 29 13:34:57 2014 -0700"
      },
      "message": "Stop thread from reattaching during runtime shutdown while tracing.\n\nBug: 16024763\nChange-Id: Iad5ba180241ff74b15baf5c3a15ed2d2ed60fcf0\n"
    },
    {
      "commit": "94f7b49578b6aaa80de8ffed230648d601393905",
      "tree": "cfc69e453faefee38178ceb85378e1f0f1e17812",
      "parents": [
        "8df73882c60451e7f789bf9b1f3db2d7dc228640"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 22 18:08:23 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 29 13:30:46 2014 -0700"
      },
      "message": "Add GcRoot to clean up and enforce read barriers.\n\nIntroduce a value-type wrapper around Object* for GC roots so that 1)\nwe won\u0027t have to directly add the read barrier code in many places and\n2) we can avoid accidentally bypassing/missing read barriers on GC\nroots (the GcRoot interface ensures that the read barrier is executed\non a read).\n\nThe jdwp test passed.\n\nBug: 12687968\nChange-Id: Ib167c7c325b3c7e3900133578815f04d219972a1\n"
    },
    {
      "commit": "855564b83db7b106d2995d0e784f1f4b62e52371",
      "tree": "de3caa3f36b24acb9279a8cb85d4879baeed1798",
      "parents": [
        "3bcac48f23094fa0f46315a080ec47fc368fd4c2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 02:32:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jul 26 18:35:08 2014 -0700"
      },
      "message": "ART: Native bridge command-line parameter\n\nAdd a command-line parameter for the native bridge library, slight\nrefactor/cleanup.\n\nAdd run-test 115 to test the native bridge interface. Currently the\ntests are black-listed for the target, as the setup for the test\nis too complicated in the current infrastructure.\n\nChange-Id: I6ccf19485e8c30b96e9f2fd5425278cb1ebd403f\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "535a3fbc08e1577f43aec7402cab80c14ca64c41",
      "tree": "b1bfd1425064f3ddd243cc87352eb8596f2aa037",
      "parents": [
        "ebb6b5c90857f390db5a4f840bbe67b3a59a22d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 15:17:38 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 15:19:29 2014 +0100"
      },
      "message": "Interpreter can kick in even when implicit checks are enabled.\n\nAdd a GetStackEndForInterpreter for its stack overfow check.\n\nChange-Id: I2d4fc229a8eb727fda509ff778e16d60d96ecc28\n"
    },
    {
      "commit": "69dfe51b684dd9d510dbcb63295fe180f998efde",
      "tree": "daa2522650ca03417e4518dc8aef989ec53a6065",
      "parents": [
        "479f131d4bd3829dd512312020808b05f5a591f1"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jul 11 17:11:58 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 16 14:58:27 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add implicit null and stack checks for x86\"\"\"\"\n\nThis reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.\n\nBug: 16256184\nChange-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73\n"
    },
    {
      "commit": "ebaca192314e21d26b97646fa962e468ff07b893",
      "tree": "94fe46c84f790e195292461784656d54db946b1c",
      "parents": [
        "0e359ef64546e472ed7e2292c8a48354f9907a37",
        "4ee7a665e7f9cd2c5ace2d6304e33f64067b209f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 16 00:59:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 15 00:23:02 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"Add intrinsic for Reference.get()\"\"\"\"\""
    },
    {
      "commit": "4ee7a665e7f9cd2c5ace2d6304e33f64067b209f",
      "tree": "e8e6867c71fde6e37ec5597e8677ab807084f734",
      "parents": [
        "76e6773dfed9e9bf382bbb8d6c8654525fa44b0c"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Fri Jul 11 09:59:27 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Tue Jul 15 15:45:21 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add intrinsic for Reference.get()\"\"\"\"\n\nFixed TargetReg issue causing build failure for x86.\nThis reverts commit 9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.\n\nChange-Id: I7e6a526954467aaf68deeed999880dfe9aa5f06e\n"
    },
    {
      "commit": "e63db27db913f1a88e2095a1ee8239b2bb9124e8",
      "tree": "893dee6783bca6717259321a6e4ba029c9c123e2",
      "parents": [
        "07b8441303ea82fca3cb85d71ecf8752d73cedd7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 15:36:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 17:07:49 2014 -0700"
      },
      "message": "Break apart header files.\n\nCreate libart-gtest for common runtime and compiler gtest routines.\nRename CompilerCallbacksImpl that is quick compiler specific.\nRename trace clock source constants to not use the overloaded profiler term.\n\nChange-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933\n"
    },
    {
      "commit": "ab088118d33caafb00815ab72ac0fd7374169f64",
      "tree": "9ca1473bb6d4e896f8b8d5c19341dcba1ad37cd5",
      "parents": [
        "e8b8086388159be5fecb23ae6185e70f3dfb5da6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 14 13:00:14 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 14 13:00:14 2014 -0700"
      },
      "message": "Add read barriers for the roots in Runtime.\n\nBug: 12687968\nChange-Id: If26518a8251702cfe4d5cd7d1f50e80e342704cf\n"
    },
    {
      "commit": "f37a88b8e6db6c587fa449a12e40cb46be1689fc",
      "tree": "2e1d8b20e87796e1ad5d682dcce2a52a37f20123",
      "parents": [
        "9531f62ef260cbd0d0512e4c96f5d5dd2f4fdbb2"
      ],
      "author": {
        "name": "Zuo Wang",
        "email": "zuo.wang@intel.com",
        "time": "Thu Jul 10 04:26:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 11 18:32:07 2014 -0700"
      },
      "message": "ART: Compacting ROS/DlMalloc spaces with semispace copy GC\n\nCurrent semispace copy GC is mainly associated with bump pointer\nspaces. Though it squeezes fragmentation most aggressively, an extra\ncopy is required to re-establish the data in the ROS/DlMalloc space to allow\nCMS GCs to happen afterwards. As semispace copy GC is still stop-the-world,\nthis not only introduces unnecessary overheads but also longer response time.\nResponse time indicates the time duration between the start of transition\nrequest and the start of transition animation, which may impact the user\nexperience.\n\nUsing semispace copy GC to compact the data in a ROS space to another ROS(or\nDlMalloc space to another DlMalloc) space solves this problem. Although it\nsqueezes less fragmentation, CMS GCs can run immediately after the compaction.\n\nWe apply this algorithm in two cases:\n1) Right before throwing an OOM if -XX:EnableHSpaceCompactForOOM is passed in\nas true.\n2) When app is switched to background if the -XX:BackgroundGC option has value\nHSpaceCompact.\n\nFor case 1), OOMs are significantly delayed in the harmony GC stress test,\nwith compaction ratio up to 0.87. For case 2), compaction ratio around 0.5 is\nobserved in both built-in SMS and browser. Similar results have been obtained\non other apps as well.\n\nChange-Id: Iad9eabc6d046659fda3535ae20f21bc31f89ded3\nSigned-off-by: Wang, Zuo \u003czuo.wang@intel.com\u003e\nSigned-off-by: Chang, Yang \u003cyang.chang@intel.com\u003e\nSigned-off-by: Lei Li \u003clei.l.li@intel.com\u003e\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\n"
    },
    {
      "commit": "98d1cc8033251c93786e2fa8c59a2e555a9493be",
      "tree": "f0a76b8fff060ee484af09028da65a8339d57057",
      "parents": [
        "aebf3cda094f34cf846d19a7724bdc8005267c95"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 15 17:02:16 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 11 17:17:10 2014 -0700"
      },
      "message": "Improve performance of invokevirtual/invokeinterface with embedded imt/vtable\n\nAdd an embedded version of imt/vtable into class object. Both tables start at\nfixed offset within class object so method/entry point can be loaded directly\nfrom class object for invokeinterface/invokevirtual.\n\nBug: 8142917\nChange-Id: I4240d58cfbe9250107c95c0708c036854c455968\n"
    },
    {
      "commit": "9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f",
      "tree": "b2d65f4668793fab5652dfe41dcf13c913fee3a8",
      "parents": [
        "d4415e8bd04c4a9367744ff0149597b4f37a0e0a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 11 10:09:13 2014 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 11 10:09:13 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add intrinsic for Reference.get()\"\"\"\n\nThis reverts commit d4415e8bd04c4a9367744ff0149597b4f37a0e0a.\n\nChange-Id: I34553ccbdcfea35c7742d21be2a74dc7085ab2a0\n"
    },
    {
      "commit": "d4415e8bd04c4a9367744ff0149597b4f37a0e0a",
      "tree": "97c42c08fd04034cf6cecadb39644bf9531be0f1",
      "parents": [
        "a9b870b73a155ce70c867d5b3f9758fab0b45f07"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 06:44:39 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 06:44:39 2014 +0000"
      },
      "message": "Revert \"Revert \"Add intrinsic for Reference.get()\"\"\n\nThis reverts commit a9b870b73a155ce70c867d5b3f9758fab0b45f07.\n\nChange-Id: Ic2a9b47f2b911bef4b764d10bc33cf000e4b4211\n"
    },
    {
      "commit": "a9b870b73a155ce70c867d5b3f9758fab0b45f07",
      "tree": "b2d65f4668793fab5652dfe41dcf13c913fee3a8",
      "parents": [
        "460503b13bc894828a2d2d47d09e5534b3e91aa1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 04:18:58 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 04:18:58 2014 +0000"
      },
      "message": "Revert \"Add intrinsic for Reference.get()\"\n\nThis reverts commit 460503b13bc894828a2d2d47d09e5534b3e91aa1.\n\nChange-Id: Ie63f43049307e02e3b90f4e034abc9ea54ca4e24\n"
    },
    {
      "commit": "460503b13bc894828a2d2d47d09e5534b3e91aa1",
      "tree": "97c42c08fd04034cf6cecadb39644bf9531be0f1",
      "parents": [
        "adce33da293b0eeaaf52673338770f22be71ca5d"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jun 18 11:26:11 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Thu Jul 10 10:41:34 2014 -0700"
      },
      "message": "Add intrinsic for Reference.get()\n\nAdded an intrinsic function for Reference.get(). Return immediately\nwithout going through JNI if the slow path is not currently in use.\nOtherwise, branch off to the the existing JNI function.\n\nApproximately 47x speedup for cases where slow path is not enabled.\n\nChange-Id: I13ad65a356fe4e104d8d83980694dc2740d7d039\n"
    },
    {
      "commit": "3d14eb620716e92c21c4d2c2d11a95be53319791",
      "tree": "aadce4d6bb70e549b74b537c6f75617cf533576a",
      "parents": [
        "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Jul 10 01:54:57 2014 +0000"
      },
      "message": "Revert \"Add implicit null and stack checks for x86\"\n\nIt breaks cross compilation with x86_64.\n\nThis reverts commit 34e826ccc80dc1cf7c4c045de6b7f8360d504ccf.\n\nChange-Id: I34ba07821fc0a022fda33a7ae21850957bbec5e7\n"
    },
    {
      "commit": "34e826ccc80dc1cf7c4c045de6b7f8360d504ccf",
      "tree": "76901cff2cddd6d30cb7a4e83ad4e0c9bb673fe1",
      "parents": [
        "c21dc06adc8c8447561208a3fb72ccf6d0443613"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:20:04 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed Jul 09 16:19:59 2014 -0700"
      },
      "message": "Add implicit null and stack checks for x86\n\nThis adds compiler and runtime changes for x86\nimplicit checks.  32 bit only.\n\nBoth host and target are supported.\nBy default, on the host, the implicit checks are null pointer and\nstack overflow.  Suspend is implemented but not switched on.\n\nChange-Id: I88a609e98d6bf32f283eaa4e6ec8bbf8dc1df78a\n"
    },
    {
      "commit": "0f635b103c1fff6439d47bdae363afeffe7327fd",
      "tree": "afa160b8c3b850e5189a1bfa06065faee54eccaf",
      "parents": [
        "32710dd4a0232149002a5ae7bde1c640cdffd564",
        "bae182cbc6adc8796154162a87fc54ae804e0469"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 09 18:52:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 09 14:50:30 2014 +0000"
      },
      "message": "Merge \"Fix method tracing from command-line\""
    },
    {
      "commit": "bae182cbc6adc8796154162a87fc54ae804e0469",
      "tree": "d5c1fdb048edab194e948e4e90bff66703c5f55e",
      "parents": [
        "0c1734665c38b3116e38a90ad06c3f152d9316c5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Dec 17 10:42:03 2013 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jul 09 16:10:45 2014 +0200"
      },
      "message": "Fix method tracing from command-line\n\nTransitions current thread to the new kWaitingForMethodTracingStart thread\nstate when starting method tracing.\n\nEnsures there is a current thread when method tracing is stopped due to runtime\nshutdown. If the current thread has been detached, we now re-attach it.\nNote: we only do this if method tracing has been activated from command-line.\n\nFixes instrumentation when forcing interpreter mode (-Xint) with method tracing\nenabled.\n\nRemoves unused parameter from UnsafeLogFatalForThreadSuspendAllTimeout.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d72094\nBug: 11683397\nChange-Id: I70f000fb46ddd95d6ad51ea0a8eee77697a045e9\n"
    },
    {
      "commit": "0ec17d2ddb69d3f5c46ccad62e82c0ffd6219428",
      "tree": "a90ae1adaf549f474cc9d269f6ef5fe0062128d6",
      "parents": [
        "e8a30f37bf1530a80a7df17692dbe7a68764ac30"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 07 13:07:08 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 08 11:23:34 2014 -0700"
      },
      "message": "Remove Dbg::VisitRoots().\n\nWe replace the GC strong roots with JNI.\n\njdwp_test passes.\n\nBug: 12687968\nChange-Id: I841f1aaa5dffa784ca25953a251600f70df273b2\n"
    },
    {
      "commit": "4e14e721055eeeb42b06ad231bce930f3e1c1728",
      "tree": "c96fb60ab8c3283cbce3cf721576ba2f39b5b004",
      "parents": [
        "a929ded5e715620726f962910ce515280bea4ee1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 27 17:32:56 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 27 17:32:56 2014 -0700"
      },
      "message": "Avoid segvs if LOG(FATAL) is called during runtime start-up.\n\nChange-Id: I8b054d0ff2084411ab49ebba83799eb79da879f6\n"
    },
    {
      "commit": "a93b0bb9abfbd19fc40ff8ced8818aec1a3464b9",
      "tree": "5ce3679ab53691e97a8971e29f85742a7f95666f",
      "parents": [
        "995b32cc8e94a9730d6cf663a23afc9c997c1771"
      ],
      "author": {
        "name": "Wei Jin",
        "email": "wejin@google.com",
        "time": "Mon Jun 09 16:19:15 2014 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 19 13:05:44 2014 +0100"
      },
      "message": "Add an option to enable collecting dex pc in ART profiler\n\nThis CL allows the ART profiler to collect both method signature and\ndex pc. The type of the profile data is controlled by the option\n\"-Xprofile-type:{method,dexpc}\". To avoid conflicting with the\noriginal profile data based on method signatures, the new profile\ndata are stored in files with extension \".pc\".\n\nChange-Id: I8afb2541d386bff77c5b07fc9367d817a79f58e1\n"
    },
    {
      "commit": "4eb1331f912d6c3614bd65845fa046fc8d3300d8",
      "tree": "a6c1a5316d004bf38db463ba4215486c10927fba",
      "parents": [
        "cafd0f251b32e95d0596b20c9a385433368ba3b9"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jun 13 09:09:41 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Jun 13 11:20:10 2014 -0700"
      },
      "message": "Don\u0027t use signal handlers in interpreter only mode\n\nBug: 15543631\n\nChange-Id: I8f251b5a66487dce3ac3127bdf3b5bc824d0e4bc\n"
    },
    {
      "commit": "b5a9e3d1cc1fd66683e43e365afc8c900e2800c4",
      "tree": "5b259807b4c5c67c532050939458a8390234a7a0",
      "parents": [
        "3b95d23f44485d207aa6ef298dc744fa2355578b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jun 09 12:11:20 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 11 14:46:13 2014 -0700"
      },
      "message": "Remove Object* weak roots from the debugger.\n\nThe weak roots were converted to JNI weak refs.\n\nSince the weak roots are now normal JNI weak refs, we eliminate the\nneed to insert read barriers for those weak roots in the debugger and\nthe need for the GC to have a separate step to update them as part of\nthe system weak sweeping.\n\nBug: 12687968\nChange-Id: If16396d4713457b8af4f1ea6a0c6ec6799cb615e\n"
    },
    {
      "commit": "c5f17732d8144491c642776b6b48c85dfadf4b52",
      "tree": "811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1",
      "parents": [
        "08654d40cdd256f6a6c8619bf06d04d4c819714a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 20:48:42 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 10 23:19:29 2014 -0700"
      },
      "message": "Remove deprecated WITH_HOST_DALVIK.\n\nBug: 13751317\nFix the Mac build:\n - disable x86 selector removal that causes OS/X 10.9 kernel panics,\n - madvise don\u0027t need does zero memory on the Mac, factor into MemMap\n   routine,\n - switch to the elf.h in elfutils to avoid Linux kernel dependencies,\n - we can\u0027t rely on exclusive_owner_ being available from other pthread\n   libraries so maintain our own when futexes aren\u0027t available (we\n   can\u0027t rely on the OS/X 10.8 hack any more),\n - fix symbol naming in assembly code,\n - work around C library differences,\n - disable backtrace in DumpNativeStack to avoid a broken libbacktrace\n   dependency,\n - disable main thread signal handling logic,\n - align the stack in stub_test,\n - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.\n\nNot all host tests are passing on the Mac with this change. dex2oat\nworks as does running HelloWorld.\nChange-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3\n"
    },
    {
      "commit": "576ca0cd692c0b6ae70e776de91015b8ff000a08",
      "tree": "de632fae7ee9f096e7a2c54a7fcdace8f6ae7106",
      "parents": [
        "e21bf0099117b82963cdf7f95a1b8dabfcf29397"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 15:58:22 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 06 16:27:45 2014 -0700"
      },
      "message": "Reduce header files including header files.\n\nMain focus is getting heap.h out of runtime.h.\n\nChange-Id: I8d13dce8512816db2820a27b24f5866cc871a04b\n"
    },
    {
      "commit": "20aa7cbe93d782e0e756a36e70d610fe84b4bbb4",
      "tree": "cfaaa9770d5ddbc1034b2c9770a12e6ff4d19b7b",
      "parents": [
        "eab52e3318dd0ab0f357a8420f0a8ccea69d61f1",
        "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 06 11:15:25 2014 +0000"
      },
      "message": "Merge \"Fixed and refactored profiler options handling\""
    },
    {
      "commit": "c1b643cc6ac45dbd0eabdcd7425c7e86006c27d6",
      "tree": "250455427da979409a075a2b3197bd43ccd40fe1",
      "parents": [
        "bb0b53f58f11c628f077603b56077dfed1a18f11"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 30 23:44:11 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 06 12:14:01 2014 +0100"
      },
      "message": "Fixed and refactored profiler options handling\n\n- extracted profiler options in a separate class\n- switched from system property reading to command line arguments\n- added profile based compilation options to CompilerOptions\n- removed no longer used kProfile compilation filter\n- optimize dex files only if the profiler is enabled\n- clean up unused arguments\n\nBug: 12877748\nBug: 15275634\nChange-Id: I37ff68e7694370950ce8db2360562e9058ecebb7\n"
    },
    {
      "commit": "f00571c4e1ae202b3b4acb6b47cbe23a65178f7f",
      "tree": "484d129a8265d03eff56c796e92e302e23ad5e16",
      "parents": [
        "f6b5378ba182c5c26c556ae34638afc38adef519"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 29 17:29:47 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 02 09:59:22 2014 -0700"
      },
      "message": "Added workaround passing empty arg array for proxy invocation.\n\nThis recreates old Dalvik behavior for older target sdk versions,\nbut will still pass null for newer ones.\n\nBug: 13247236\n\n(cherry picked from commit 01d5a146e20660bd06f026c16f19ec080f8fdd7b)\n\nChange-Id: I911889cf559ad8d9f37ea9be3929387c86446851\n"
    },
    {
      "commit": "f4b80bcc7190fe75023b983d56a795b440a0c515",
      "tree": "f2858dab6a756444755b79e36467d6c9e15060f1",
      "parents": [
        "c774bd435e95e537ca578486f687651fabe97008"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Wed May 14 15:41:25 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu May 29 08:22:38 2014 -0700"
      },
      "message": "Make use of sigchainlib for signal chaining for implicit checks\n\nThis adds a preload library that overrides sigaction and sigprocmask\nto implement signal chaining.  Signal chaining allows us to chain\nany signal so that the ART runtime receives it before any signal\nhandler registered in native code by an application.  If the\nART signal handler doesn\u0027t want it, it will pass it on to the\nuser\u0027s handler.\n\nART uses signals for null pointer checks, stack overflow checks and\nsuspend points.\n\nAlso adds an OAT test to test this in isolation.\n\nChange-Id: I9545f9f7343774c091410eb810504d9855fd399f\n"
    },
    {
      "commit": "12e6d7446384a7a5fbec25fe116bbb271c62842e",
      "tree": "ced17862a2587c56cb53fe47b303841aac806dc6",
      "parents": [
        "9bec54430e8609765740fdc51d24ed3f3c907919"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Thu May 22 10:22:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 27 22:55:53 2014 -0700"
      },
      "message": "Add option to specify compiler executable.\n\nChange-Id: I973da5e74be5a62461caacbc708288fb95e1b99b\n"
    },
    {
      "commit": "6a58691356979164249c63cb3f98f5dbd75cc4bb",
      "tree": "259f792efd88017cf36f69df552ea002ec77a282",
      "parents": [
        "89bfb2be91b1b4db1ef62e82e9b9ae13dc975264"
      ],
      "author": {
        "name": "Wei Jin",
        "email": "wejin@google.com",
        "time": "Wed May 21 16:07:40 2014 -0700"
      },
      "committer": {
        "name": "Wei Jin",
        "email": "wejin@google.com",
        "time": "Tue May 27 09:13:52 2014 -0700"
      },
      "message": "Fix the problem of not shutting down the profiler in ART properly\n\nThis CL fixes the problem of not saving the last batch of profile data to the\nexternal file when the runtime exits before the end of the current iteration of\nprofile sampling. This problem was fixed by shutting down the ART profiler\nwhen the runtime exits and allowing the profiler to write the last batch of\ndata even it was signaled to shut down. This CL increases the precision of\nprofile data and fixes the bug that no data is saved if the duration of profile\nsampling specified by VM arguments (by default 20 seconds) is longer than the\nlength of a single execution because the profiler was never signaled when the\nruntime exits.\n\nChange-Id: I7cc4805b7e2a22a990d04a5b9724ad1d931d7152\nSigned-off-by: Wei Jin \u003cwejin@google.com\u003e\n"
    },
    {
      "commit": "bd0fb61e24270b1f382ecbef4c1260c703550e84",
      "tree": "8ea1370cf907771d24ec4776162d92ee407ee05d",
      "parents": [
        "07d5fa63f562702d722d9a212fdef8ffc542c5eb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue May 20 13:46:00 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue May 20 18:05:32 2014 -0700"
      },
      "message": "Simplify Class::IsArtFieldClass().\n\nFix the slight glitch that when ImageSpace::VerifyImageAllocations()\ncalled in ImageSpace::Create(), the ArtField and ArtMethod class roots\nweren\u0027t set, which were used by DCHECKs in Object::Size(), which\nVerifyImageAllocations() calls, by delaying the point of the\nVerifyImageAllocations() call to Runtime::Init() at which point the\nclass linker has set the class roots.\n\nTo completely disable read barriers from Object::SizeOf(), the\nReadBarrierOption template parameter should have been added to\nClass::GetInstanceField(), which calls GetFieldObject(), when it\u0027s\ncalled from Class::IsArtFieldClass(). This change fixes this by\nremoving the need for the call, instead of adding the\nReadBarrierOption parameter.\n\nBug: 12687968\nChange-Id: Ibbecc08f4e3b898851805d690dff8ccac55e94f2\n"
    },
    {
      "commit": "35aef2ce9d9cbfb37e9b2f6776afce3caed37063",
      "tree": "db1ce2f734a7ff0ad8cd4107a1aef85e7fdf8e0a",
      "parents": [
        "27a2b70f612af9afc0fb5392fb10059f6a0a3569"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Mon May 19 16:19:36 2014 +0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 20 10:44:00 2014 -0700"
      },
      "message": "Fix race condition between GCDaemon and DeleteLocalReference\n\nThere is a race condition between the GCDaemon visiting\nthread local roots starting from the thread\u0027s indirect ref table (IRT)\nand another thread calling JNI::DeleteLocalReference, which is clearing\none of the indirect references.\n\nTo cope with the race condition the DeleteLocalReference used to transit\nfrom suspended to running state by creating a ScopedObjectReference(env).\nBut this transition was removed with the following patch:\nhttps://android.googlesource.com/platform/art/+/ef28b14268ed0f9db0c7bbd571aa514354a360bd%5E!/#F0\n\nIf so the GCDaemon must be careful to work with IRT entries.\n\nThis new patch:\n1. calls the visitor only if the reference is not null. This if-null\n   behavior of ART GC is consistent with what Dalvik GC does.\n2. But this might be not enough for some future sophisticated GC algorithms.\n   For example, if GC moves an object, then the IRT entry must be changed\n   with CAS only if it has not been cleared. So, for the safety reasons\n   the patch put backs the ScopedObjectReference soa(env) to\n   DeleteLocalReference.\n\nOnly one of those two changes would be enough.\n\nmathieuc note: I decided to delete the root null check but kept the\nScopedObjectAccess in DeleteLocalRef and added missing annotations as\nwell as more ScopedObjectAccess in jni internals.\n\nBug: 14626564\n\nChange-Id: I90d4b8494f61404579ecdd2918d1482093d99387\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\nSigned-off-by: Yang Chang \u003cyang.chang@intel.com\u003e\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "507dfdd147c97bfbadebfd63584d094b6a4e7b47",
      "tree": "cce43931b6dcd088cb2932c2491f86116353a27f",
      "parents": [
        "922ddb30982d2597eab634d8b8598bec0eb7d3b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:42:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 15 16:50:51 2014 -0700"
      },
      "message": "Compatibility layer to transition from UniquePtr to std::unique_ptr.\n\nUse ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr,\nfor the host switch to std::unique_ptr. For now the type remains called\nUniquePtr.\nMake dalvik compile with clang on the host, move its build to C++11.\n\nChange-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12\n"
    },
    {
      "commit": "eb8167a4f4d27fce0530f6724ab8032610cd146b",
      "tree": "bcfeaf13ad78f2dd68466bbd0e20c71944f7e854",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:43:14 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 13 14:45:54 2014 -0700"
      },
      "message": "Add Handle/HandleScope and delete SirtRef.\n\nDelete SirtRef and replaced it with Handle. Handles are value types\nwhich wrap around StackReference*.\n\nRenamed StackIndirectReferenceTable to HandleScope.\n\nAdded a scoped handle wrapper which wraps around an Object** and\nrestores it in its destructor.\n\nRenamed Handle::get -\u003e Get.\n\nBug: 8473721\n\nChange-Id: Idbfebd4f35af629f0f43931b7c5184b334822c7a\n"
    },
    {
      "commit": "ad930da1d67968600aab8441c24f5c4cc6e001bd",
      "tree": "8ce7f544da7b4b0be26d19e85c70e2861b068da1",
      "parents": [
        "6f2b602999a9b5253de98e4c8749f821b0046ac2",
        "7624d25dad2d1ba25969ae704fccf68649103ae5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 15:56:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 15:56:14 2014 +0000"
      },
      "message": "Merge \"Move quick frame info to OatQuickMethodHeader.\""
    },
    {
      "commit": "7624d25dad2d1ba25969ae704fccf68649103ae5",
      "tree": "de72194b76a4e23e0b15ec4085447ae7e4425815",
      "parents": [
        "e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 14:40:15 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 11:43:22 2014 +0100"
      },
      "message": "Move quick frame info to OatQuickMethodHeader.\n\nRename OatMethodHeader to OatQuickMethodHeader, move frame\ninfo from OatMethodOffsets to OatQuickMethodHeader. Retrieve\nthe info from other places for non-quick methods (portable\ncompiled bytecode or jni stub, generic jni, runtime,\nabstract and proxy).\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields for frame size and spills.\"\n  https://android-review.googlesource.com/94164\n\nBug: 11767815\nChange-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f\n"
    },
    {
      "commit": "b9116360e12538d0f807e110458897e43dd4a846",
      "tree": "db604dfe04a529ef0d17ffad18567a224de30ee1",
      "parents": [
        "0f3295d6ebd507ea0572055a1ce2539d6b1b129b",
        "37eecbde9ab8432c2d047a1524d0ea14f88b94bb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 13 02:30:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 13 02:30:52 2014 +0000"
      },
      "message": "Merge \"Dump the native stack of an unattached aborting thread.\""
    },
    {
      "commit": "653bc0eaff1a7f8ca057e03c3379fe22a9b523c2",
      "tree": "f3dc11fe40f942a2e5777ad1d2bedd8bc2ca5f46",
      "parents": [
        "0c5e8417a1e82f6e31fbfc33be7e64d9073d6ef4",
        "b9beb2e2efb6a204a69ca660d478b45f851e8f09"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 12 22:45:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 12 22:45:41 2014 +0000"
      },
      "message": "Merge \"Place ISA into boot image name.\""
    },
    {
      "commit": "b9beb2e2efb6a204a69ca660d478b45f851e8f09",
      "tree": "168765e73d342712800566b562fb5276f63e49ef",
      "parents": [
        "6393eb7043517c5744935c48e3fd45a482915c2b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 09 16:57:40 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 12 15:18:23 2014 -0700"
      },
      "message": "Place ISA into boot image name.\n\nDepends upon:\nhttps://android-review.googlesource.com/94078\n\nChange-Id: I22c18b03b2c0db7a3f792920064e7710363b58b4\n"
    },
    {
      "commit": "b170b3e89e717c2d84a3ee7987f7460520fb9e17",
      "tree": "d868cf6b698c729346069e605507b6ba0ff6f48b",
      "parents": [
        "21f08b7ed0834f39737d9299799407133204a4ff",
        "119c6bd97f7ac24b64eaf4e9333abb44acbf780f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 12 17:34:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 12 17:34:44 2014 +0000"
      },
      "message": "Merge \"Fix stub_test to pass with SS collector.\""
    },
    {
      "commit": "37eecbde9ab8432c2d047a1524d0ea14f88b94bb",
      "tree": "3fc990643ec78280e6416cffaf1a3ca859facb29",
      "parents": [
        "f92a45609352fb1dc3460a07d83284b353270221"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun May 11 02:08:15 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun May 11 02:08:15 2014 -0700"
      },
      "message": "Dump the native stack of an unattached aborting thread.\n\nUseful when diagnosing errors in threads that have yet to become attached.\n\nChange-Id: Id50b96d12f8c2e8a29e0606d15009287a554aa64\n"
    },
    {
      "commit": "537aaf122b93cd72e3e886831c686c3b2f83e441",
      "tree": "f9befe6e1af737b97eec9aa334039ef1591be7a2",
      "parents": [
        "9d7546662eb7138a7263f12f70d884554483a5a6",
        "ad9697a91d5acdc772ae6c0461540bfec358a070"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri May 09 22:04:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 09 22:04:58 2014 +0000"
      },
      "message": "Merge \"Revert \"Switch on implicit null pointer and stack overflow checks.\"\""
    },
    {
      "commit": "ad9697a91d5acdc772ae6c0461540bfec358a070",
      "tree": "485c2883d04d23c63f983305cb4bbdbc0e499a85",
      "parents": [
        "052664322767de1799f060c306e729b0e73ce893"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri May 09 21:42:36 2014 +0000"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri May 09 21:42:36 2014 +0000"
      },
      "message": "Revert \"Switch on implicit null pointer and stack overflow checks.\"\n\nThis seems to break facebook\n\nThis reverts commit 052664322767de1799f060c306e729b0e73ce893.\n\nChange-Id: I6c8dabdc2519c0925ffde41975878f821e3933de\n"
    },
    {
      "commit": "119c6bd97f7ac24b64eaf4e9333abb44acbf780f",
      "tree": "d22dfb17249fa0dc5f1e506ca9eb88d9b9b6fa9f",
      "parents": [
        "b60508391b7f7343d39e39f98e7f254917cab91c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 09 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 09 14:20:54 2014 -0700"
      },
      "message": "Fix stub_test to pass with SS collector.\n\nChanged the test to access the allocation entrypoints from the thread.\n\nChange the order roots are visited to prevent a rare error where the\njava lang reflect art method would move before it was checked in\nSanityCheckFrame.\n\nChange-Id: Ifb96220f3fbb74ea5d720777f130450f04c0e044\n"
    },
    {
      "commit": "4d466a8e4587422c989705dce3b2a19e7f0137f5",
      "tree": "bd8f0f45db9a7d5888b14a070690f59fb599bd68",
      "parents": [
        "f1c036fc8fa97617cc42bda44a0adbc7b856d6cd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 08 19:05:29 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 12:23:00 2014 -0700"
      },
      "message": "Remove all LOG(DEBUG) which is not intended to be checked in\n\nBug: 14632493\nChange-Id: Id9da8b87798af0a1b2bd2c178133e5f1ba47d43d\n"
    },
    {
      "commit": "78f7b4c04ab6e8b5581921bc95b67a9beee1c246",
      "tree": "78b93c72007478b5bfc3b88ab413fa3d772da723",
      "parents": [
        "052a647973b590c9d5007a2e16f313f4e32a70bd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 06 10:57:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 07 15:28:35 2014 -0700"
      },
      "message": "Add concurrent reference processing.\n\nConcurrent reference processing currently works by going into native\ncode from java.lang.ref.Reference.get(). From there, we have a fast\npath if the references aren\u0027t being processed which returns the\nreferent without needing to access any locks. In the slow path we\nblock until reference processing is complete. It may be possible to\nimprove the slow path if the referent is blackened.\n\nTODO: Investigate doing the fast path in java code by using racy reads\nof a static volatile boolean. This will work as long as there are no\nsuspend points inbetween the boolean read and referent read.\n\nBug: 14381653\n\nChange-Id: I1546b55be4691fe4ff4aa6d857b234cce7187d87\n"
    },
    {
      "commit": "052664322767de1799f060c306e729b0e73ce893",
      "tree": "71b6229caea53935aada8fd96784992162e6d553",
      "parents": [
        "36b65964d128471d917c2efc69c81bc50ef9360b"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Mon May 05 13:17:37 2014 -0700"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue May 06 11:08:42 2014 -0700"
      },
      "message": "Switch on implicit null pointer and stack overflow checks.\n\nThis switches on the use of implicit checks for null pointers\nand stack overflows.  These use the SIGSEGV handler in the ART\nruntime to detect these conditions and throw the appropriate\nexceptions.\n\nChange-Id: I4d27d4e976a58b18fb16a89572b1fb3798608449\n"
    },
    {
      "commit": "89a201e599da95d88590c7b4d069b76735e20fa8",
      "tree": "c01361799ceb663110ed8fb87f9f3d2d35ea22b5",
      "parents": [
        "6a6a5304e75a1af484975cedc832d0a80c3e5e61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 02 10:27:26 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 02 11:20:24 2014 -0700"
      },
      "message": "Add GC cause to WaitForGcToComplete message.\n\nChange-Id: I8fe107d90a84de065c407b8d29fd106267ac440d\n"
    },
    {
      "commit": "8194963098247be6bca9cc4a54dbfa65c73e8ccc",
      "tree": "547cc708e06e6541676b17066023ae6f07b2049b",
      "parents": [
        "56a341a82ece9aa4f2a071629f3e1fd1adf988ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 11:53:22 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 12:21:02 2014 +0100"
      },
      "message": "Replace CountOneBits and __builtin_popcount with POPCOUNT.\n\nClean up utils.h, make some functions constexpr.\n\nChange-Id: I2399100280cbce81c3c4f5765f0680c1ddcb5883\n"
    },
    {
      "commit": "11d9f06a96a6909905c248ed684366190140095c",
      "tree": "27b02ab216b98ba1656d66072fd46c5adec61242",
      "parents": [
        "b3016551e5f264264dbb633a1ddf03ac97f9c66c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 23 20:24:57 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:25:07 2014 +0100"
      },
      "message": "Use instruction specific dalvik cache dirs.\n\n- All oat \u0026 art files are now placed under /data/dalvik-cache/\u003cisa\u003e/.\n- GetDalvikCacheOrDie now requires a mandatory subdirectory argument,\n  and is implicitly rooted under /data/.\n- Added helper methods to convert InstructionSet enums into strings\n  and vice versa.\n\n(cherry picked from commit 2974bc3d8a5d161d449dd66826d668d87bdc3cbe)\n\nChange-Id: Ic7986938e6a7091a2af675ebafec768f7b5fb8cd\n"
    },
    {
      "commit": "6f365cc033654a5a3b45eaa1379d4b5f156b0cee",
      "tree": "959754c43ebd2b01e366ac06f21d833340a7fee5",
      "parents": [
        "cb905718826da268d8d8e09296806256f202c9f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 23 12:42:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 29 12:58:08 2014 -0700"
      },
      "message": "Enable concurrent sweeping for non-concurrent GC.\n\nRefactored the GarbageCollector to let all of the phases be run by\nthe collector\u0027s RunPhases virtual method. This lets the GC decide\nwhich phases should be concurrent and reduces how much baked in GC\nlogic resides in GarbageCollector.\n\nEnabled concurrent sweeping in the semi space and non concurrent\nmark sweep GCs. Changed the semi-space collector to have a swap semi\nspaces boolean which can be changed with a setter.\n\nFixed tests to pass with GSS collector, there was an error related to\nthe large object space limit.\n\nBefore (EvaluateAndApplyChanges):\nGSS paused GC time 7.81s/7.81s, score: 3920\n\nAfter (EvaluateAndApplyChanges):\nGSS paused GC time 6.94s/7.71s, score: 3900\n\nBenchmark score doesn\u0027t go up since the GC happens in the allocating\nthread. There is a slight reduction in pause times experienced by\nother threads (0.8s total).\n\nAdded options for pre sweeping GC heap verification and pre sweeping\nrosalloc verification.\n\nBug: 14226004\nBug: 14250892\nBug: 14386356\n\nChange-Id: Ib557d0590c1ed82a639d0f0281ba67cf8cae938c\n"
    },
    {
      "commit": "9bc54406ba3377980cfce44901dc2be246178ba9",
      "tree": "12b9a514ef37c5cd01a99f3c6ffa83e3b03be7c0",
      "parents": [
        "94e8a97310af35cb0bae309e796b554cdb586ca5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 17 16:40:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 17 16:45:06 2014 -0700"
      },
      "message": "Interpreter-only mode should cause dex-to-dex compilation.\n\nAlso, fix quick iget/iput that had similar issues to:\nhttps://android-review.googlesource.com/91423\nAlso, remove fall-back resolution code from quick invokes/igets/iputs as we\nallow class loading for the exception throw and regular verification already\nallows class loading.\nBug: 14133618\n\nChange-Id: I51199e6e2392da0354f64b157e79af494c183778\n"
    },
    {
      "commit": "2f8da3e9ff60e5cb2a3fdf57dbcb67f513b9c2c2",
      "tree": "cfe10d3409b9cdd5c9453c6fbd12854039ac5ca9",
      "parents": [
        "9623c6668962559e818d1e7f05a58dcb96c71fa9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 15 15:37:02 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 16 12:37:09 2014 -0700"
      },
      "message": "Decrease target utilization for foreground apps.\n\nGC time in FormulaEvaluationActions.EvaluateAndApplyChanges goes from\n26.1s to 23.2s. Benchmark score goes down ~50 in\nFormulaEvaluationActions.EvaluateAndApplyChanges, and up ~50 in\nGenericCalcActions.MemAllocTest.\n\nBug: 8788501\nChange-Id: I412af1205f8b67e70a12237c990231ea62167bc0\n"
    },
    {
      "commit": "c7a966dbba6902618ff0959d604c05d7570df8c8",
      "tree": "9c29dc008ad24e97ba26d5734fc7db4a41f7ca52",
      "parents": [
        "22839a631bb3591a1c0037c388d51a4f18b5fb5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 18:06:32 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 10 18:07:46 2014 -0700"
      },
      "message": "Prevent deadlocks in Runtime::Abort.\n\nIf we have the threads suspended, attempting to use a\nScopedObjectAccess causes a deadlock. We now specifically avoid this\nto prevent deadlocks.\n\nBug: 13747880\nChange-Id: I45fd3fff917da98b22970e5351a9e25b143a4eed\n"
    },
    {
      "commit": "a704644079945c700bef37803b3b7bcd70a10cb4",
      "tree": "a02af06fa8833288d3711153a82161a2aeef9e8a",
      "parents": [
        "2be6fc74bce10ac68d3d1b39a5019f520ad170ea",
        "1659006728b929aa820d09bdaba58b462cc8e7cc"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 08 13:37:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 08 13:37:28 2014 +0000"
      },
      "message": "Merge \"Profile: made startImmediately settable\""
    },
    {
      "commit": "1659006728b929aa820d09bdaba58b462cc8e7cc",
      "tree": "cb1af26e2be04682d6b1359c26598f65342182eb",
      "parents": [
        "5cc2d076cb7854ec2327895e5586f4cbe5e3ee70"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 07 18:07:43 2014 +0300"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 07 19:05:25 2014 +0300"
      },
      "message": "Profile: made startImmediately settable\n\nBy default the profiler starts immediately upon app startup. To delay the\nstartup by some random offset use -Xprofile-start_lazy.\n\nBug: 12877748\nChange-Id: Ifc1bb7f79f9f9aa53204b2fb1fbae3cd5c780cac\n"
    },
    {
      "commit": "242947dbcdc4038ddd8ac522bb480f82e7d92ffa",
      "tree": "a84dc663494a1dbadd0f209788ae071742381309",
      "parents": [
        "0537c5ea92a4fb60a04024cc2b7247f08a3d9096"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 03 13:31:32 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 03 13:31:32 2014 -0700"
      },
      "message": "Make frame size dependent on arch-specific constants.\n\nNecessary for proper cross-compiling.\n\nChange-Id: I852901ee6ca5121e480b83a8e318bdc9c7d615e8\n"
    },
    {
      "commit": "0c7350d774e42c1ec889e40ffe70beb5b6c27afb",
      "tree": "a5709a76694529392846c68cb34bd9c8503e85f3",
      "parents": [
        "5cc2d076cb7854ec2327895e5586f4cbe5e3ee70",
        "3de95a7b0a2d30cde6dc92b72c35df3a61002124"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 03 12:28:17 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 03 12:28:17 2014 +0000"
      },
      "message": "Merge \"Runtime::PreZygoteFork returns void, not boolean.\""
    },
    {
      "commit": "4a200f56b7075309316b04d550c9cc50f8314edd",
      "tree": "0c01f484239203eeeb9f8e5f97300bca09b051ad",
      "parents": [
        "d0ab1223cc8c5181e502196a7765790ad2aba3c8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 01 14:58:49 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 02 17:18:13 2014 -0700"
      },
      "message": "Add support for -Xverify:none mode.\n\nThis mode skips all verification and compilation.\nPublic bug: https://code.google.com/p/android/issues/detail?id\u003d67664\n\nChange-Id: Idd00ab8e9e46d129c02988b063c41a507e07bf5b\n"
    },
    {
      "commit": "8afeb85d3def12b559b7565fb6d3956f81b55132",
      "tree": "60ac7c63d7adba0dc117ac88dd98cc97a879e0ca",
      "parents": [
        "0807e7bbbafc4b4e8e7fb1d2d54fbcb011c05c82"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 14:55:49 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 02 14:55:49 2014 -0700"
      },
      "message": "Pass instruction-set from runtime through to spawned dex2oat.\n\nChange-Id: I1727af7beb9f710c29124d4d6bc9175e4856f3cc\n"
    },
    {
      "commit": "3de95a7b0a2d30cde6dc92b72c35df3a61002124",
      "tree": "56ad920ea31bf3b64595fe56345649db4c679156",
      "parents": [
        "ad4b0d2c671a5aa5f11e731eb51a905eb513a266"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 12:54:23 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 12:54:23 2014 +0100"
      },
      "message": "Runtime::PreZygoteFork returns void, not boolean.\n\nThis method aborts on failure (as it should) and unconditionally\nreturns true, so making it return void simplifies callers.\n\nChange-Id: Iae39bd327f20311579ece47efa8afd1be7defce9\n"
    },
    {
      "commit": "8e157dc9e2938aa7eeadaf4ea34e8d3e727136bc",
      "tree": "295c380a2a9b2c57851fb60576abf5661ecad237",
      "parents": [
        "5120686d956cdea3f4b662941f361e0867a4bbad",
        "8b2c8b9642d5fe037f93ab0cb6a5065e2a192e40"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 02 10:29:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 02 10:29:50 2014 +0000"
      },
      "message": "Merge \"Move most zygote related code to frameworks/base.\""
    },
    {
      "commit": "1246d689dc3150bbee6c5e5628747a94fba5081e",
      "tree": "24fb2b8271cdc524855f52bbc94361dbf5f8c2f0",
      "parents": [
        "f689b93e904e062d83a7ae7e8cacce0b52af3323",
        "ee1d79a603c77c0667b27c075a983579d5c51f7e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 02 07:45:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 02 07:45:52 2014 +0000"
      },
      "message": "Merge \"Cleanup transaction support\""
    }
  ],
  "next": "ee1d79a603c77c0667b27c075a983579d5c51f7e"
}
