)]}'
{
  "log": [
    {
      "commit": "607fa7b07233a7233ebe21bba8f3e7c1925ae0f2",
      "tree": "a04f1074331ac82ad077044e3f373312f61e5901",
      "parents": [
        "1dc387152a84193937bd1f88e9e10fff6449d695",
        "700a402244a1a423da4f3ba8032459f4b65fa18f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 20 05:29:04 2014 +0000"
      },
      "message": "Merge \"Now we have a proper C++ library, use std::unique_ptr.\""
    },
    {
      "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": "2b7c4d196c8abe32f4ca633534917da9de53c359",
      "tree": "f14dc45f53d5681a5c0e57b8a8cc6b35eee6e896",
      "parents": [
        "84e524207b23d58a1b1e5f4443000ccac97c4184"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 10:52:16 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 19 15:19:28 2014 -0700"
      },
      "message": "Don\u0027t get and restore thread state for ScopedFastNativeObjectAccess.\n\nBefore we would ensure that we were runnable for fast native object\naccess. However, these are done when you are already runnable.\n\nChange-Id: Ia4c6e4c83d146fe2a988b37b3133ca46b0f0fa42\n"
    },
    {
      "commit": "f832284dd847ff077577bb5712225430bbbb3b67",
      "tree": "44f6b91098639c6ebc438b4ec998d0dc128cef9a",
      "parents": [
        "8f0776768712b2021aa8fb649b51017b9f0fc7a9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 16 10:59:25 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 18 12:50:33 2014 -0700"
      },
      "message": "Delete ClassHelper and fix compaction bug in GetDirectInterface\n\nCleanup helps to prevent compaction bugs. Fixed a fairly serious\ncompaction error caused by calling ClassHelper::GetDirectInterface\nwithout handling the case where it causes thread suspension due to\nResolveType.\n\nBug: 8981901\n\nChange-Id: I82b3bb6dd48d21eb6ece7aae0733c4a23c2bc408\n"
    },
    {
      "commit": "f0972a410a0665dbe32bd96df09a572d69f9f3a3",
      "tree": "7e68b84a8395c72bdacb293c9e42cb3817f14668",
      "parents": [
        "de1129a26e0474ea8bb9112938ebb867163969fd"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri May 16 17:43:39 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 16 17:10:20 2014 -0700"
      },
      "message": "Fix generic jni issue in ArtMethod::GetQuickFrameInfo\n\nThe 64-bit host mode fails to start due to incorrect\ndetection of GetQuickGenericJniTrampoline.\nThe quick_code is 32-bit and taken from oat file, but\nGetQuickGenericJniTrampoline returnf 0x7fffxx (64-bit)\naddress of trampoline and execution went to incorrect way.\n\nSome clean-up.\n\nOriginal Author: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nChange-Id: I0952443b2a9f6833ad37ec373837ae208681fad7\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": "23d2b95b1d1c92898336a4ebf5c0281f79fb7581",
      "tree": "f07e46223e01f86316ccb4ee2e0ecb560476ee20",
      "parents": [
        "6d0a70206867933a715b93800fc703f4a044ae3c",
        "72b3e430d880ef57eaa6a34a0822165994052202"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 15 00:35:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 15 00:35:31 2014 +0000"
      },
      "message": "Merge \"ART: Fix typo in ArtMethod::FindCatchBlock\""
    },
    {
      "commit": "72b3e430d880ef57eaa6a34a0822165994052202",
      "tree": "b102b12d67e6cbc5cf0e6dc4e4ca147325264a43",
      "parents": [
        "d0916f36d27b643bca970f3645c38f44270c74ef"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 13 21:42:05 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 14 17:33:52 2014 -0700"
      },
      "message": "ART: Fix typo in ArtMethod::FindCatchBlock\n\nThe thrown exception is always resolved, as we have an instance of\nit. What is potentially not resolved is the catch handler\u0027s exception\ntype.\n\nThe resolution failure will trigger a NoClassDefFoundError, which\nshould replace the original exception. For this, the API has to be\nchanged a little bit to tell callers that there was this change.\n\nChange-Id: Id51d54a15c732ed175eb617b3b0331b89cbb2051\n"
    },
    {
      "commit": "cbfb8b2f30de46632d3499a838661765451845c5",
      "tree": "1c1e2bacb0dd16a7bb22cf26cbd7ad84d6a7f370",
      "parents": [
        "6099df8c0695a81a8f25c47ff801998b12d09d1b",
        "2d10b206f9d0b97396b7dadb9a6415cd39efd341"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 14 19:09:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 14 19:09:45 2014 +0000"
      },
      "message": "Merge \"Ensure JNI primitive array type is appropriate.\""
    },
    {
      "commit": "2d10b206f9d0b97396b7dadb9a6415cd39efd341",
      "tree": "032625cf6175d1749739bca3c9d673b027ba92c1",
      "parents": [
        "6fb66a2bc4e1c0b7931101153e58714991237af7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 12 19:15:18 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 14 12:03:16 2014 -0700"
      },
      "message": "Ensure JNI primitive array type is appropriate.\n\nCheck the primitive array type for GetPrimitiveArray, ReleasePrimitiveArray,\nGetPrimitiveArrayRegion and SetPrimitiveArrayRegion matches the given array\ntype. Check the GetPrimitiveArrayCritical and ReleasePrimitiveArrayCritical are\ngiven a primitive array.\nAdd unit tests that null parameters lead to fatal errors, not crashes. Fix\nissues where CheckJNI assumed non-null arguments.\nTidy testing code via the use of nullptr. Add a few extra checks.\nEnsure arrays of void are not able to be created, use RI compatible\nNoClassDefError.\n\nBug: 14817823\n\nChange-Id: I9903bcd800d0da1988ced07f61fb97b783c5deab\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": "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": "bfff21aaa05d4fce39481cf7899f7639eb7fd66d",
      "tree": "489efb8743f63ccb1e45197f4ae4c6e67cb9c1c4",
      "parents": [
        "25023c744c4388a6459b21cc3babf8c602b024a2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 09 12:21:15 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 09 12:21:15 2014 -0700"
      },
      "message": "Reference::GetReferent() calls by GC should not trigger read barriers.\n\nOtherwise, GC\u0027s reference processing would turn all referents alive\nvia read barriers, which is incorrect.\n\nBug: 12687968\nChange-Id: I1463365981d55fa74a7bb207dd4a16aeec007f8b\n"
    },
    {
      "commit": "25023c744c4388a6459b21cc3babf8c602b024a2",
      "tree": "6d266d8eb8ed442e1dfeb5102ed9ed38a5ee83d9",
      "parents": [
        "3d1e6642d350e23fa85d4cfcb03413a576880396"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 09 11:45:53 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 09 11:50:32 2014 -0700"
      },
      "message": "Make it possible to disable read barriers in Class::GetObjectSize()\n\nThis is a leftover from cl/91831 (commit\n9103c86a98524e9ddfd14f8cee56e919f68eee9b) that attempted to make it\npossible to disable read barriers in Object::SizeOf().\n\nBug: 12687968\nChange-Id: I2b05076832936881ec61bc21b6eb6b7c04e0a1f0\n"
    },
    {
      "commit": "c45b8b582be5c98941ca3869fcdc9a08d520da41",
      "tree": "c84c980418c224dd317f2962fcfbd18d9785c3b0",
      "parents": [
        "eafef7db77cfbe6bc05d9b07221c198bc8ceaa8a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat May 03 01:39:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat May 03 22:52:59 2014 -0700"
      },
      "message": "Create stack traces in unstarted runtimes.\n\nUse to diagnose failed initialization in dex2oat of boot (-verbose:compiler).\nFix identity hashCode, ArtMethod.getMethodName, IntegralToString.convertInt and\nuse of Void when called from a unstarted runtime.\n\nChange-Id: I2d536174b59e2e5f19519f93fc6b5916652fb6cd\n"
    },
    {
      "commit": "5d27fafdf03f259e92eaee9f6319b9349cc8d62e",
      "tree": "53afb1174be2ae235e41c5ac9eeb1e8d67e3c4e1",
      "parents": [
        "a54c22c0041306f6881694f4c305e655b10e37be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 17:17:18 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 23:30:03 2014 -0700"
      },
      "message": "Allow ArtMethod::Invoke in unstarted runtimes.\n\nChange-Id: I0141f4daef4751589d03d27484eb65c811b14f27\n"
    },
    {
      "commit": "6a154a419022e2caed4edfd1f311edf733278f35",
      "tree": "721fd102bbc5be36a26f4591bd4358b159a30db3",
      "parents": [
        "2220cb17d2879c6296313bb671c6ee1813b93b55"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 02 14:26:13 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 02 14:26:13 2014 -0700"
      },
      "message": "Update the GetFieldObject calls behind the read barrier macros.\n\nThis is a leftover from changes 92535 and 93191.\n\nBug: 12687968\nChange-Id: I4f09d258d037546c716b78d6f1ae6abe5af1137d\n"
    },
    {
      "commit": "1dbbbf6090274ebae6809fdb340c166bb34e09c2",
      "tree": "c6fc706af3ce93ff2c8cb24391494b88213b6206",
      "parents": [
        "e66cdaa3b3b692aa543bf266444832881da87361",
        "8668c3cbdcf9471bd97e0da68a240051f2973074"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 02 19:04:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 02 19:04:10 2014 +0000"
      },
      "message": "Merge \"Add finalizer references from the entrypoints.\""
    },
    {
      "commit": "e66cdaa3b3b692aa543bf266444832881da87361",
      "tree": "7ebb88d1e50d3e40a72293f084631539f551c4a1",
      "parents": [
        "92b57861cb5deb2521e81d76e1e8312ffd4cb912",
        "6e83c172f385cb45dd13bbcf41d2df8e410828c6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri May 02 18:48:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 02 18:48:03 2014 +0000"
      },
      "message": "Merge \"Replace the bool kDoReadBarrier template parameter with an enum.\""
    },
    {
      "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": "6e83c172f385cb45dd13bbcf41d2df8e410828c6",
      "tree": "e2c2f4ee55cfd623ea9d363286b380213748e1e8",
      "parents": [
        "9a16f222cdf40e68b084316b6e768c14d4b9e020"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 01 21:25:41 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu May 01 21:25:41 2014 -0700"
      },
      "message": "Replace the bool kDoReadBarrier template parameter with an enum.\n\nFix one kDoReadBarrier/kIsVolatile mixup in an Object::GetFieldObject\ncall.\n\nBug: 12687968\n\nChange-Id: I896b1137b21a20c0504abd2bf3fe6f83805f3300\n"
    },
    {
      "commit": "8668c3cbdcf9471bd97e0da68a240051f2973074",
      "tree": "3ee580f1d0bf7af89b4c21f73526b01a92ddc28d",
      "parents": [
        "9a16f222cdf40e68b084316b6e768c14d4b9e020"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 24 16:48:11 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 01 17:46:45 2014 -0700"
      },
      "message": "Add finalizer references from the entrypoints.\n\nWe now have an invariant where we never allocate finalizable\nobjects with the Initialized or Resolved entrypoints. This speeds up\nallocation by only doing the check in the slow path.\n\nBefore:\nMemAllocTest: 3625, 3707, 3641\nEvaluateAndApplyChanges: 3448, 3421, 3413\n\nAfter:\nMemAllocTest: 3164, 3109, 3135\nEvaluateAndApplyChanges: 3272, 3299, 3353\n\nBug: 14078487\n\nChange-Id: I2b0534af3e7c75ea5e5257cf3647744f7abfb74e\n"
    },
    {
      "commit": "b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf",
      "tree": "839d13ebfa7170967dd9b4abd434b7abda53da99",
      "parents": [
        "948740c1938860df055ddc801f20fd1707331e38"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 28 16:47:08 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 29 14:36:28 2014 -0700"
      },
      "message": "Force inlining on trivial accessors.\n\nMake volatility for GetFieldObject a template parameter.\nMove some trivial mirror::String routines to a -inl.h.\n\nBug: 14285442\n\nChange-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92\n"
    },
    {
      "commit": "990d46f3333dce06a640ced697ee069330a73d7c",
      "tree": "7caf896723665029823c73e2bec87e6db97ec428",
      "parents": [
        "bf25f7e3a007ecfe4b2bcfa0a9abcb784ff54e26",
        "8a630577ed2d9e9571c3434c505e5de223b23c07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 28 09:09:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 28 09:09:07 2014 +0000"
      },
      "message": "Merge \"Move mapping table and vmap table offsets to OatMethodHeader.\""
    },
    {
      "commit": "3f4dcdf6c99f90a2301304d26ce29dc637b4be7f",
      "tree": "594026d8de04485248048df6e8465ba373800bbc",
      "parents": [
        "c74b878d38f0913313d64ef009da24315ff1c122",
        "9c3b089519792245ab9f658865f44b8639b8d696"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 25 14:51:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 25 14:51:34 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Extracts an utility function of the duplicated code\"\"\""
    },
    {
      "commit": "8a630577ed2d9e9571c3434c505e5de223b23c07",
      "tree": "106367100c639011f0abb72b3b0e227c0764e8e0",
      "parents": [
        "96c6ab93336b972a38bd2448bcccf19188b8389b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 09 18:45:35 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 25 12:24:46 2014 +0100"
      },
      "message": "Move mapping table and vmap table offsets to OatMethodHeader.\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields mapping table and vmap table.\"\n  https://android-review.googlesource.com/91254\n\nBug: 11767815\nChange-Id: I46ce2067e1ecd915da3890606498e31ffc332813\n"
    },
    {
      "commit": "d55e9b1a9f45c19cd7b376a8839ce37f86c66a64",
      "tree": "2b1fd06a6152cd561355d7049ca39aee6a8777f0",
      "parents": [
        "da6e4feb6a02fed7f307e1ef3b90e716a99ba24c",
        "fd3077e4b9ebadd281777310d26e64443858f653"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 09:23:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 25 09:23:17 2014 +0000"
      },
      "message": "Merge \"Refactor exception handling for deoptimization\""
    },
    {
      "commit": "fd3077e4b9ebadd281777310d26e64443858f653",
      "tree": "c63911af29580ab8c0fc8dd29171e626871449aa",
      "parents": [
        "a08ec9b372d4f5e918b3d68499fbd1731180cd98"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 23 10:32:43 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 10:36:05 2014 +0200"
      },
      "message": "Refactor exception handling for deoptimization\n\nThis CL refactors the exception handling (on the quick side) by isolating the\nsearch of catch handler and the preparation of deoptimization.\n\nWe rename the CatchFinder class to QuickExceptionHandler so it\u0027s less specific\nto catch handler search.\n\nFinding catch handler happens in QuickExceptionHandler::FindCatch. Since the\nCatchBlockStackVisitor resolves exception types, it may cause thread suspension\nand breaks the assertion current thread can\u0027t be suspended. Therefore, we place\nthe exception in a SirtRef (while it is detached from the current thread) and\nremove the thread suspension assertion.\n\nDeoptimization now happens in QuickExceptionHandler::DeoptimizeStack. It uses\nthe new DeoptimizeStackVisitor class to create shadow frames.\n\nWe also add the Thread::GetDeoptimizationException method to get the definition\nof the fake exception in only one place.\n\nChange-Id: I01b19fa72af64329b5c3b6c7f0c3339d2d724978\n"
    },
    {
      "commit": "942c8e3723ad1e12039deef5754440dd8e1c546d",
      "tree": "e05d0f71932320f1f8f4f9987a88065c22739663",
      "parents": [
        "011005100214eb40c2aaad3f8fe9c3dc9465bcec",
        "479fc1ecc12fa6560ca90d841c4d5174fb346618"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 07:37:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 25 07:37:49 2014 +0000"
      },
      "message": "Merge \"Support field watchpoint in interpreter\""
    },
    {
      "commit": "479fc1ecc12fa6560ca90d841c4d5174fb346618",
      "tree": "9c89abea89494c90934b260f42f81e8ca83c3611",
      "parents": [
        "96a4f29350bf279d48bff70e21e3264cce216683"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 04 17:51:34 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 25 09:35:54 2014 +0200"
      },
      "message": "Support field watchpoint in interpreter\n\nWe report field read/write events to instrumentation from the interpreter. This\nallows it to send JDWP field access and field modification events to debugger.\nThis completes CL https://android-review.googlesource.com/90390.\n\nWe also fix the JDWP FieldOnly modifier by introducing ModBasket.fieldTypeID.\nWe incorrectly used ModBasket.classId which is actually dedicated to ClassOnly\nmodifier based on thread\u0027s location\u0027s class id.\n\nFinally, we now enable canWatchFieldModification and canWatchFieldAccess JDWP\ncapabilities so a debugger can request these events to be reported.\n\nBug: 8267708\nChange-Id: I987852ad47abb27b2f7e78544a8189c7a4e2f462\n"
    },
    {
      "commit": "9c3b089519792245ab9f658865f44b8639b8d696",
      "tree": "dafd82a7c3ccb42c69799389d43340e3f4eae447",
      "parents": [
        "1b4e3d5bc1e2d604adeda4ebbd137f20ee041138"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 24 17:33:34 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 24 13:13:56 2014 -0700"
      },
      "message": "Revert \"Revert \"ART: Extracts an utility function of the duplicated code\"\"\n\nThis reverts commit b5a14d2a6c18c1ea3c019c53b10af2e8f5dea234.\n\nChange-Id: Id09a4cc27ac22db940badf3a277848b38b173eae\n"
    },
    {
      "commit": "17c50db442d2791d9c4d7d1e98060556c323ce9b",
      "tree": "d430ae6fb13e4044de6fe6857fd3dc0e79764f4d",
      "parents": [
        "1b4e3d5bc1e2d604adeda4ebbd137f20ee041138",
        "9103c86a98524e9ddfd14f8cee56e919f68eee9b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 24 18:12:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 24 18:12:25 2014 +0000"
      },
      "message": "Merge \"More code for the read barrier support.\""
    },
    {
      "commit": "b5a14d2a6c18c1ea3c019c53b10af2e8f5dea234",
      "tree": "185fd3643ae9503c2506c24b26c9869dd34fbbf3",
      "parents": [
        "973cc95da6fb617bab133bd7a693c1cb7eafd393"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 24 17:30:35 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 24 17:30:35 2014 +0000"
      },
      "message": "Revert \"ART: Extracts an utility function of the duplicated code\"\n\nThis reverts commit 973cc95da6fb617bab133bd7a693c1cb7eafd393.\n\nChange-Id: I3883c74ba06116e89d89d9cf085f20cff5d15f77\n"
    },
    {
      "commit": "973cc95da6fb617bab133bd7a693c1cb7eafd393",
      "tree": "34b08f276979f3474b0a53769b2d100866647e91",
      "parents": [
        "96a4f29350bf279d48bff70e21e3264cce216683"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Fri Apr 18 14:53:09 2014 +0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 24 08:35:30 2014 -0700"
      },
      "message": "ART: Extracts an utility function of the duplicated code\n\nThis patch introduces an utility function \u0027DataOffsetOfType\u0027 in\n\u0027mirror::Array\u0027 class that calculates the data offset at given index\nin an array of given type.\n\nChange-Id: Idb19558653c70a129245f220f0fbb553f898865b\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "de981b0c9124f0b1f29e18ea6b8cb8328f561aab",
      "tree": "899cb8ec473d3a6436ac7cc9445f93c123a7f884",
      "parents": [
        "a08ec9b372d4f5e918b3d68499fbd1731180cd98",
        "96c6ab93336b972a38bd2448bcccf19188b8389b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 23 08:50:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 23 08:50:22 2014 +0000"
      },
      "message": "Merge \"Separate maps from code in oat file.\""
    },
    {
      "commit": "a08ec9b372d4f5e918b3d68499fbd1731180cd98",
      "tree": "4c21e507ec2b2ca36011313d9a40d151e23f6193",
      "parents": [
        "4af159bfcc66c6e90a2aee4a2035a996a399e7ed",
        "aa961918da5142220029da2809287e0dd537a5d7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 23 00:16:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 23 00:16:15 2014 +0000"
      },
      "message": "Merge \"Fix FindCatchBlock to work in -Xverify:none mode.\""
    },
    {
      "commit": "aa961918da5142220029da2809287e0dd537a5d7",
      "tree": "93cdad41650f353e1c7d82aaa8894037b12bb2a0",
      "parents": [
        "82b1a81890970a8b07f9132aeae537a6c43df6b0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 22 13:54:32 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 22 17:03:21 2014 -0700"
      },
      "message": "Fix FindCatchBlock to work in -Xverify:none mode.\n\nFindCatchBlock now uses ResolveType to get the exception type,\nsince it might not be able to find it in the dex cache.\n\nBug: 13948502\nChange-Id: Ia6f1c7dc743206ae1c8551bf6239f48ee4d3a784\n"
    },
    {
      "commit": "4af159bfcc66c6e90a2aee4a2035a996a399e7ed",
      "tree": "9bc7f4ac4f6ce93be0e9f2bc8db6ccdb9d972c36",
      "parents": [
        "d299898a55f41ccf78b865e153ae91321229353b",
        "987560fee798e48fb725c44b796d8ca7a5872ad6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 22 23:03:01 2014 +0000"
      },
      "message": "Merge \"Remove support for app JNI workarounds.\""
    },
    {
      "commit": "987560fee798e48fb725c44b796d8ca7a5872ad6",
      "tree": "d61f35a129847f3f5fbed1436649e75acd940b3f",
      "parents": [
        "44b0053fdb7ad8a30138d29f714172a7dc69efb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 11:42:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 22 14:52:19 2014 -0700"
      },
      "message": "Remove support for app JNI workarounds.\n\nChange-Id: I4396df7e93fcace4b5b19c2c387e5c30089182a6\n"
    },
    {
      "commit": "9103c86a98524e9ddfd14f8cee56e919f68eee9b",
      "tree": "69e64a2f618e10bb8f060cf7fb70c8e94dc43b50",
      "parents": [
        "f7933e7f295bfe61cb0baf89469581c563032e96"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 22 13:51:07 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Apr 22 14:26:21 2014 -0700"
      },
      "message": "More code for the read barrier support.\n\nMake it possible to disable the RB in Object::SizeOf() (and the\nfunctions it calls transitively) which the collector will need to call\nto get the size of an object when copying.\n\nAdd Object::AtomicSetReadBarrierPointer() for atomic write of a RB\npointer.\n\nBug: 12687968\nChange-Id: Ibedd252860ac7ccd17e4e7d71b377a8892b48ff0\n"
    },
    {
      "commit": "96c6ab93336b972a38bd2448bcccf19188b8389b",
      "tree": "87c4904182d6b087e59a7c18d4a6b5b42275ef45",
      "parents": [
        "82b1a81890970a8b07f9132aeae537a6c43df6b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 08 14:00:50 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 22 17:50:49 2014 +0100"
      },
      "message": "Separate maps from code in oat file.\n\nWrite all GC maps first, then all mapping tables and then\nall vmap tables and only then align the offset to page size\nand write all method code chunks with headers.\n\nBug: 11767815\nChange-Id: Ic83555c8303c5be119afc43e95e58c0a32ff2a4f\n"
    },
    {
      "commit": "bbd695c71e0bf518f582e84524e1cdeb3de3896c",
      "tree": "6fe6a128b629abc6a396a192b2e8da1180afeded",
      "parents": [
        "a092ee404ababbf8fc945111dc4a571284c9f02f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 16 09:48:48 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 19:01:34 2014 -0700"
      },
      "message": "Replace ObjectSet with LargeObjectBitmap.\n\nSpeeds up large object marking since large objects no longer required\na lock. Changed the GCs to use the heap bitmap for marking objects\nwhich aren\u0027t in the fast path. This eliminates the need for a\nMarkLargeObject function.\n\nMaps before (10 GC iterations):\nMean partial time: 180ms\nMean sticky time: 151ms\n\nMaps after:\nMean partial time: 161ms\nMean sticky time: 101ms\n\nNote: the GC durations are long due to recent ergonomic changes and\nbecause the fast bulk free hasn\u0027t yet been enabled. Over 50% of the\nGC time is spent in RosAllocSpace::FreeList.\n\nBug: 13571028\n\nChange-Id: Id8f94718aeaa13052672ccbae1e8edf77d653f62\n"
    },
    {
      "commit": "4d7f61d44a732cfbc8573e5d93364983fd746888",
      "tree": "0ad34f9316227531696c01ba9b25a2175a5c5f65",
      "parents": [
        "425640d6fac3432a44e236a002e8401a7cd59c5c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 14:43:39 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 17 15:56:47 2014 -0700"
      },
      "message": "Use non volatile lock words in semispace collector.\n\nGSS FormulaEvaluationActions.EvaluateAndApplyChanges:\nBefore GC time: 9.1s\nAfter GC time: 7.98s\n\nFixed timing logger errors.\n\nChange-Id: I4193c6ccbbbe7a7220dfaabbf3472a5dcebae616\n"
    },
    {
      "commit": "7971928828f6c429b5fb3a2fddfed05c3b20bdcc",
      "tree": "02b8bf844ce79236483ed8cfd215dafa96ab1e44",
      "parents": [
        "6a12a03cd4f4f2a145567362b016538beb13733b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 10 12:46:22 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 10 15:40:15 2014 -0700"
      },
      "message": "Insert read barriers in more places.\n\nBug: 12687968\nChange-Id: If3ffca4741e039f314ac848551c481d44cbcd3ca\n"
    },
    {
      "commit": "541dd231f9a7282f7fd1092349a322dc67bafaf2",
      "tree": "3c60f49a1e13e48f71f33f2a41cfca1dd54edfed",
      "parents": [
        "e9236f03d8c4348a8f1a8767baa1aea60ecdc1f5",
        "800ac2defde5d12b2f1f313c6b6162560cfa6fc7"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 04 04:34:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 04 04:34:09 2014 +0000"
      },
      "message": "Merge \"Insert an empty read barrier call.\""
    },
    {
      "commit": "800ac2defde5d12b2f1f313c6b6162560cfa6fc7",
      "tree": "c25e10b68be9be9949e96d3c977fbcf906f22a3a",
      "parents": [
        "5cff3083c00dfbae7b8c5c34b0bedbc514c91df9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Apr 02 17:32:54 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 20:16:44 2014 -0700"
      },
      "message": "Insert an empty read barrier call.\n\nBug: 12687968\nChange-Id: Ie1d28658e16e09f6a983cb5c1f0d5b375b7ae069\n"
    },
    {
      "commit": "4cd662e54440f76fc920cb2c67acab3bba8b33dd",
      "tree": "e2becdc06eded96215a1c9a501004ac3889e9107",
      "parents": [
        "5cff3083c00dfbae7b8c5c34b0bedbc514c91df9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:28:10 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Apr 03 16:35:50 2014 -0700"
      },
      "message": "Fix Object::Clone()\u0027s pre-fence barrier.\n\nPass in a pre-fence barrier object that sets in the array length\ninstead of setting it after returning from AllocObject().\n\nFix another potential bug due to the wrong default pre-fence barrier\nparameter value. Since this appears error-prone, removed the default\nparameter value and make it an explicit parameter.\n\nFix another potential moving GC bug due to a lack of a SirtRef.\n\nBug: 13097759\nChange-Id: I466aa0e50f9e1a5dbf20be5a195edee619c7514e\n"
    },
    {
      "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\""
    },
    {
      "commit": "ee1d79a603c77c0667b27c075a983579d5c51f7e",
      "tree": "7b23516402105319ab4736cd179a1de9101eeb46",
      "parents": [
        "78bd9b2198f0ccc48036c1517b2d9a9023157dfb"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 21 15:46:30 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 02 09:21:12 2014 +0200"
      },
      "message": "Cleanup transaction support\n\nUpdates Thread::CreateInternalStackTrace to support both transactional and\nnon-transactional modes using template.\n\nGeneralizes non-transactional mode for invariant fields (which are set only\nonce).\n\nRemoves ArrayLog::VisitRoots as we never create Array logs of ObjectArray. As\nObjectArray elements are set using Object::SetFieldObject, they are already\nrecorded in the object logs: the object is the array itself and the offset\ncorresponds to the element index in this array. And also checks we never log\nObjectArray in array logs.\n\nFixes location of thrown exception when calling native method during class\ninitialization.\n\nChange-Id: Idbc368d3b8292b85ff40bc8a7c559e085477bf89\n"
    },
    {
      "commit": "624468cd401cc1ac0dd70c746301e0788a597759",
      "tree": "b21c389d43e25c3d95208c9d2f3f1bc81355a4e5",
      "parents": [
        "cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 31 15:14:47 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 31 17:40:21 2014 -0700"
      },
      "message": "Make the support code for read barriers a bit more general.\n\nAdd an option for Baker in addition to Brooks.\n\nBug: 12687968\nChange-Id: I8a31db817ff6686c72951b6534f588228e270b11\n"
    },
    {
      "commit": "99cb4eac56f8bd6336669f5fb9dc4b1f4061466c",
      "tree": "e716fa13c09f27f1bb225ab01f23bc991a56f60b",
      "parents": [
        "636583c586b78e188168e510452cef0645578f8d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 26 22:53:56 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 27 08:17:32 2014 -0700"
      },
      "message": "Handle Array::Memmove within the same array properly.\n\nMotivated by discussions in:\n  https://android-review.googlesource.com/#/c/88940/\nmemcpy can\u0027t be relied upon to be a forward copy for overlapping regions of\nmemory.\n\nChange-Id: I409f75e97204250546bf0b8082e2b62026bddedc\n"
    },
    {
      "commit": "580a8dfda74e7999f6b3e28e239ae8461a39dfcb",
      "tree": "085db43858bd760ee257f0bfd66cd7472788d591",
      "parents": [
        "223efbe5164f6fe83cf04e7f9121adb29b8dd231"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 15:15:57 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 26 17:21:56 2014 -0700"
      },
      "message": "Less redundant verification.\n\n~3 less objects verified per object scanned in the GC. Helps the\nirogers dogfood experience.\n\nChange-Id: I6efeab7842a6c702adecef73fb573c19291fecf2\n"
    },
    {
      "commit": "407f702da4f867c074fc3c8c688b8f8c32279eff",
      "tree": "6a856b64f655f5aab1c538eab28e9c69f9010122",
      "parents": [
        "d201dec03334bcc25add81704981a78c19927d87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 14:37:05 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 24 16:35:21 2014 -0700"
      },
      "message": "Refactor object reference visiting logic.\n\nRefactored the reference visiting logic to be in mirror::Object\ninstead of MarkSweep.\n\nChange-Id: I773249478dc463d83b465e85c2402320488577c0\n"
    },
    {
      "commit": "6a3fe330227f2192f6ce97915d62f46247f89378",
      "tree": "c448ba71ac9adeb02cf79e3bff04d72857072d06",
      "parents": [
        "2e13a5f879cec094023a2edbb3df79043c83f4bb",
        "aa866f51bccc2f017a2e65925748b7a1c701d3f6"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 23:30:33 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 21 23:30:33 2014 +0000"
      },
      "message": "Merge \"Deduplicate the code that hardcodes the array header layout.\""
    },
    {
      "commit": "aa866f51bccc2f017a2e65925748b7a1c701d3f6",
      "tree": "9fa6ca9147b1e08a0f6798a2a00e2a7324a2df7b",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 16:18:30 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 21 16:27:11 2014 -0700"
      },
      "message": "Deduplicate the code that hardcodes the array header layout.\n\nGet rid of HeaderSize() in array-inl.h and use DataOffset() instead.\n\nBug: 12687968\nChange-Id: Ic81cf3fa6bb9b2440d351a73f5fd6a2d6908d15b\n"
    },
    {
      "commit": "ed0fc1d42f097be7bed090f19abdf7c0fd227820",
      "tree": "36982a427f36024e6bbec9fda7e2eacadd320fa8",
      "parents": [
        "faa93b3ab455492dad1a9d3fb630e3936d389c85"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 21 14:09:35 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 21 15:28:33 2014 -0700"
      },
      "message": "Don\u0027t return null for null utf in AllocFromModifiedUtf8.\n\nIf you pass in a null utf string it should not be the same behavior\nas out of memory.\n\nThis previously caused serious problems in:\nhttps://android-review.googlesource.com/#/c/80768/\n\nChange-Id: I9dfb710b57f6cc91064812f52a3db64254769461\n"
    },
    {
      "commit": "62f0512bf6d9bc6141358bf22e93afa70dc58b1a",
      "tree": "7fdc0b9be0df2da5ff2575862a24db5c10eae9dc",
      "parents": [
        "215f3e60cd97471c0843eae22a041c335e89071c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 21 11:21:29 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 21 11:25:56 2014 -0700"
      },
      "message": "Improvements to Field.get/set.\n\nAvoid unnecessary repeated computation in Field.get/set.\nRefactor FromReflectedField and FromReflectedMethod into common helpers in\nmirror::ArtField and mirror::ArtMethod, and make use of thereby avoiding\ntransitions through JNI.\nAvoid JNI use from within FromReflectedField and FromReflectedMethod.\nTidy up Field.get/set wrt moving collector support.\nBug: 12189533\n\nChange-Id: I643ab3474bade4abac3a3ae2b6e373b2bb0891c8\n"
    },
    {
      "commit": "b95a5345ae4217b70ca36f0cced92f68dda7caf5",
      "tree": "d9c76db71eb8dd3a668643781eefe6152888fd1d",
      "parents": [
        "66e4c3e96dccdec7423d673ad6bbf7821a776651"
      ],
      "author": {
        "name": "Stuart Monteith",
        "email": "stuart.monteith@arm.com",
        "time": "Wed Mar 12 13:32:32 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 19 17:17:55 2014 -0700"
      },
      "message": "AArch64: Add arm64 runtime support.\n\nAdds support for arm64 to ART. Assembler stubs are sufficient for\ndown calls into interpreter. JNI compiler and generics are not finished.\n\nBasic Generic JNI functionality.\n\nChange-Id: I4a07c79d1e037b9f5746673480e32cf456867b82\n"
    },
    {
      "commit": "8fa2dad7fe7909c8335101d6c8904ae997cdf29f",
      "tree": "b4809584363705a640b8a4d5c87f9fa2af59c41e",
      "parents": [
        "282cbe489046face5475991aaa1ecb5f1deba107"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 13 12:22:56 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 14 10:15:18 2014 -0700"
      },
      "message": "Refactor reference code into mirror namespace.\n\nAdded two new files: mirror/reference.h and mirror/reference-inl.h.\n\nChange-Id: Ibe3ff6379aef7096ff130594535b7f7c0b7dabce\n"
    },
    {
      "commit": "4dcef7e7e786192d8e1fd5e9d43e98867000c149",
      "tree": "a83b77093690009389395f539dab20ca59dcf5ed",
      "parents": [
        "135ce2ea28e98df624aa071688bd01e0dadf2f62",
        "90546836312adda54f28b700f25ff29ec8becdf8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 13 22:21:55 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 13 22:21:55 2014 +0000"
      },
      "message": "Merge \"Fixes for Generic JNI\""
    },
    {
      "commit": "90546836312adda54f28b700f25ff29ec8becdf8",
      "tree": "e420ee1f4e80adae2ebe152cca39a8d64d09148f",
      "parents": [
        "9545a446e99b22248099fe66f5f9431530c20851"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 18:07:19 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 13 15:20:18 2014 -0700"
      },
      "message": "Fixes for Generic JNI\n\nThis fixes some linking issues and native code retrieval errors.\nAll host tests are functional with this change.\n\nMake ArtMethod::GetFrameSizeInBytes() templated to bypass the\nembedded sanity check. Necessary for fix-up decision.\n\nAdd ArtMethod metadata fix-up code to ClassLinker::LinkCode.\nNecessitates new parameters to access the shorty and compute\nthe frame size.\n\nFix handling the JNI dlsym lookup stub in the generic JNI code.\n\nChange-Id: I4173b0fbb1ba5b1bcbee1bb340cfdd08a54767e5\n"
    },
    {
      "commit": "b373e091eac39b1a79c11f2dcbd610af01e9e8a9",
      "tree": "034d820c4829e0dcf6161473cc39f7250123bfaa",
      "parents": [
        "9545a446e99b22248099fe66f5f9431530c20851"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Feb 20 16:06:36 2014 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Thu Mar 13 12:21:15 2014 -0700"
      },
      "message": "Implicit null/suspend checks (oat version bump)\n\nThis adds the ability to use SEGV signals\nto throw NullPointerException exceptions from Java code rather\nthan having the compiler generate explicit comparisons and\nbranches.  It does this by using sigaction to trap SIGSEGV and when triggered\nmakes sure it\u0027s in compiled code and if so, sets the return\naddress to the entry point to throw the exception.\n\nIt also uses this signal mechanism to determine whether to check\nfor thread suspension.  Instead of the compiler generating calls\nto a function to check for threads being suspended, the compiler\nwill now load indirect via an address in the TLS area.  To trigger\na suspend, the contents of this address are changed from something\nvalid to 0.  A SIGSEGV will occur and the handler will check\nfor a valid instruction pattern before invoking the thread\nsuspension check code.\n\nIf a user program taps SIGSEGV it will prevent our signal handler\nworking.  This will cause a failure in the runtime.\n\nThere are two signal handlers at present.  You can control them\nindividually using the flags -implicit-checks: on the runtime\ncommand line.  This takes a string parameter, a comma\nseparated set of strings.  Each can be one of:\n\nnone        switch off\nnull        null pointer checks\nsuspend     suspend checks\nall         all checks\n\nSo to switch only suspend checks on, pass:\n-implicit-checks:suspend\n\nThere is also -explicit-checks to provide the reverse once\nwe change the default.\n\nFor dalvikvm, pass --runtime-arg -implicit-checks:foo,bar\n\nThe default is -implicit-checks:none\n\nThere is also a property \u0027dalvik.vm.implicit_checks\u0027 whose value is the same\nstring as the command option.  The default is \u0027none\u0027.  For example to switch on\nnull checks using the option:\n\nsetprop dalvik.vm.implicit_checks null\n\nIt only works for ARM right now.\n\nBumps OAT version number due to change to Thread offsets.\n\nBug: 13121132\nChange-Id: If743849138162f3c7c44a523247e413785677370\n"
    },
    {
      "commit": "36fea8dd490ab6439f391b8cd7f366c59f026fd2",
      "tree": "6720290f54717f7cee1116103cd1839147936146",
      "parents": [
        "63dcdff34c40a64df6939ea5bba71813abd2acd3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 10 13:37:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 12 15:16:12 2014 -0700"
      },
      "message": "Fixing structure of native frame for Generic JNI\n\nThis changes the layout of the callee-save frame used in generic\nJNI to be consistent with the JNI compiler, that is, the SIRT is\ninline (above the method reference). Now the location of the\n\"this\" object is consistent.\n\nChange-Id: Ibad0882680712cb640b4c70ada0229ef7cf4e62c\n"
    },
    {
      "commit": "e0dcd46314d07eeb332edea292f5110178e4e3d2",
      "tree": "d1060bc54e1ad26bad69a6e06662e643e75ce484",
      "parents": [
        "80a250f8862096b72e7357c12b40dc9d5310a475"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 08 15:21:04 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 09 02:17:46 2014 +0000"
      },
      "message": "JNI down call fixes.\n\nEnsure SIRT isn\u0027t accessed via quick callee save frame.\nSome tidying of code.\n\nChange-Id: I8fec3e89aa6d2e86789c60a07550db2e92478ca7\n"
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "a7e649d2341039072d02b954338aed3cb6b3638b",
      "tree": "5a6b424ff483ef017d506170e85cd117a85997c4",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502",
        "e63a745f26fec5a5b4162fc83f6e88a1f696c30c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 06 18:33:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 06 18:33:59 2014 +0000"
      },
      "message": "Merge \"Make heap reference poisoning work with the interpreter.\""
    },
    {
      "commit": "bf6b92a158053c98b15f4393abb3b86344ec9a20",
      "tree": "93a28d1e01b045a8df23fe5279601496b62af3dd",
      "parents": [
        "359597ee8c0667a7d2c0b74dcbb0f90bb6059bae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 05 16:11:04 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 22:32:53 2014 -0800"
      },
      "message": "Generic JNI implementation for x86_64\n\nStarting implementation for generic JNI on x86_64. Frames are of\nlarge static size (\u003e4K) right now, should be compacted later. Passes\nthe whole of jni_compiler_test.\n\nChange-Id: I88ac3e13a534afe7568d62a1ef97cb766e8260e4\n"
    },
    {
      "commit": "e63a745f26fec5a5b4162fc83f6e88a1f696c30c",
      "tree": "f26e1429c8226c5dde5ee4c361a57754ff46298c",
      "parents": [
        "e26baffe7f9e2a54f276f5c65e48454e413683ba"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 14:44:36 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 05 19:20:14 2014 -0800"
      },
      "message": "Make heap reference poisoning work with the interpreter.\n\nIt is disabled by default.\n\nBug: 12687968\nChange-Id: Iee0cad647f341a7b566f4cf74c2770d1c19312c9\n"
    },
    {
      "commit": "c2f4d0240b3a9b905dff5b546924865f15241481",
      "tree": "133e39fac183d8ea0818f93b8e5e88f4221b9555",
      "parents": [
        "6b8c503c6df887ff30f478ab58bdfdb223492f45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:11:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:40:42 2014 -0800"
      },
      "message": "Fix SafePrettyTypeOf to never call VerifyObject.\n\nCalling VerifyObject from the segfault handler caused another\nsegfault.\n\nChange-Id: I459646594d830cbb110a4ac2bac25a7b90794854\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "8580154e01910459d99074ef10584b8d647d912f",
      "tree": "da6e717eb6f77c8cf959a9b0d1f8073f63d4e9fd",
      "parents": [
        "b63841060cdca9603bf72e737de52a9cec0d6434"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 18:06:26 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 18:08:12 2014 -0800"
      },
      "message": "Fix 080-oom-throw with semispace GC.\n\nFixes a moving GC related error in array allocations where we didn\u0027t\nconsider that the array class might have moved.\n\nChange-Id: Iefe8bdc06b51ec2329a7984359f3da7fda479fec\n"
    },
    {
      "commit": "a55cf41c9d1da7ee8b2f63974dedfb484042dd03",
      "tree": "56ec8209ebb303d83ac519ab8ac64d235b1069ab",
      "parents": [
        "f709d7d7c461b0e0f96510a84ef1d8046ca43d79"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 00:31:26 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 00:31:26 2014 -0800"
      },
      "message": "Ensure usable space data is zeroed in arrays.\n\nAddress other outstanding review comments.\n\nChange-Id: Iaffe04de080772a0d0c5fd973bcac0e23c8c3e25\n"
    },
    {
      "commit": "6fac447555dc94a935b78198479cce645c837b89",
      "tree": "bcf1449999084b1e1dec3dac287f6f3670d7eda0",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 25 17:01:10 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 26 16:38:22 2014 -0800"
      },
      "message": "Make allocations report usable size.\n\nWork-in-progress to allow arrays to fill usable size. Bug: 13028925.\nUse C++11\u0027s override keyword on GCC \u003e\u003d 2.7 to ensure that we override GC and\nallocator methods.\nMove initial mirror::Class set up into a Functor so that all allocated objects\nhave non-zero sizes. Use this property to assert that all objects are never\nlarger than their usable size.\nOther bits of GC related clean-up, missing initialization, missing use of\nconst, hot methods in .cc files, \"unimplemented\" functions that fail at\nruntime in header files, reducing header file includes, move valgrind\u0027s space\ninto its own files, reduce number of array allocation routines.\n\nChange-Id: Id5760041a2d7f94dcaf17ec760f6095ec75dadaa\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "9d04a20bde1b1855cefc64aebc1a44e253b1a13b",
      "tree": "85b8315677c3d6545ac6c8b27db7cb00b82e68b7",
      "parents": [
        "0f8aa6b38f204ccacd3ac12bb844e628cec2215b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 31 13:35:49 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 25 13:56:48 2014 -0800"
      },
      "message": "(Experimental) Add Brooks pointers.\n\nThis feature is disabled by default.\n\nVerified that the Brooks pointers are installed correctly by using the\nCMS/SS collectors.\n\nChange-Id: Ia9be9814ab6e29169ac85edc4792ce8c81d552a9\n"
    },
    {
      "commit": "9837939678bb5dcba178e5fb00ed59b5d14c8d9b",
      "tree": "00f0e6b54d7c4cac78a02752e268724157e50b6e",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 16:53:16 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 18:47:23 2014 -0800"
      },
      "message": "Avoid std::string allocations for finding an array class.\n\nIntroduce ClassLinker::FindArrayClass which performs an array class lookup\ngiven the element/component class. This has a 16 element cache of recently\nlooked up arrays.\nPass the current thread to ClassLinker Find .. Class routines to avoid calls\nto Thread::Current().\nAvoid some uses of FindClass in the debugger where WellKnownClasses is a\nfaster and more compacting GC friendly alternative.\n\nChange-Id: I60e231820b349543a7edb3ceb9cf1ce92db3c843\n"
    },
    {
      "commit": "4e30541a92381fb280cd0be9a1763b713ee4d64c",
      "tree": "84093651bbf0ad95b66b846c4f4cf4101994037b",
      "parents": [
        "e266ba9935bd12d685d83f73cd8d759e46c3014d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 19 10:54:44 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 21 15:24:04 2014 -0800"
      },
      "message": "Fix and optimize verify object.\n\nVerifyObject no longer resides in heap. You can now enable\nVerifyObject for non-debug builds. VerifyStack is still slow, so it\nis now guarded by its own flag.\n\nFixed the image writer to not use verification at places where\nverification fails due to invalid reads.\n\nFixed RosAlloc to use SizeOf which doesn\u0027t call verify object.\n\nAdded a flag paremeter to some of the mirror getters / setters to\nbe able to selectively disable VerifyObject on certain calls.\n\nOptimized the GC to not verify each object multiple times during\nobject scanning if verify object is enabled.\n\nAdded 3 verification options: verify reads, verify this, and verify\nwrites so that you can select how much verification you want for\nmirror getters and setters.\n\nRemoved some useless DCHECKs which would slow debug builds without\nproviding any benefits.\n\nTODO: RosAlloc verification doesn\u0027t currently work with verify\nobjects.\n\nBug: 12934910\nBug: 12879358\n\nChange-Id: Ic61033104dfc334543f89b0fc0ad8cd4f4015d69\n"
    },
    {
      "commit": "936b37f3a7f224d990a36b2ec66782a4462180d6",
      "tree": "94de34072e8ce0a2a251ed8d5ccc7d87709db750",
      "parents": [
        "fd80b5717c0cdd10ef2caabf4291415a52fcc874"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 14 00:52:24 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 20 14:46:02 2014 -0800"
      },
      "message": "Upcall support for x86-64.\n\nSufficient to pass jni_internal_test.\n\nChange-Id: Ia0d9b8241ab8450e04765b9c32eb6dc8fc1a8733\n"
    },
    {
      "commit": "073278cd7129ff07dbcd6ccfabd2c34f47ec92ad",
      "tree": "c8dbc60d903653ecde81cef4d781128884859374",
      "parents": [
        "a3537fb03e092a82f08ceb670a2eafa703203465"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 19 15:21:21 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 19 15:53:35 2014 -0800"
      },
      "message": "Do not FixupStaticTrampolines of uninitialized classes\n\nBug: 13027732\nChange-Id: I5966d63afd8fbcd091801297290f117f3c9cb44c\n"
    },
    {
      "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": "e7e8a5fea2d852cccc840fa046151a16627f26cd",
      "tree": "4509736090c371a363e79f4a3d01107d0b8d5e72",
      "parents": [
        "cc35e45f371f5018b42e2ef383185e2840cf4374"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 14 16:59:41 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 14 18:26:37 2014 -0800"
      },
      "message": "Remove using mirror::* in jni internal.\n\nCleans up the code since it helps make it easier to spot moving GC\nrelated bugs.\n\nAlso fixed moving GC bugs in MonitorEnter, and FindFieldID.\n\nChange-Id: I794e4fbcc2010875fc6b299c6d4c9fb0f071b71a\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": "5bb99037bef70784ae4630c2e4b81688d2a18621",
      "tree": "7c01146719c9bd445f983d470980206952d8719b",
      "parents": [
        "9c7f35435b51cdeae8665aabb8e63392105db787"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Feb 08 16:20:58 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Feb 08 16:26:12 2014 -0800"
      },
      "message": "Fix CreateMultiArray to be compaction safe.\n\nIt used to be compaction safe before moving classes was enabled.\nAdded missing SIRTs.\n\nChange-Id: I92963ed71fa6d2a20d16ec0e400b8fa0e41ac196\n"
    },
    {
      "commit": "29501cf5663c7951717bae3521815d121a778396",
      "tree": "4673078721c88f8a73ec52a82868e0896149d2d1",
      "parents": [
        "6957616884d7b290f2b8e98e2c4304695799134b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 07 21:00:25 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 07 21:00:25 2014 -0800"
      },
      "message": "Make primitive getter/setters consistently signed.\n\nUse QuasiAtomic for Cas64, which fixes the MIPS build of ART.\n\nChange-Id: Id1dba264b148a7ce9bcc637159ec733cfbd88b70\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": "64cffee929a1782622015fd18beebc86d0afb1da",
      "tree": "79d721ac99e8b66e60ee1b6194156e742ce55d51",
      "parents": [
        "c293218e89bb53ce34c022e97437c18fcbf3b609"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 04 17:59:35 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 04 17:59:35 2014 +0000"
      },
      "message": "Make DexCache references const.\n\nClean up after https://android-review.googlesource.com/80446 .\n\nChange-Id: I32dac9d8aa68bb891ec8b551d771f65db7be409d\n"
    },
    {
      "commit": "89786437f4c0176b35ca0376153dd18ab7df4924",
      "tree": "c1b233f9e036c14f7a39d722a7a34874253307c1",
      "parents": [
        "1f00671edaaa34578319d0fdaf605600ed539d41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 15:03:55 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 03 18:15:13 2014 +0000"
      },
      "message": "Don\u0027t assume resolved type has the same dex cache.\n\nWhen we resolve a type with a certain DexCache that type\u0027s\nGetDexCache() doesn\u0027t necessarily return the same DexCache.\nThis could have led to the wrong DexFile being used in\naccess checks by the CompilerDriver.\n\nChange-Id: I2c836477f69f142bcbff902207dc0ad83854a398\n"
    },
    {
      "commit": "abff6439db28fbbed95490bfff7e24d1fdf5b771",
      "tree": "6ed749056b1d2e29f2bdf81c13e80e15849e9836",
      "parents": [
        "7ea5dafc81b2bba7cabad26130bb75dc8f709803"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Jan 27 18:01:39 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 28 18:18:14 2014 +0100"
      },
      "message": "Refactor array access for the interpreter.\n\nAdds GetWithoutChecks and SetWithoutChecks methods in PrimitiveArray and use\nthem in the interpreter. Updates Get and Set methods to rely on them and adds\nsome DCHECK to control exception flow.\n\nRenames IsValidIndex into CheckIsValidIndex to reflect it can throw an\nexception. It\u0027s also more consistent with ObjectArray::CheckIsAssignable.\n\nMake ThrowArrayIndexOutOfBoundsException private in Array since it\u0027s only used\nby Array::CheckIsValidIndex.\n\nUpdates DoFilledNewArray to use SetWithoutChecks rather than Set.\n\nChange-Id: I2fd314d77a67cf969843d499b86d04ca7b7a43e6\n"
    },
    {
      "commit": "23a282146042a0d171aec2a415176f5d0621a90c",
      "tree": "de676891deb5bee6bc76b7cba23c29df662e57c0",
      "parents": [
        "d6c3ae638a47db3970054843d2aa2f0d961cec4c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 09 19:24:37 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 21 17:09:51 2014 +0000"
      },
      "message": "Clean up access checks.\n\nChange-Id: Ia62ba6c8f1d0a9bfbbfde2d7be4c52c0f982b9d2\n"
    },
    {
      "commit": "16ce0923698d9a2df8a93d3895d2e851d8ac6fbf",
      "tree": "fd2584e44bdf658b45fa480a833245238c6aa707",
      "parents": [
        "aa368a44da1807a04fd66f348f7f867ca30ce3cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 10 14:59:36 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 10 15:25:32 2014 -0800"
      },
      "message": "Make fast JNI part of pretty method output.\n\nChange-Id: Ic4951a22d12e93d7f1e1af7ffbb08b4bb9b8f587\n"
    },
    {
      "commit": "5ddb4104ac605d66693b55b79f26f8b8a5505e63",
      "tree": "9231f1e54e9a1aaca640c590d5b4f318720e263b",
      "parents": [
        "5a2ced515a456f15dcf194843c024e835eda7dbe"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 07 08:58:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 08 09:15:46 2014 -0800"
      },
      "message": "Remove intialized static storage from dex cache.\n\nThe initialized static storage array is used by compiled code to determine if\nfor a sget/sput class initialization is necessary. The compiled code typically\ndoesn\u0027t require this test as the class is pre-initialized or the class being\naccessed is the same as the current method.\n\nChange-Id: Icbc45e692b3d0ac61e559e69edb6c9b29439e571\n"
    },
    {
      "commit": "4069d33b95b43df47a522ff52b35e901d4e58a56",
      "tree": "f7dcf4063eeaea9194ef283a29fa450d1942925e",
      "parents": [
        "5de028bf066052afd15c6733a4e6edfe91ad222c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 03 10:28:27 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 03 10:28:53 2014 -0800"
      },
      "message": "Use memcpy instead of Array::Set in mirror::String::AllocFromUtf16.\n\nAlso, add a DCHECK on the hashcode if provided.\n\nChange-Id: I604c09c3d0c48ebab8df8f1af0cd65b2507f94a8\n"
    },
    {
      "commit": "b122a4bbed34ab22b4c1541ee25e5cf22f12a926",
      "tree": "624f16271f4481a8fd5aa2f607385f490dc7b3ae",
      "parents": [
        "e40687d053b89c495b6fbeb7a766b01c9c7e039c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 19 18:00:50 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 20 08:01:57 2013 -0800"
      },
      "message": "Tidy up memory barriers.\n\nChange-Id: I937ea93e6df1835ecfe2d4bb7d84c24fe7fc097b\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": "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": "e4e23c0b0cfebd01f17732b6686a74f9e437e978",
      "tree": "fed04608bf571680e02d184a354b23c2cae34fec",
      "parents": [
        "29c788da9b75f998c5da8f320cd50351b83a3dff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 06 13:38:43 2013 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 06 13:38:43 2013 -0800"
      },
      "message": "Fix valgrind-test-art-host-gtest-object_test.\n\nThis had been failing with the error message:\n\nobject_test F  2360  2360 art/runtime/gc/heap-inl.h:139] Check failed: !running_on_valgrind_\n\nThen, this failing DCHECK was removed in a refactoring in\ncbb2d20bea2861f244da2e2318d8c088300a3710, I believe.\n\nThis change adds back a DCHECK that\u0027s equivalent to the old one and\nfixes ObjectTest.CheckAndAllocArrayFromCode by replacing a\nCheckAndAllocArrayFromCode call with a\nCheckAndAllocArrayFromCodeInstrumented call.\n\nBug: 11670287\nChange-Id: Ica2f707b9a9ff48ef973b9e326a4d9786c1781f8\n"
    }
  ],
  "next": "7410f29b4dae223befac036ea567d7f33351dad1"
}
