)]}'
{
  "log": [
    {
      "commit": "815873ecc312b1d231acce71e1a16f42cdaf09f2",
      "tree": "18ba2fa951775e60b240271bfe975e6e2cfc654c",
      "parents": [
        "2befd09cf4fe89a18a655f3e1dd310831bfa769f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 13 18:02:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 10:45:12 2014 -0800"
      },
      "message": "Change root visitor to use Object**.\n\nSimplifies code and improves the performance of root visiting since\nwe usually don\u0027t need to check to see if the object moved.\n\nChange-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf\n"
    },
    {
      "commit": "d2fe10a3a34af171bf1631219cd2d6ff6b7778b5",
      "tree": "b6b7eb8eba23a5c2723518da99c03bf47b97f58a",
      "parents": [
        "5a3f55ad9519e87c0d3bbddaf3d8a186a887a79b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jan 15 10:20:56 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Feb 17 11:32:15 2014 +0100"
      },
      "message": "Remove blacklist\n\nRemoves the class initialization blacklist and use transaction to detect and\nrevert class initialization attempting to invoke native method. This only\nconcerns class initialization happening at compilation time when generating an\nimage (like boot.art for the system).\n\nIn transactional mode, we log every object\u0027s field assignment and array update.\nTherefore we\u0027re able to abort a transaction to restore values of fields and\narray as they were before the transaction starts. We also log changes to the\nintern string table so we can restore its state prior to transaction start.\n\nSince transactional mode only happens at compilation time, we don\u0027t need to log\nall these changes at runtime. In order to reduce the overhead of testing if\ntransactional mode is on/off, we templatize interfaces of mirror::Object and\nmirror::Array, respectively responsible for setting a field and setting an\narray element.\n\nFor various reasons, we skip some specific fields from transaction:\n- Object\u0027s class and array\u0027s length must remain unchanged so garbage collector\ncan compute object\u0027s size.\n- Immutable fields only set during class loading: list of fields, method,\ndex caches, vtables, ... as all classes have been loaded and verified before a\ntransaction occurs.\n- Object\u0027s monitor for performance reason.\n\nBefore generating the image, we browse the heap to collect objects that need to\nbe written into it. Since the heap may still holds references to unreachable\nobjects due to aborted transactions, we trigger one collection at the end of\nthe class preinitialization phase.\n\nSince the transaction is held by the runtime and all compilation threads share\nthe same runtime, we need to ensure only one compilation thread has exclusive\naccess to the runtime. To workaround this issue, we force class initialization\nphase to run with only one thread. Note this is only done when generating image\nso application compilation is not impacted. This issue will be addressed in a\nseparate CL.\n\nBug: 9676614\nChange-Id: I221910a9183a5ba6c2b99a277f5a5a68bc69b5f9\n"
    },
    {
      "commit": "f5b0e20b5b31f5f5465784adcf2a204dcd69c7fd",
      "tree": "9e1b211414c1dcb34f19a7b509e72aee2153a3cf",
      "parents": [
        "68bb649b128cd8760732524bd7ba58b49780d9d3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 11 17:02:22 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 13 13:43:43 2014 -0800"
      },
      "message": "Thread-local allocation stack.\n\nWith this change, Ritz MemAllocTest gets ~14% faster on N4.\n\nBug: 9986565\nChange-Id: I2fb7d6f7c5daa63dd4fc73ba739e6ae4ed820617\n"
    },
    {
      "commit": "2300790c868f70862f1d1c2578a07c8d0f29d53d",
      "tree": "c7f45cdd8bc190f1679a9f84eef8593d49d42d88",
      "parents": [
        "b422d3fed381d93451ffcf96cbf928d7a13d3701",
        "89bb1449bbef1863b12dfa3813ab7c78be94316f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 12 18:42:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 12 18:42:13 2014 +0000"
      },
      "message": "Merge \"Fix wrong thread id being passed to SIRT roots.\""
    },
    {
      "commit": "89bb1449bbef1863b12dfa3813ab7c78be94316f",
      "tree": "57e4d0325144cd01d73af8b2fe475b9f72b6bad0",
      "parents": [
        "3c976a8f82007285316dd9d1bbccb659b0668a06"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 12 10:06:23 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 12 10:18:24 2014 -0800"
      },
      "message": "Fix wrong thread id being passed to SIRT roots.\n\nFixes jhat on hprof dumps.\n\nChange-Id: I1a71eb3370606129fb5cf791ab582f34052a9f35\n"
    },
    {
      "commit": "fd14755c09ada4769b5b6658e484441ca3f628b5",
      "tree": "c70c10b6e319f44dadb56c78acaf7ce89b502d82",
      "parents": [
        "3c976a8f82007285316dd9d1bbccb659b0668a06",
        "0177e53ea521ad58b70c305700dab32f1ac773b7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 12 01:16:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 12 01:16:30 2014 +0000"
      },
      "message": "Merge \"Work in the direction of hard float quick ABIs.\""
    },
    {
      "commit": "0177e53ea521ad58b70c305700dab32f1ac773b7",
      "tree": "db15627a19a04634cf84cecd15b813319d80d225",
      "parents": [
        "abaf927f29f6feceb3df3e6ced7d01970ba0dbe9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 11 16:30:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 11 17:02:21 2014 -0800"
      },
      "message": "Work in the direction of hard float quick ABIs.\n\nPass a shorty to ArtMethod::Invoke so that register setup can use it.\nDocument x86-64 ABI.\nAdd extra debug output for one JNI native method registration fails, namely a\ndump of the Class and its dex file\u0027s location.\nAdd hack to get testing of OatMethod\u0027s without GC maps working in 64bit.\n\nChange-Id: Ic06b68e18eac33637df2caf5e7e775ff95ae70f3\n"
    },
    {
      "commit": "83c8ee000d525017ead8753fce6bc1020249b96a",
      "tree": "d5167ed15dee2629905ac3640b6ea0578d4ae312",
      "parents": [
        "7cba217ab0661d74deccbb97160cdf60b74d4ea3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 28 14:50:23 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 11 10:40:10 2014 -0800"
      },
      "message": "Add root types and thread id to root visiting.\n\nEnables us to pass the root type and thread id to hprof.\n\nBug: 12680863\nChange-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "1efa0a9d6cd5f5b40b8a21d39f1103a3610250ee",
      "tree": "a7e8d43e657c6af0ff5e25ee029938b75bde6117",
      "parents": [
        "7c84c44f389e3f707eefafab35d4f838dbf7fe26"
      ],
      "author": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Tue Feb 04 02:08:31 2014 +0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 16:41:30 2014 -0800"
      },
      "message": "ART can\u0027t create more than 8k threads during the worktime\n\nART uses LDT to point to the Java Thread structure. This structure\ncan holds up to 8k pointers, so we can have 8k threads simultaneously.\nBut the current implementation does not free slots for the finished threads.\nThis means there cannot be more than 8k threads created during the whole\nlife cycle.\nThis patch implements the LDT slots freeing mechanism.\n\nChange-Id: Ifcf8fe1f4434a13f940146fff39b9c7bf91ee17b\nSigned-off-by: Alexei Zavjalov \u003calexei.zavjalov@intel.com\u003e\n"
    },
    {
      "commit": "7c6aca27dd2df58ac3d83a93ec5848e2b7d3159a",
      "tree": "4fa6a6f1c2c8116667a5c848154591c87873eeae",
      "parents": [
        "81c414a90067d6eb6e03f1657e0d121a5f967e13"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 31 18:44:56 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 31 18:45:30 2014 -0800"
      },
      "message": "Properly tolerate missing declaring source files\n\nBroken in 228d6b8a4f0a21c1e9b2372c3104ce4ee19f65b4\n\nBug: 12802375\nChange-Id: I60eeefeb3aff3e0a9f143791cf772e531a68d16a\n"
    },
    {
      "commit": "bb8f0ab736b61db8f543e433859272e83f96ee9b",
      "tree": "7b7bac5c0e7d0ac9aba91a40e0fbf761cfacb412",
      "parents": [
        "6e65720d99bd3387b72d528a46291f1ed8184ede"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jan 27 16:50:29 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jan 27 16:50:29 2014 -0800"
      },
      "message": "Embed array class pointers at array allocation sites.\n\nFollowing https://android-review.googlesource.com/#/c/79302, embed\narray class pointers at array allocation sites in the compiled code.\n\nChange-Id: I67a1292466dfbb7f48e746e5060e992dd93525c5\n"
    },
    {
      "commit": "be1ca55db3362f5b100c4c65da5342fd299520bb",
      "tree": "b9df6f5562d884698ed15f21764a704bb51e359e",
      "parents": [
        "9d8918fe97c235fdc6eb2c7f2d50a6673ab50329"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jan 15 11:46:48 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 23 15:29:12 2014 -0800"
      },
      "message": "Use direct class pointers at allocation sites in the compiled code.\n\n- Rather than looking up a class from its type ID (and checking if\n  it\u0027s resolved/initialized, resolving/initializing if not), use\n  direct class pointers, if possible (boot-code-to-boot-class pointers\n  and app-code-to-boot-class pointers.)\n- This results in a 1-2% speedup in Ritz MemAllocTest on Nexus 4.\n- Embedding the object size (along with class pointers) caused a 1-2%\n  slowdown in MemAllocTest and isn\u0027t implemented in this change.\n- TODO: do the same for array allocations.\n- TODO: when/if an application gets its own image, implement\n  app-code-to-app-class pointers.\n- Fix a -XX:gc bug.\n  cf. https://android-review.googlesource.com/79460/\n- Add /tmp/android-data/dalvik-cache to the list of locations to\n  remove oat files in clean-oat-host.\n  cf. https://android-review.googlesource.com/79550\n- Add back a dropped UNLIKELY in FindMethodFromCode().\n  cf. https://android-review.googlesource.com/74205\n\nBug: 9986565\nChange-Id: I590b96bd21f7a7472f88e36752e675547559a5b1\n"
    },
    {
      "commit": "d45a1f5d1dd5bc9badfab3a8aee90c934d9f2227",
      "tree": "c4e92844452b5eabfbd936b8d83c54f58397475d",
      "parents": [
        "0adc680c388913a63666797e907f87c4c6b0b4ea"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jan 09 14:56:54 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jan 10 09:42:09 2014 +0100"
      },
      "message": "Avoid instrumentation stack corruption.\n\nWhile debugging a throwing exception, we may end up updating instrumentation\nstack frame after having already walked the native stack. This leads to not pop\ninstrumentation frames prior to catch handler (or upcall if exception is not\ncaught) and get it desynchronized with the native stack.\n\nTo solve this issue, we need to walk the stack again after having reporting the\nexception to the instrumentation listener (for example: the debugger) which\nmay push new instrumentation stack frames. However we do it only when we know\ninstrumentation is enabled to not slow down exception delivery when executing\ncode without instrumentation.\n\nHere are the main changes:\n- Creates InstrumentationStackVisitor to compute the number of instrumentation\nframes to pop (previously done in CatchBlockStackVisitor). We only count frames\nprior to catch handler (or upcall). Popping instrumentation frames is done\nafter having reported the exception to the instrumentation listener.\n- Updates the CatchBlockStackVisitor to remove instrumentation frame handling\nand focus only on finding the catch handler and prepare deoptimization.\n- Creates CatchFinder class to control both visitors and do the long jump.\n\nChange-Id: I29b3871403f297bfb8c087e27f1330b002f5d56d\n"
    },
    {
      "commit": "e6da9af8dfe0a3e3fbc2be700554f6478380e7b9",
      "tree": "127a0565fce79f05d82d0ff242fbbffa6e2bc6b3",
      "parents": [
        "977d409b959497eecc44a35cff16115d0f04ccab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 16 11:54:42 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 08 14:16:12 2014 -0800"
      },
      "message": "Background compaction support.\n\nWhen the process state changes to a state which does not perceives\njank, we copy from the main free-list backed allocation space to\nthe bump pointer space and enable the semispace allocator.\n\nWhen we transition back to foreground, we copy back to a free-list\nbacked space.\n\nCreate a seperate non-moving space which only holds non-movable\nobjects. This enables us to quickly wipe the current alloc space\n(DlMalloc / RosAlloc) when we transition to background.\n\nAdded multiple alloc space support to the sticky mark sweep GC.\n\nAdded a -XX:BackgroundGC option which lets you specify\nwhich GC to use for background apps. Passing in\n-XX:BackgroundGC\u003dSS makes the heap compact the heap for apps which\ndo not perceive jank.\n\nResults:\nSimple background foreground test:\n0. Reboot phone, unlock.\n1. Open browser, click on home.\n2. Open calculator, click on home.\n3. Open calendar, click on home.\n4. Open camera, click on home.\n5. Open clock, click on home.\n6. adb shell dumpsys meminfo\n\nPSS Normal ART:\nSample 1:\n    88468 kB: Dalvik\n     3188 kB: Dalvik Other\nSample 2:\n    81125 kB: Dalvik\n     3080 kB: Dalvik Other\n\nPSS Dalvik:\nTotal PSS by category:\nSample 1:\n    81033 kB: Dalvik\n    27787 kB: Dalvik Other\nSample 2:\n    81901 kB: Dalvik\n    28869 kB: Dalvik Other\n\nPSS ART + Background Compaction:\nSample 1:\n    71014 kB: Dalvik\n     1412 kB: Dalvik Other\nSample 2:\n    73859 kB: Dalvik\n     1400 kB: Dalvik Other\n\nDalvik other reduction can be explained by less deep allocation\nstacks / less live bitmaps / less dirty cards.\n\nTODO improvements: Recycle mem-maps which are unused in the current\nstate. Not hardcode 64 MB capacity of non movable space (avoid\nreturning linear alloc nightmares). Figure out ways to deal with low\nvirtual address memory problems.\n\nBug: 8981901\n\nChange-Id: Ib235d03f45548ffc08a06b8ae57bf5bada49d6f3\n"
    },
    {
      "commit": "0aded089f565008ba5908e395e5914ca4f91f2de",
      "tree": "3b1238d956e0181d00243604c83c3a0be368437d",
      "parents": [
        "98ba6cebd22489c959d845884ee045dcbd958d41"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Nov 07 13:15:11 2013 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Jan 07 10:58:07 2014 -0800"
      },
      "message": "Add sampling profiler\n\nThis adds a sampling profiler thread that runs every so often, gathering\nprofiling data and writing the results to a file in /data/data (specific to\napp running).  The intention is to use these files as input to the compiler\nso that it can determine the best methods to compile.\n\nBug: 11539952\nChange-Id: I0bfbb4146fb7966673c792f017ffac8107b6272d\n"
    },
    {
      "commit": "e8c48db6bb507d7fa20c78481c58c23be0045f67",
      "tree": "ceac197a9d9f32609f845377e9fe87949bff5527",
      "parents": [
        "e40687d053b89c495b6fbeb7a766b01c9c7e039c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 19 14:59:00 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 19 15:14:42 2013 -0800"
      },
      "message": "Fix NewLocalRef, NewGlobalRef to handle cleared weak globals.\n\nWe were not checking for null after decoding the reference, this\nmeant that we incorrectly created null weak global references instead\nof returning null.\n\nIssue: 63929\nChange-Id: I9159682e6edad8f415ef8144fc13b9aedd2cceb4\n"
    },
    {
      "commit": "692fafd9778141fa6ef0048c9569abd7ee0253bf",
      "tree": "63ce2c7d4be6af2524a5f442195c8c8b6f5cc955",
      "parents": [
        "07dc96d370c4844c7a279c01cedf24a272b9f4f3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 29 17:24:40 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 16 16:57:37 2013 -0800"
      },
      "message": "Thread local bump pointer allocator.\n\nAdded a thread local allocator to the heap, each thread has three\npointers which specify the thread local buffer: start, cur, and\nend. When the remaining space in the thread local buffer isn\u0027t large\nenough for the allocation, the allocator allocates a new thread\nlocal buffer using the bump pointer allocator.\n\nThe bump pointer space had to be modified to accomodate thread\nlocal buffers. These buffers are called \"blocks\", where a block\nis a buffer which contains a set of adjacent objects. Blocks\naren\u0027t necessarily full and may have wasted memory towards the\nend. Blocks have an 8 byte header which specifies their size and is\nrequired for traversing bump pointer spaces.\n\nMemory usage is in between full bump pointer and ROSAlloc since\nmadvised memory limits wasted ram to an average of 1/2 page per\nblock.\n\nAdded a runtime option -XX:UseTLAB which specifies whether or\nnot to use the thread local allocator. Its a NOP if the garbage\ncollector is not the semispace collector.\n\nTODO: Smarter block accounting to prevent us reading objects until\nwe either hit the end of the block or GetClass() \u003d\u003d null which\nsignifies that the block isn\u0027t 100% full. This would provide a\nslight speedup to BumpPointerSpace::Walk.\n\nTimings: -XX:HeapMinFree\u003d4m -XX:HeapMaxFree\u003d8m -Xmx48m\nritzperf memalloc:\nDalvik -Xgc:concurrent: 11678\nDalvik -Xgc:noconcurrent: 6697\n-Xgc:MS: 5978\n-Xgc:SS: 4271\n-Xgc:CMS: 4150\n-Xgc:SS -XX:UseTLAB: 3255\n\nBug: 9986565\nBug: 12042213\n\nChange-Id: Ib7e1d4b199a8199f3b1de94b0a7b6e1730689cad\n"
    },
    {
      "commit": "8755359a35a4aa915fe3753633015263c7e97b74",
      "tree": "57c0b62f7e9b6cacfbd18d1e33f437b69621fa48",
      "parents": [
        "0b5a3fe08213dff52b73b2388b50a87d09b7da4f",
        "c528dba35b5faece51ca658fc008b688f8b690ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 11 20:25:08 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 20:25:09 2013 +0000"
      },
      "message": "Merge \"Enable moving classes.\""
    },
    {
      "commit": "543154a81625e2c724b6f794afc664cf9eddf65e",
      "tree": "8117bf96c65d3716a4b371b63cf60a4b3036154c",
      "parents": [
        "ed61d742acea70a06d992eb037c7343c2ad74333",
        "123756a041baf8421ed933312605daa5ef082f6f"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Dec 11 08:48:09 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 11 08:48:10 2013 +0000"
      },
      "message": "Merge \"Fix JDWP class-only modifier.\""
    },
    {
      "commit": "c528dba35b5faece51ca658fc008b688f8b690ad",
      "tree": "d95c113a639d07f7e3b88e8a6caa9b5f6e044801",
      "parents": [
        "76f552307ee980221626d1dff0ada56c989d24ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 26 12:00:11 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 16:00:58 2013 -0800"
      },
      "message": "Enable moving classes.\n\nSlight reduction in Zygote size, memory savings are in the noise.\nBefore: Zygote size: 8739224\nAfter: Zygote size: 8733568\n\nFixed a bug where we didn\u0027t set the concurrent start bytes after\nswitching the allocator from bump pointer to ROSAlloc in the\nzygote. This caused excessive memory usage.\n\nAdded the method verifiers as roots to fix an issue caused by\nRegTypes holding a Class*.\n\nAdded logic to clear card table in the SemiSpace collector, this\nreduces DalvikOther from ~2400k -\u003e ~1760k when using the SemiSpace\ncollector.\n\nAdded a missing lock to the timing loggers which caused a rare\none time crash in std::set.\n\nBug: 11771255\nBug: 8499494\nBug: 10802951\n\nChange-Id: I99d2b528cd51c1c5ed7012e3220b3aefded680ae\n"
    },
    {
      "commit": "8171fc34bf74ed0df02385787d916bc13eb7f160",
      "tree": "9c2b15d421bbf7483dd042a4b9985517c3cc86ee",
      "parents": [
        "fa365d2fa097810f31d6cb1b1ef415636bc63af8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 26 17:05:58 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 10 10:02:58 2013 +0000"
      },
      "message": "Don\u0027t prefix GC map by length.\n\nBug: 11767815\nChange-Id: I063917aefdf7674ee1a77736db059c9ee95ea075\n"
    },
    {
      "commit": "59cde534aa295bad7de29472b3cce9576d7996a8",
      "tree": "acb79971feefac450a56bca758524614012c30e4",
      "parents": [
        "93461f9b0b1304b94eee0ef33ef5679406e84dd8"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Dec 04 18:53:49 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 05 15:52:08 2013 -0800"
      },
      "message": "Workaround for gcc volatile struct member bug\n\ngcc does not handle struct with volatile member assignments correctly.\nSee http://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d47409\n\nUsing structure assignments for the StateAndFlag union can cause gcc\nto optimise the code incorrectly. Doing the assignment using the\nas_int member forces the correct behaviour.\n\nChange-Id: I6379d36add16c321b2e4d1dcd6fd8c959f3f92d6\n"
    },
    {
      "commit": "5f51d4b80058236759fea1d932470a57f348c199",
      "tree": "096ce11ba8dc096fd27d2fbed84459080c7d3b1e",
      "parents": [
        "d83d4c86c89357a74e94963994ad0c42ea7299c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 03 14:24:05 2013 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 05 12:57:43 2013 -0800"
      },
      "message": "Fix races in thread list Unregister.\n\nFirst race:\nWe were releasing the thin_lock_id in Unregister before the thread\nwas not suspended. This could cause problems in\nSuspendThreadByThreadId since there was a small window of time where\ntwo threads could share the same thread id. This race caused an\noccasional check failure in SuspendThreadByThreadId.\n\nSecond race:\nWe were setting the thin_lock_thread_id_ to 0 in Unregister before\nwaiting to not be suspended. This caused another race in\nSuspendThreadByThreadId where we modified the thread suspend count,\nbusy waited, but didn\u0027t find the thread the next iteration. This\nmeant that we were returning null even though we had modified the\nsuspend count. This caused the suspend count to not get decremented\nsince the caller didn\u0027t know that the suspend count had been\nincreased. Removing the self-\u003ethin_lock_thread_id_ \u003d 0 in\nThreadList::UnRegister fixes this race.\n\nAdded a bit of additional checks and logging to prevent these issues\nfrom resurfacing, other misc cleanup.\n\nAdded thread names to threads in ThreadStress.\n\nBug: 11319866\n\nChange-Id: I48e3a0700193b72079e450be1e924a2f88cf52e2\n"
    },
    {
      "commit": "123756a041baf8421ed933312605daa5ef082f6f",
      "tree": "0b9524660399b9e42adcc178027c9ddd8a61bd38",
      "parents": [
        "315ab6c077c4db2031f1ffa40b78722d8269dc9b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Nov 27 15:49:42 2013 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Dec 05 15:02:35 2013 +0100"
      },
      "message": "Fix JDWP class-only modifier.\n\nFix Dbg::MatchType which is used for class-only and exception-only modifiers.\n\nAlso fix crash happening when notifying an exception. A debugger may walk the\nstack of the current thread so we need to keep the instrumentation stack frame\nsynced with the native stack.\n\nBug: 11856587\nChange-Id: Ibf95f8a83ce9ee640abf945e498b42cc88ea92a0\n"
    },
    {
      "commit": "228d6b8a4f0a21c1e9b2372c3104ce4ee19f65b4",
      "tree": "3354f44c78ee2597244e8f2bf1d984f34b1eee3c",
      "parents": [
        "0f6615fe052a499ff7d6e6583a2f66aeb6146f1e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 03 15:00:05 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 04 00:29:12 2013 +0000"
      },
      "message": "Fix stack trace for proxy methods and added test case.\n\nBug: 11861564\n\nChange-Id: I9513359ff9e5d345ee71d84388afed02bd114ecf\n"
    },
    {
      "commit": "2054553237998043f0cd3d6b9fef799a4e6d95c0",
      "tree": "417ccbc5f75eaf36cfd0b62c8eb169b29975dddc",
      "parents": [
        "212d2ab3f5b92095e90008f27293531fc311e96d",
        "61b7f1b05d1fe12d4009316263bf990903e4edff"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Nov 20 08:47:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 20 08:47:56 2013 +0000"
      },
      "message": "Merge \"Move single-step control into thread.\" into dalvik-dev"
    },
    {
      "commit": "61b7f1b05d1fe12d4009316263bf990903e4edff",
      "tree": "7929d410750a8099ef254d3858d1da87d595bac8",
      "parents": [
        "03aca12cc4b15a4d2fe1c6acbcb1d62b2baa9eb4"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Nov 15 15:59:30 2013 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Nov 19 21:13:27 2013 +0100"
      },
      "message": "Move single-step control into thread.\n\nThis CL moves single-step control into the Thread structure. This is stored in\nThread::single_step_control_ member. This allows to support single-stepping of\nmultiple threads at the same time.\n\nSince each thread holds its single-step information, we no longer need to use\nthe breakpoint lock to support single-stepping. It helps reduce lock contention\non this lock while debugging.\n\nAll JDWP tests passed on the host and on the target with this CL.\n\nBug: 11667502\nChange-Id: I886d5c8c625ca5a072803e296c32eec5f7e9e82d\n"
    },
    {
      "commit": "cf58d4adf461eb9b8e84baa8019054c88cd8acc6",
      "tree": "c49fa473b17e299bc649688076e7d69938741e4e",
      "parents": [
        "be56c9e63335ce99f1042e8660aeac4690b965a9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 14:21:22 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Sat Nov 16 21:35:03 2013 -0800"
      },
      "message": "A custom \u0027runs-of-slots\u0027 memory allocator.\n\nBug: 9986565\nChange-Id: I0eb73b9458752113f519483616536d219d5f798b\n"
    },
    {
      "commit": "590fee9e8972f872301c2d16a575d579ee564bee",
      "tree": "b02db45c72f1911ec896b93379ada0276aea3199",
      "parents": [
        "5b70680b8df6d8fa95bb8e1070d0107f3d388940"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 13:46:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 11 15:34:27 2013 -0800"
      },
      "message": "Compacting collector.\n\nThe compacting collector is currently similar to semispace. It works by\ncopying objects back and forth between two bump pointer spaces. There\nare types of objects which are \"non-movable\" due to current runtime\nlimitations. These are Classes, Methods, and Fields.\n\nBump pointer spaces are a new type of continuous alloc space which have\nno lock in the allocation code path. When you allocate from these it uses\natomic operations to increase an index. Traversing the objects in the bump\npointer space relies on Object::SizeOf matching the allocated size exactly.\n\nRuntime changes:\nJNI::GetArrayElements returns copies objects if you attempt to get the\nbacking data of a movable array. For GetArrayElementsCritical, we return\ndirect backing storage for any types of arrays, but temporarily disable\nthe GC until the critical region is completed.\n\nAdded a new runtime call called VisitObjects, this is used in place of\nthe old pattern which was flushing the allocation stack and walking\nthe bitmaps.\n\nChanged image writer to be compaction safe and use object monitor word\nfor forwarding addresses.\n\nAdded a bunch of added SIRTs to ClassLinker, MethodLinker, etc..\n\nTODO: Enable switching allocators, compacting on background, etc..\n\nBug: 8981901\n\nChange-Id: I3c886fd322a6eef2b99388d19a765042ec26ab99\n"
    },
    {
      "commit": "88474b416eb257078e590bf9bc7957cee604a186",
      "tree": "7c59aa370bec9b0f2d37cb7a96d3b2effb3d92ce",
      "parents": [
        "9780099e445884d8bc9444c8c1261b02d80a26c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 23 16:24:40 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 29 12:01:28 2013 -0700"
      },
      "message": "Implement Interface Method Tables (IMT).\n\nChange-Id: Idf7fe85e1293453a8ad862ff2380dcd5db4e3a39\n"
    },
    {
      "commit": "a9a8254c920ce8e22210abfc16c9842ce0aea28f",
      "tree": "56614ee997940e8e3b88fef43b890e8a33e78112",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 04 11:17:26 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 15:54:54 2013 -0700"
      },
      "message": "Improve quick codegen for aput-object.\n\n1) don\u0027t type check known null.\n2) if we know types in verify don\u0027t check at runtime.\n3) if we\u0027re runtime checking then move all the code out-of-line.\n\nAlso, don\u0027t set up a callee-save frame for check-cast, do an instance-of test\nthen throw an exception if that fails.\nTidy quick entry point of Ldivmod to Lmod which it is on x86 and mips.\nFix monitor-enter/exit NPE for MIPS.\nFix benign bug in mirror::Class::CannotBeAssignedFromOtherTypes, a byte[]\ncannot be assigned to from other types.\n\nChange-Id: I9cb3859ec70cca71ed79331ec8df5bec969d6745\n"
    },
    {
      "commit": "d9c4fc94fa618617f94e1de9af5f034549100753",
      "tree": "1305efbbc3d4bc306c0947bb6d4b01553667f98e",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 01 19:45:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 02 09:31:55 2013 -0700"
      },
      "message": "Inflate contended lock word by suspending owner.\n\nBug 6961405.\nDon\u0027t inflate monitors for Notify and NotifyAll.\nTidy lock word, handle recursive lock case alongside unlocked case and move\nassembly out of line (except for ARM quick). Also handle null in out-of-line\nassembly as the test is quick and the enter/exit code is already a safepoint.\nTo gain ownership of a monitor on behalf of another thread, monitor contenders\nmust not hold the monitor_lock_, so they wait on a condition variable.\nReduce size of per mutex contention log.\nBe consistent in calling thin lock thread ids just thread ids.\nFix potential thread death races caused by the use of FindThreadByThreadId,\nmake it invariant that returned threads are either self or suspended now.\n\nCode size reduction on ARM boot.oat 0.2%.\nOld nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%,\nnexus 4 speedup 2.09% on DeltaBlue.\n\nChange-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a\n"
    },
    {
      "commit": "9c11b56296b8cffc94b0b854ce6cff7e014b8d57",
      "tree": "aa50c90aba8959732ee44b8ea94d52176904e785",
      "parents": [
        "58ff84450a28966a4d2b1f1f4cec527a6a586905",
        "530825ba92e317822116efffd470577ddfd142d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "message": "Merge \"Make InternalStackTraceToStackTraceElementArray compaction safe.\" into dalvik-dev"
    },
    {
      "commit": "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5",
      "tree": "5298ccd9c1f1f6b329c0cb6cefac6a8df43dd633",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 12 21:33:12 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 25 20:28:49 2013 -0700"
      },
      "message": "Split the allocation path into \u0027instrumented\u0027 and \u0027uninstrumented\u0027\nones.\n\nThe instrumented path is equivalent to the existing allocation path\nthat checks for three instrumentation mechanisms (the debugger\nallocation tracking, the runtime allocation stats collection, and\nvalgrind) for every allocation. The uinstrumented path does not\nperform these checks. We use the uninstrumented path by default and\nenable the instrumented path only when any of the three mechanisms is\nenabled. The uninstrumented version of Heap::AllocObject() is inlined.\n\nThis change improves the Ritz MemAllocTest by ~4% on Nexus 4 and ~3%\non Host/x86.\n\nBug: 9986565\nChange-Id: I3e68dfff6789d77bbdcea98457b694e1b5fcef5f\n"
    },
    {
      "commit": "530825ba92e317822116efffd470577ddfd142d4",
      "tree": "b8b2d8966a21a9ce630dd0e57949326e79a56bfc",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 17:56:49 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 18:01:14 2013 -0700"
      },
      "message": "Make InternalStackTraceToStackTraceElementArray compaction safe.\n\nAdded more SOA decodes.\n\nChange-Id: Idbfd546467582a848be91c358c6926a6e472fbff\n"
    },
    {
      "commit": "a9a624b2be2180e6bd33f02c89fb8521376a2e8c",
      "tree": "c6b993d3a16f1513ca6bde12e5a8b7844f43adf8",
      "parents": [
        "e4ef0953b6a27f00a93b4807cd1ff668f4fbeb22",
        "2921201dce37ba40c55b89c0deca3c34bf64168e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 09:40:46 2013 -0700"
      },
      "message": "am 2921201d: Remove some non-const references in utils\n\n* commit \u00272921201dce37ba40c55b89c0deca3c34bf64168e\u0027:\n  Remove some non-const references in utils\n"
    },
    {
      "commit": "2921201dce37ba40c55b89c0deca3c34bf64168e",
      "tree": "2222b4bf7a53864c1bf514bb68e0053a966da3e5",
      "parents": [
        "bb0140e051e62ca0b51b0870c2386ae3110b0556"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 12 22:18:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:43:29 2013 -0700"
      },
      "message": "Remove some non-const references in utils\n\nChange-Id: Ib2d3c39fadb6a750c68c37b0aa53daab155a65a3\n"
    },
    {
      "commit": "810b1d704f2db0d935bf5dddae3545f79cabd435",
      "tree": "baf1ec61b47031244cb1fe2458b136c9f9d54f1f",
      "parents": [
        "5c00e28cdc7da675451869a2e5baa8f1c3244892",
        "bb0140e051e62ca0b51b0870c2386ae3110b0556"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 14:02:02 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 14:02:02 2013 -0700"
      },
      "message": "resolved conflicts for merge of bb0140e0 to dalvik-dev\n\nChange-Id: I31e0c05c5e917cf3275296a7f65bd8b78ec9b78b\n"
    },
    {
      "commit": "c11d9b8870de5f860b13c84003ade7b3f3125a52",
      "tree": "89b0250d35a950774f98fa1abfa9cc296c9d85db",
      "parents": [
        "261d3cda32b28782d894be0244e617f78182ee3b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 19 10:01:59 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 20 10:36:49 2013 -0700"
      },
      "message": "Re-enable concurrent system weak sweeping.\n\nEnabled by disallowing new system weaks during the pause and\nre-allowing it after the system weaks have been swept. Reduces\nGC pause by ~1ms.\n\nFixes pause regression caused by fix for\nBug: 10626133\n\nChange-Id: If49d33e7ef19cb728ed3cef5187acfa53b9b05d8\n"
    },
    {
      "commit": "8b2c0b9abc3f520495f4387ea040132ba85cae69",
      "tree": "13ea7e5c4e3d1804ec8d420d36f7ea5ab18f6ac0",
      "parents": [
        "5712d5d04640925970db9c98938ffaf806b3962c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 02:56:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 15:17:12 2013 -0700"
      },
      "message": "Use class def index from java.lang.Class.\n\nBug: 10244719\nDepends on:\nhttps://googleplex-android-review.git.corp.google.com/362363\nThis removes the computation of the dex file index, when necessary this is\ncomputed by searching the dex file. Its only necessary in\ndalvik.system.DexFile.defineClassNative and DexFile::FindInClassPath, the\nlatter not showing up significantly in profiling with this change.\n\nChange-Id: I20c73a3b17d86286428ab0fd21bc13f51f36c85c\n"
    },
    {
      "commit": "423d2a3dcbb260b020efb5da59f784c9f02accbf",
      "tree": "79ed739e6072f8308c1cd880f9420a1c63539c95",
      "parents": [
        "b048dd2b662c19644361f4396a1e8d6213445ee8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 17:33:56 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 10:30:24 2013 -0700"
      },
      "message": "Add support for changing roots through the root visitor callback.\n\nNeeded for copying collectors.\n\nChange-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877\n"
    },
    {
      "commit": "2e450bf45e1bacc9c356f6ab239ccfb31bd8d7e4",
      "tree": "d695b5a0aa5049ed3936a65ab69b409e2eceb818",
      "parents": [
        "dd3c27eeb8286ab53d8a2f1aec76a7a919ba353a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 06 15:39:46 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 06 15:43:51 2013 -0700"
      },
      "message": "Revert \"Remove bogus fastpath from String::Equals(const StringPiece\u0026)\"\n\nThis reverts commit 8438ed31e10f3881ed92f03877d5edaca7d5b48c.\n\nBug: 10614658\nChange-Id: I335f10a7140e1644957bc1cee21a9b310a558499\n"
    },
    {
      "commit": "8438ed31e10f3881ed92f03877d5edaca7d5b48c",
      "tree": "a29524e6974a58d593362b49217649dc9a39f496",
      "parents": [
        "51db7beb7faaea43d697321520732d1d71288f50"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 04 17:17:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 06 12:38:20 2013 -0700"
      },
      "message": "Remove bogus fastpath from String::Equals(const StringPiece\u0026)\n\nBug: 10614658\nChange-Id: I907ec77a65c1ae29e800356abdf755a457620081\n"
    },
    {
      "commit": "ba311b4385fa3f382f01312a8cc97b52011232e3",
      "tree": "2243c216174e2decae3ce920be6b6c2a0478128d",
      "parents": [
        "11b63d13f0a3be0f74390b66b58614a37f9aa6c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 27 13:02:30 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 27 17:08:59 2013 -0700"
      },
      "message": "Fix mark stack expand race.\n\nWe now guard parallel mark stack pushing with a lock. This is\nonly used by checkpoint root marking. I did not observe a\nsignificant slowdown by looking at ritzperf and maps, but it may\nbe worth reinvestigating in the future.\n\nAlso a bit of refactoring.\n\nBug: 10113123\n\nChange-Id: Ifcb12d14df437e2aea9a1165a9568054f80d91b3\n"
    },
    {
      "commit": "b8a0b94735f188bc739e4c55479c37699006b881",
      "tree": "6620437e5019924f9da7b1c9a6408cf4a113b3e5",
      "parents": [
        "aa836f7fa2ef359cf8ec1ef98d924f7971ba8352"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 18:09:52 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 18:11:09 2013 -0700"
      },
      "message": "Switch JNI globals lock to reader-writer.\n\nAlso, verifier rejected classes lock. These locks show as contended during\ndex2oat, however, they\u0027re commonly only read access is required.\n\nChange-Id: If8bb834cc69cd8c26494c87fb7f7b20d4e41cdfd\n"
    },
    {
      "commit": "65530499a0169b3b0b153008e2d187c9f4939541",
      "tree": "cecf31deac4ccba4152d2fb39d3427cebf95e8d8",
      "parents": [
        "5bf1d38c0f0294a6632c0c6b2c0ba6bd642aa1c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 19 08:54:22 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 19 08:55:24 2013 -0700"
      },
      "message": "Build fix.\n\nA static field was moved from an inner to an outer class in ConcurrentHashMap\nleading to a disallowed call.\nAlso, tidy comments on other java.util.concurrent black listed classes.\n\nChange-Id: Iccd808766dcd5406a5bb49a4b98f570606730250\n"
    },
    {
      "commit": "5ce4b178d2483df679e7f718e379305e5d42a300",
      "tree": "509c9e3b79448038e7263c147fdcc3fde7708cc6",
      "parents": [
        "212ec8f32919d50a1e1cb7ea4b3b91ca938ae4e6"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 16 16:27:18 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 16 16:57:04 2013 -0700"
      },
      "message": "Clean up sampling tracing.\n\n- Moved maps to fields within thread.\n- Created temp trace field to lessen amount of traces allocated and freed.\n\nChange-Id: I23fe25a85ad2894cc6917f87d4046cdececf0739\n"
    },
    {
      "commit": "57dac6ed61a0a25c14d4e2fabc84435578d42360",
      "tree": "9cb004e94b313f8aae2b0a29b4b9241bd207ec74",
      "parents": [
        "a68f43fa91531b2e8fe73fa5a5731f18a80ff801"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 15 16:36:24 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 15 16:36:24 2013 -0700"
      },
      "message": "Fix sampling profiler to use thread\u0027s cpu clock.\n\nThe sampling profiler was using the sampling thread\u0027s cpu clock to\nmeasure cpu time, instead of the sampled thread\u0027s cpu clock.\n\nChange-Id: Ief1f82e07e0353192c61521f67dec7a761905f64\n"
    },
    {
      "commit": "7571e8b761ebc2c923525e12ea9fcf07e62cb33e",
      "tree": "5d90ecf4d0ba1a72b040a376f227df1ba9278889",
      "parents": [
        "2e250c826b3c405d675017efe79e5db3651c9ee6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 12 17:04:14 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 15 10:33:53 2013 -0700"
      },
      "message": "Add flock(2)ing on dex-cache files to prevent races\n\nBug: 9071417\nChange-Id: I1ee9ff281867f90fba7a8ed8bbf06b33ac29d511\n"
    },
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "1809a72a66d245ae598582d658b93a24ac3bf01e",
      "tree": "f864ff869185b2873637ca70584c66fd6a1e899d",
      "parents": [
        "a9a50926963b5093fb851ed966d201f3e95f72d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:05:32 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 09 22:23:50 2013 -0700"
      },
      "message": "Uleb128 compression of vmap and mapping table.\n\nBug 9437697.\n\nChange-Id: I30bcb97d12cd8b46d3b2cdcbdd358f08fbb9947a\n"
    },
    {
      "commit": "848871b4d8481229c32e0d048a9856e5a9a17ef9",
      "tree": "4be4602e3becc899f76a29a87618801458fe04b9",
      "parents": [
        "423fb4d70f2ac36bf9f630146b4150771a8e7e76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 05 10:56:33 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 22:17:00 2013 -0700"
      },
      "message": "Entry point clean up.\n\nCreate set of entry points needed for image methods to avoid fix-up at load time:\n - interpreter - bridge to interpreter, bridge to compiled code\n - jni - dlsym lookup\n - quick - resolution and bridge to interpreter\n - portable - resolution and bridge to interpreter\n\nFix JNI work around to use JNI work around argument rewriting code that\u0027d been\naccidentally disabled.\nRemove abstact method error stub, use interpreter bridge instead.\nConsolidate trampoline (previously stub) generation in generic helper.\nSimplify trampolines to jump directly into assembly code, keeps stack crawlable.\nDex: replace use of int with ThreadOffset for values that are thread offsets.\nTidy entry point routines between interpreter, jni, quick and portable.\n\nChange-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e\n"
    },
    {
      "commit": "7655f29fabc0a12765de828914a18314382e5a35",
      "tree": "219f2df20cf7f053a73a345ae20e131a73759c79",
      "parents": [
        "1a8080d4c2e1772cfcc5e9d6587bc63bba3945d9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 11:07:13 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 30 16:00:24 2013 -0700"
      },
      "message": "Portable refactorings.\n\nSeparate quick from portable entrypoints.\nMove architectural dependencies into arch.\n\nChange-Id: I9adbc0a9782e2959fdc3308215f01e3107632b7c\n"
    },
    {
      "commit": "c449aa8151bf81d93d22ff24677ccf09a6da218e",
      "tree": "343274bb1e635bc503ae0ffc44c68ec44f6b69e5",
      "parents": [
        "c95d6b1cb35b382804b9a310d32f66059eca65d9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 14:35:46 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 14:45:07 2013 -0700"
      },
      "message": "Clear exception if catch block doesn\u0027t have move-exception.\n\nBug: 10040419\n\nChange-Id: Icc7a55cb3cdfbc3efd2b161bbe22b3e5007de35f\n"
    },
    {
      "commit": "166db04e259ca51838c311891598664deeed85ad",
      "tree": "5ffa63c1b3bf58e92be2890c54f0ba6fdec2059e",
      "parents": [
        "d41119e863a9f9c5809b7732d30870ffd237b60c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 26 12:05:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 09:52:11 2013 -0700"
      },
      "message": "Move assembler out of runtime into compiler/utils.\n\nOther directory layout bits of clean up. There is still work to separate quick\nand portable in some files (e.g. argument visitor, proxy..).\n\nChange-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "fb2802da02337309ac64970e06c90bb3b1b1de3f",
      "tree": "a4546a7d6bacd83e2b6ae3acd1dec673610a6c23",
      "parents": [
        "8f20ff4354fd3fdd7604a299b7bf4446e5f4584c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 24 13:53:05 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 24 13:53:05 2013 -0700"
      },
      "message": "Fixes to instrumentation and quick to interpreter entry.\n\n- Interpreter entry was missing check that a static method is\n  initialized.\n- Fixed instrumentation stack unwinding to not pop off the handler\n  frame only if it actually exists on the instrumentation stack.\n\nChange-Id: I05a96ea7c0aea4dc6552da0edf485856cd004d85\n"
    },
    {
      "commit": "b9070095218595a5d6a37ef874df2794c1761030",
      "tree": "cab984d0ac72b8df4915f75277cd7efe0e8c9a3e",
      "parents": [
        "08524597899d0bb021c9165218deff51dc88da50",
        "df62950e7a32031b82360c407d46a37b94188fbb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 10:50:06 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 10:50:06 2013 -0700"
      },
      "message": "resolved conflicts for merge of df62950e to dalvik-dev\n\nChange-Id: I78fbcfc7a2dcbeccb7557ca27302928d7d00debd\n"
    },
    {
      "commit": "08524597899d0bb021c9165218deff51dc88da50",
      "tree": "e8677f76fdc2fb23017eca6dc8c528eef2451594",
      "parents": [
        "073deb8dda59ba42ad563f0453daa09a359edef7",
        "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 00:18:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 18 00:18:05 2013 -0700"
      },
      "message": "am 0cd7ec2d: Fix cpplint whitespace/blank_line issues\n\n* commit \u00270cd7ec2dcd8d7ba30bf3ca420b40dac52849876c\u0027:\n  Fix cpplint whitespace/blank_line issues\n"
    },
    {
      "commit": "df62950e7a32031b82360c407d46a37b94188fbb",
      "tree": "038bf95a2ce296ae3e0c30a131ac22c0986f0f52",
      "parents": [
        "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 22:39:56 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 00:13:18 2013 -0700"
      },
      "message": "Fix cpplint whitespace/parens issues\n\nChange-Id: Ifc678d59a8bed24ffddde5a0e543620b17b0aba9\n"
    },
    {
      "commit": "0cd7ec2dcd8d7ba30bf3ca420b40dac52849876c",
      "tree": "525a0f99f9381156367c988133b5d51d5dfef6f7",
      "parents": [
        "f69863b3039fc621ff4250e262d2a024d5e79ec8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 23:40:20 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 00:12:43 2013 -0700"
      },
      "message": "Fix cpplint whitespace/blank_line issues\n\nChange-Id: Ice937e95e23dd622c17054551d4ae4cebd0ef8a2\n"
    },
    {
      "commit": "073deb8dda59ba42ad563f0453daa09a359edef7",
      "tree": "56810137f399d49bf8d93e51265641d44e2ea6a4",
      "parents": [
        "b267c89acd0fcda0e8e2a9eeaeeed9ee048d1abc",
        "f69863b3039fc621ff4250e262d2a024d5e79ec8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 23:56:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 17 23:56:17 2013 -0700"
      },
      "message": "am f69863b3: Fix cpplint whitespace/newline issues\n\n* commit \u0027f69863b3039fc621ff4250e262d2a024d5e79ec8\u0027:\n  Fix cpplint whitespace/newline issues\n"
    },
    {
      "commit": "f69863b3039fc621ff4250e262d2a024d5e79ec8",
      "tree": "b6d40c4019de2155f8753f83b4750bd3a3514d7a",
      "parents": [
        "93ba893c20532990a430741e0a97212900094e8c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:53:13 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 23:23:12 2013 -0700"
      },
      "message": "Fix cpplint whitespace/newline issues\n\nChange-Id: Ie2049d9f667339e41f36c4f5d09f0d10d8d2c762\n"
    },
    {
      "commit": "b267c89acd0fcda0e8e2a9eeaeeed9ee048d1abc",
      "tree": "6c6cdd913669f09eff4c3aa2b820a39ed0f3a937",
      "parents": [
        "397f477582243bdffed603a73ff5a06ee295d7fb",
        "93ba893c20532990a430741e0a97212900094e8c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:52:25 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 17 21:52:25 2013 -0700"
      },
      "message": "am 93ba893c: Fix cpplint runtime/explicit issues\n\n* commit \u002793ba893c20532990a430741e0a97212900094e8c\u0027:\n  Fix cpplint runtime/explicit issues\n"
    },
    {
      "commit": "397f477582243bdffed603a73ff5a06ee295d7fb",
      "tree": "c2a986b2081c40ff0b9411e3bed117adcf69a59b",
      "parents": [
        "98c19d201b83119cbadd9aa3966fd0fb86064813",
        "b1eba213afaf7fa6445de863ddc9680ab99762ea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:52:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 17 21:52:24 2013 -0700"
      },
      "message": "am b1eba213: Fix cpplint whitespace/comma issues\n\n* commit \u0027b1eba213afaf7fa6445de863ddc9680ab99762ea\u0027:\n  Fix cpplint whitespace/comma issues\n"
    },
    {
      "commit": "93ba893c20532990a430741e0a97212900094e8c",
      "tree": "019990a1957562c1f573c77297df5923cce98f47",
      "parents": [
        "b1eba213afaf7fa6445de863ddc9680ab99762ea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:31:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:12 2013 -0700"
      },
      "message": "Fix cpplint runtime/explicit issues\n\nChange-Id: I352ba0b427f1ff9b22887693952b180eae0839ba\n"
    },
    {
      "commit": "b1eba213afaf7fa6445de863ddc9680ab99762ea",
      "tree": "c0a3000df1037211a6bcc7d75db51ee5c6069ec8",
      "parents": [
        "2ce745c06271d5223d57dbf08117b20d5b60694a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 18:07:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:11 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comma issues\n\nChange-Id: I456fc8d80371d6dfc07e6d109b7f478c25602b65\n"
    },
    {
      "commit": "7405448c6c467d609b64e15f9c6fd19932bc9fde",
      "tree": "6cbf4ac02bcde043d27c2d85aee0a48b83c6c5bf",
      "parents": [
        "61ecc585bd4d2ae64f6cb6cd4524a3292ff4f201",
        "6d69f592696f3bbd3bb0978ae3b25f2c359aac0d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 10:26:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 17 10:26:09 2013 -0700"
      },
      "message": "am 6d69f592: Fix thread initialization issue when runtime started twice (as seen in image_test)\n\n* commit \u00276d69f592696f3bbd3bb0978ae3b25f2c359aac0d\u0027:\n  Fix thread initialization issue when runtime started twice (as seen in image_test)\n"
    },
    {
      "commit": "6d69f592696f3bbd3bb0978ae3b25f2c359aac0d",
      "tree": "5a9555d8149ab2eddf80197e47ffe6336c07f060",
      "parents": [
        "17bfe263d8a37aa4da4c5088e4245dedaebc3ff8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 16 17:18:16 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 10:18:59 2013 -0700"
      },
      "message": "Fix thread initialization issue when runtime started twice (as seen in image_test)\n\nChange-Id: Ic20758ee64c1b2c41cd2329cf6d66b15d0ac2473\n"
    },
    {
      "commit": "d6a23bd327c38b08aaf6846d426fd6824fe9780b",
      "tree": "73dd31e20ce3a6cf13d55e91bc89ab0638dbd5d1",
      "parents": [
        "1754938e68bf53d674ffac364336a5dd2f3a60f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 14:19:52 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 16 14:19:52 2013 -0700"
      },
      "message": "Don\u0027t manually mess with sigaltstack on Android any more.\n\nBionic now takes care of things.\n\nBug: 8557703\nChange-Id: I0510a193f2433eaf54c9c6ac3415c85b50a7f1d2\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "752a0e606afdc7aa4825ebbe62b187b8abba14cc",
      "tree": "0227935df9d993321812a126e6cfbaf13dd78d79",
      "parents": [
        "b126134010ebeee771da0eec7fa76ad13fe9a9c9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 27 11:03:27 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 27 14:38:48 2013 -0700"
      },
      "message": "Adding systrace logging to GC\n\nAdded systrace logging to GC, thread checkpoints, GC pause,\nand time spent waiting for concurrent GC to complete.\n\nChange-Id: I33f0cf260526ccfd07bfaf038dfbf0a712eab24d\n"
    },
    {
      "commit": "1e2ee7de9dff66f7ca2bdf83a7262e21d75b37d1",
      "tree": "d5d22869403943faccf457c3d010ad459b94f8bb",
      "parents": [
        "1d54e73444e017d3a65234e0f193846f3e27472b",
        "3c50a4b4ba6d7d9369ee9a0bd6d30bf4c9c79bb0"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Jun 21 20:13:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 21 20:13:24 2013 +0000"
      },
      "message": "Merge \"Rename vmData\" into dalvik-dev"
    },
    {
      "commit": "3c50a4b4ba6d7d9369ee9a0bd6d30bf4c9c79bb0",
      "tree": "dd109268a189e95339509b0bbfa7a95a3d6065af",
      "parents": [
        "7eacac472e360b337f8af565dfba862a194ce4ea"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Jun 21 13:05:23 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Jun 21 13:05:23 2013 -0700"
      },
      "message": "Rename vmData\n\nChange-Id: I34e49e56187bbb27cb892721084f6d69c2eaacce\n"
    },
    {
      "commit": "1d54e73444e017d3a65234e0f193846f3e27472b",
      "tree": "1de93661e95a0ce6fa78fdfc23d0cfd3dd2a06f7",
      "parents": [
        "4c22e7eabef3f815841dfc6e0d5bbead96150752"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 02 21:10:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 21 11:10:42 2013 -0700"
      },
      "message": "GC clean up.\n\nGreater use of directories and namespaces.\nFix bugs that cause verify options to fail.\nAddress numerous other issues:\n\nGC barrier wait occurring holding locks:\nGC barrier waits occur when we wait for threads to run the check point function\non themselves. This is happening with the heap bitmap and mutator lock held\nmeaning that a thread that tries to take either lock exclusively will block\nwaiting on a thread that is waiting. If this thread is the thread we\u0027re waiting\nto run the check point then the VM will deadlock.\nThis deadlock occurred unnoticed as the call to check for wait safety was\nremoved in: https://googleplex-android-review.googlesource.com/#/c/249423/1.\n\nNewTimingLogger:\nExisting timing log states when a split ends but not when it begins. This isn\u0027t\ngood for systrace, in the context of GC it means that races between mutators\nand the GC are hard to discover what phase the GC is in, we know what phase it\njust finished and derive but that\u0027s not ideal.\n\nSupport for only 1 discontinuous space:\nCode special cases continuous and large object space, rather than assuming we\ncan have a collection of both.\n\nSorted atomic stacks:\nUsed to improve verification performance. Simplify their use and add extra\nchecks.\n\nSimplify mod-union table abstractions.\n\nReduce use of std::strings and their associated overhead in hot code.\n\nMake time units of fields explicit.\n\nReduce confusion that IsAllocSpace is really IsDlMallocSpace.\n\nMake GetTotalMemory (exposed via System) equal to the footprint (as in Dalvik)\nrather than the max memory footprint.\n\nChange-Id: Ie87067140fa4499b15edab691fe6565d79599812\n"
    },
    {
      "commit": "3c539ffccabada93c404c0dfba8b52926ae06d0c",
      "tree": "e3cb6ad4bb75ef94e0267be2c3945bc9b0d8fdeb",
      "parents": [
        "45478f42a780d9852892c97c876d5d969d26533c"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jun 20 08:58:23 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jun 20 08:58:23 2013 -0700"
      },
      "message": "Improve Logging\n\nA couple of changes here to improve logging. First, we eliminate some red herrings when a java app\nis aborting by guarding some lock invariant checking when aborting.  Second, we print the name of the\nthread (if it exists) if we try to suspend a thread with no peer.  A separate CL is coming that\neliminates most, if not all, of the occurences of this that we\u0027re seeing on device.\n\nChange-Id: I9177e45462b1f0ff9b88be4d72c7d77edf6ac43c\n"
    },
    {
      "commit": "0dc9d342bed34c3f1ce5268ff7a6e27cdb9490d9",
      "tree": "5f66873965e314b8897799b38e10003af247df3c",
      "parents": [
        "45ee8ebcc4a5eb2ca888f8ccd20d64207791aedc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jun 10 11:34:34 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jun 10 11:34:34 2013 -0700"
      },
      "message": "Add missing ENTRY_POINT_INFOs.\n\nMissed in change 0aba0ba155bef7346bde19e53581200b89ae8a7a.\n\nChange-Id: Ib85514184c8c58ca37a8de95a5d27b8771dabd55\n"
    },
    {
      "commit": "0aba0ba155bef7346bde19e53581200b89ae8a7a",
      "tree": "6590f8a50bde7c30b57f1bb0ae67c6d88cea8116",
      "parents": [
        "515661b14b60ab9684efa1ab1d5124934406094e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 03 14:49:28 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 14:43:24 2013 -0700"
      },
      "message": "Created compiled stubs in image.\n\nSaves class linker from having to set code pointers when loading\nfrom an image. Added stubs for quick and portable resolution\ntrampolines, and interpreter-to-interpreter and interpreter-to-quick\nentry points. Also added sizing stats output for oat writer.\n\nChange-Id: I3905fae81047742c23d1cf0ca001db798db971b1\n"
    },
    {
      "commit": "d090cf4f2420a228251e27dbae600f4f44ae2c57",
      "tree": "bee68fc19e535effde1f0a6d3f0130a6df9b97cb",
      "parents": [
        "9b36039438c06e3c39324914fc13389b36c68dd2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 06 15:35:18 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 06 15:39:59 2013 -0700"
      },
      "message": "Always dump stacks if we\u0027re aborting.\n\nIn Bug:9285048 we don\u0027t see the stack of the offending thread as it is not\nsuspending. Break thread-safety by attempting to dump all threads when the\nglobal aborting flag is raised.\n\nChange-Id: Icb72642833e73ed4c06fa2771695fcd6d9899c78\n"
    },
    {
      "commit": "ca39692028741f795132d68fe24f43488eeaae3b",
      "tree": "d71d4ef13fec33abb6e6476f9e8689ff50f0dea9",
      "parents": [
        "33e15bcb4c0873cbce9d039fbc9bc7f4cf257765",
        "33e9566255c426e7a2c8fca5b8a1b6a94a5d352c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 21 14:59:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 21 14:59:00 2013 +0000"
      },
      "message": "Merge \"Various GCC 3.6 and clang build fixes.\" into dalvik-dev"
    },
    {
      "commit": "33e9566255c426e7a2c8fca5b8a1b6a94a5d352c",
      "tree": "80965d3d329c09ec5a574863a356562e42f639ff",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:29:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 21:16:03 2013 -0700"
      },
      "message": "Various GCC 3.6 and clang build fixes.\n\nRemove #error in common_test.h that fires with clang build and replace with\nruntime error.\nFix bit rot caused by not compiling with Wthread-safety.\nFix clang build issues in compiler relating to missing header file definitions\nin object files.\nOther minor build and tidying issues.\n\nChange-Id: Ife829ab0664581936155be524de46e6181c750b0\n"
    },
    {
      "commit": "33e15bcb4c0873cbce9d039fbc9bc7f4cf257765",
      "tree": "72ef6a1befcf021ee23c76a199d8f5bbdd6da51a",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:04:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:36:20 2013 -0700"
      },
      "message": "Fix bug in OOME inside an OOME hampering run-test 061.\n\nIf we\u0027re throwing an OOME inside an OOME we don\u0027t want to clear the current\nthread\u0027s throwing OOME flag.\n\nChange-Id: I9aa362263dc4fca84f3d3a629c480112c3263008\n"
    },
    {
      "commit": "79fe539587d4c09244172d0168eeed0ec9770466",
      "tree": "4fb8fbd03727a74acb4dfde7e969adf32ee32750",
      "parents": [
        "09b55e1df3b0bcecee25882e45e882887cc8654f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 18:41:58 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 14:50:52 2013 -0700"
      },
      "message": "Removing remaining compiled stubs from image.\n\nAbstract method error stub and jni dlsym lookup stubs are gone.\nAfter this change, the image no longer needs to be executable.\n\nChange-Id: Ic75d72bf7e76e3b8ecc596e82af68ab592dde15e\n"
    },
    {
      "commit": "a6227676df130164322b1ac66a429eb0bfd0df62",
      "tree": "b9d115ba5a49654bec45edb7125eeb57e4696fd6",
      "parents": [
        "58df32711162823647356afe25ae2cde04133563"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 20:56:54 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 20:57:41 2013 -0700"
      },
      "message": "Robustify Thread::DumpState.\n\nCheck Thread::Current isn\u0027t NULL before using in ScopedObjectAccess that will\nattempt to dereference it.\n\nChange-Id: Ia3fc84dbf649edfa7fda5202abf9e397a794e0cd\n"
    },
    {
      "commit": "58df32711162823647356afe25ae2cde04133563",
      "tree": "df1b2b43b90f4861b475f1452b175353a56ec3d7",
      "parents": [
        "ede1807e3481a6937416964bb7556364f2d428e1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 22 15:28:53 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 23 16:34:16 2013 -0700"
      },
      "message": "Removed compiled resolution trampoline.\n\nCreated assembly versions of resolution trampoline for portable and\nquick. Removed compiled version from the image.\n\nChange-Id: I183e110c4e102fb45ce6e7f4e855f8bed7986251\n"
    },
    {
      "commit": "0878d654e7be8c9666579e22522704d8887415cc",
      "tree": "0e57c50e7f47a01900e540c0b5e509df4297afed",
      "parents": [
        "f8adc60455b90c95a6a3c8f87830e4e88b2644e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:38:35 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:42:02 2013 -0700"
      },
      "message": "Thread tidying.\n\nAdd is_started_ boolean to Thread so that we don\u0027t read an uncreated\npthread_key_self_, don\u0027t start twice or call shutdown when not started.\nDon\u0027t use a MutexLock in ThreadList::Unregister, as the MutexLock will\nhold a copy of self for the thread that\u0027s deleted.\nDon\u0027t memory leak the resume condition variable.\n\nChange-Id: I767968a9f785e560fc9e356a339e684de5ce2ffc\n"
    },
    {
      "commit": "ee9889502a34a08741a6f8ecc02917202de9d773",
      "tree": "cdcfd55a15efe64b9acc14c9f0ab7d901f5a07c9",
      "parents": [
        "3e13ae7b85cc559f72bde6d2a3de61b9792f7de5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 16 14:23:47 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 16 14:41:14 2013 -0700"
      },
      "message": "Add bool to verifier to allow soft failures.\n\nWhen false, soft failures in the verifier become hard failures. It should\nonly be false when not compiling, and calling the verifier from the class\nlinker.\n\nChange-Id: I664e5cbe491784b280aa5bfdb7e7fc0b771814f5\n"
    },
    {
      "commit": "ed1790e83352e54420018d1495eb010f7cd48a64",
      "tree": "0c7f5edca116ca3acb53187cd65578061dda2cb2",
      "parents": [
        "b6026daec5f7888da79f4a6bfc17eb2d6a0d869d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 12 09:58:14 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 12 09:58:14 2013 -0700"
      },
      "message": "Add some comments about thread dumping and suspension.\n\nChange-Id: I7903a363f8ab37a6af936dd963e6a321d61c3084\n"
    },
    {
      "commit": "f08e473519dc5c7ccb85eb2b333f9d0aff23a329",
      "tree": "796cb1f9102e07c33de163281a2e34af5bf634d0",
      "parents": [
        "10e75abe80fc86ff5a6a5b4b3bcef382b3c596be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 09 09:45:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 09 09:45:49 2013 -0700"
      },
      "message": "Fix abort regression.\n\nChange https://googleplex-android-review.googlesource.com/#/c/249463/ set a\nboolean prior to testing it meaning that all aborts were seen as recursive and\nno meaningful log information was given.\n\nAlso a fix related to https://googleplex-android-review.googlesource.com/293665\nwhere we were attempting to dump other threads stacks during aborting even\nthough those threads weren\u0027t suspended.\n\nChange-Id: I1f848512c5e380529579db3d16bb8f5ddda36ad3\n"
    },
    {
      "commit": "62d6c772205b8859f0ebf7ad105402ec4c3e2e01",
      "tree": "e2f2ba6d71ed5a39c9f6909e3f7c08e998053315",
      "parents": [
        "c9b17c7ee96cd04fac9048aab624ed554fe260bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 08:32:07 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 08 14:24:13 2013 -0700"
      },
      "message": "Interpreter entries and instrumentation as a listener.\n\nMake the instrumentation responsible for whether we want method entry/exit\nstubs, and allow it to use interpreter entry stubs when instruction by\ninstruction instrumentation is required. Improve deoptimization so more JDWP\ntest cases are passing.\n\nRefactor exception debug posting, in particular improve reporting in the\ninterpreter. Improve class linker exception throwing so that broken dex files\nare more likely to be reported. Fixes the performance issue Bug: 8410519.\n\nFix some error reporting lock level errors for the large object space. Make\nfast object verification faster.\n\nAdd some debug mode robustness to finding dex PCs in GC maps.\n\nAdd printf attributes to JniAbortF and fix errors.\n\nExpand run-test 044 to test return behaviors and fix issues with not throwing\nappropriate exceptions for proxies.\n\nEnsure causes are reported with a class linker NoClassDefFoundError and JNI\nNoSuchFieldError.\n\nRemove unused debugMe and updateDebuggerFromCode.\n\nThere\u0027s a minor sizing tweak to the arg array builder, and an extra reference\narray check in the interpreter.\n\nSome clean-up of trace code.\n\nFix reg type cache destructor if it is called after the reg type cache is\nshutdown (as is the case in oatdump).\n\nChange-Id: I6519c7b35df77f978d011999354c864f4918e8ce\n"
    },
    {
      "commit": "aef701da38d14bd479cb275f78e2adaa00f1c54a",
      "tree": "7f435bffea07f732f5bdb720aabc71c497cef40a",
      "parents": [
        "5fa60c3db4208df407113b5a69d295a9c93d53b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 05 18:15:40 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 05 18:15:40 2013 -0700"
      },
      "message": "Dump native stacks for all threads in native code.\n\nart port of dalvik change 890ce010c4846deb82d3ac09b6d2ceb76e59fb67.\n\nBug: 7432159\nChange-Id: Iea1cb9d60fee2ca197f056116836408675b076e6\n"
    },
    {
      "commit": "bf393efe476801b7f27fe6aa47691e3305552e9e",
      "tree": "2bfd05752781815306c115e40aab2b5fef10dfd0",
      "parents": [
        "c404bfb072f9273beb13bf8e098e2a4aa108f18b",
        "b56812165dd3a2e6eb8b85c810943b3d7bd9bfc4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 14:41:33 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 30 14:41:33 2013 -0700"
      },
      "message": "Merge branch \u0027dalvik-dev\u0027 of https://googleplex-android.googlesource.com/a/platform/art into fixes-for-art-build-with-mr2\n\nChange-Id: Ie46d1f77f98b8a6f55f02b8614cb88b36b6a2d44\n"
    },
    {
      "commit": "6474d190d5604898354ebf767f1944b6e3e9b445",
      "tree": "ac4be675c62fd8129fe85f740dcd2e3bfee424e2",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 14:08:09 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 16:03:53 2013 -0700"
      },
      "message": "Remove use of compiled invoke stubs from portable.\n\nNow the invoke stubs can be safely removed. Tested and working on ARM,\nbasic testing done on x86/MIPS, but portable is currently broken for them\neven without the change.\n\nChange-Id: Ib73f2b7aa9d81f5f0e1e817d16b9bec464c5a5aa\n"
    },
    {
      "commit": "52e55cbc6d18694556176b58ef79b5ae52c8039c",
      "tree": "c4e2784e0420ff89f6304a5a649a948783a62ef9",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 22 09:56:53 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Mar 22 09:56:53 2013 -0700"
      },
      "message": "Remove gcc-based tsan support\n\nChange-Id: I145331e295f69e99408e03cb59df26fb337510f5\n"
    },
    {
      "commit": "4f6ad8ab428038129b2d0d6c40b7fd625cca15e1",
      "tree": "d1025ed9203d0cdf7aa959d9cecd8dc1f0c0bfeb",
      "parents": [
        "aabe8adacc7bf3a8ab6f6f3dd37fc839b6fd762f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:27:28 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:29:59 2013 -0700"
      },
      "message": "Various performance improvements.\n\nPerformance had regressed due to verify object and method invocation changes.\nAvoid trampolines for static calls in same class.\nVarious inlining changes.\nMake verify object something that\u0027s only compiled-in in debug builds.\n\nChange-Id: Ia261a52232c3b10667c668f8adfadc0da3048bc5\n"
    },
    {
      "commit": "25337eb2b20e7d058b7fa4b549df01774d57c88a",
      "tree": "bbc3ec4a7696eb0abfbc3ed6d9710cf26a1e7bab",
      "parents": [
        "19ca8cf52b9f825c48e7a52da6f25af4d97a263d",
        "04d7aa92bc5548bc4d272b9480614f06248194cc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 16 21:40:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 16 21:40:18 2013 +0000"
      },
      "message": "Merge \"Fix object verification.\" into dalvik-dev"
    },
    {
      "commit": "04d7aa92bc5548bc4d272b9480614f06248194cc",
      "tree": "2b399853daab91995488c7d19a694063262f6531",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 16 14:29:17 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 16 14:29:17 2013 -0700"
      },
      "message": "Fix object verification.\n\nRefactor VERIFY_OBJECT_ENABLED to become less brittle to change enum and global\nconstant.\n\nChange-Id: Ie405106be81dce9a913730c7f46a5659582fa18b\n"
    },
    {
      "commit": "5d9173014c1ca09f7249a6b07629aa37778b5f8f",
      "tree": "80543dbe9af6795212373bb12532b638ff3b22f3",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 27 17:57:33 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 14:18:28 2013 -0700"
      },
      "message": "Changes to remove need for compiled invoke stubs for quick.\n\nARM, x86, and MIPS implementation complete, though MIPS is untested.\n\nThe ArgArray is changed to be a uint32_t array instead of a JValue array.\nAlso, a separate result for float/double was needed for x86/MIPS. The invoke\nstubs are currently still there, but only used for portable.\n\nChange-Id: I0647f8d5d420cea61370e662e85bdc0c13b5e378\n"
    },
    {
      "commit": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\n"
    }
  ],
  "next": "0f827169742aad6209d830db773a101849c32a83"
}
