)]}'
{
  "log": [
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "fd678beb171a4686a4f2d53ca4188a4ade8fa54e",
      "tree": "ab932e92d683d8033241bb2248da98e76249d3eb",
      "parents": [
        "5bfa60ffcc953340feb711ed05cf576ac821905e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 30 14:50:54 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 04 14:58:14 2012 -0700"
      },
      "message": "Additional heap verification for the Gc\n\nThere are now two verification booleans which can be enabled. When these get enabled, it verifies that each live object only references other live objects.\n\nChanged SetClass to use SetFieldPtr to avoid having an extra card mark. This is safe since all classes are held live by the class linker.\n\nChange-Id: I005bb59e5cc8153a79d3ccb3d7b5cabd29fb4051\n"
    },
    {
      "commit": "87e552db94588455c081efd87dbde0cd96d02942",
      "tree": "02fc47be772d65e3ba4f2453f5d330b7dd111d1a",
      "parents": [
        "c747cffa950b8398cb8844d47e2253214c855750"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 31 15:54:48 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 01 00:23:33 2012 -0700"
      },
      "message": "Make ICCE logic common, refactor throws.\n\nThere were 2 sets of ICCE logic in ClassLinker::ResolveMethod and\nMethod::CheckIncompatibleClassChange, merged into just 1 piece of logic\nin Method::CheckIncompatibleClassChange.\n\nMove Throw... routines into own file and make adding the dex location to\nthe detail message more thorough.\n\nChange-Id: I953dbfa3fed3767f35799b2f82b16637c437dbbe\n"
    },
    {
      "commit": "08f753d5859936f8d3524e9e4faa6cee353873ea",
      "tree": "5679a9ad8be6827e2a10de282cd28e3d000917de",
      "parents": [
        "b0b2be7688109cff548d2ddc8f02eecbad49ecd2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:35:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 11:34:56 2012 -0700"
      },
      "message": "Avoid compile time rewriting of dex code by verifier.\n\nCompile time rewriting of dex code leads to dead code that is causing\nissues with the LLVM compiler. Make instantiation and incompatible class\nchange errors be detected in slow path field and invoke logic so its\nsafe for the compile time verification just to softly fail the effected\nclasses.\n\nThis change places incompatible class change logic into the class\nlinkers ResolveMethod and consequently changes a number of APIs.\n\nChange-Id: Ifb25f09accea348d15180f6ff041e38dfe0d536e\n"
    },
    {
      "commit": "1b09b094a85e03f6ef5f687f58bb91c433273ba1",
      "tree": "6b039e520ee3b73e6ba5fb23954b9e01ecc68fc9",
      "parents": [
        "931c278aed62d7a97b87cf1bb9cfdd189e77eb24"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "message": "Syntax clean up to make clang happy.\n\nChange-Id: I0984c395bbd1ee4b206eafd19915b6f68781dd16\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "1c849e5badc85b6753dee0c0487729b2c0529f51",
      "tree": "5f5c602d60404f66d363fe1b4f619d89087fef33",
      "parents": [
        "78a5e15629e6591090582cd83b1ec1380a50a840"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 28 14:00:33 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 28 14:00:33 2012 -0700"
      },
      "message": "Clean up kAccWritable in the verifier.\n\nkAccVerifier was deprecated, instead memory permissions were used in its\nstead.\n\nMove dead code scanning in the verifier to be enabled when the results\nwill be logged.\n\nChange-Id: Id20e62eefe958bd577b86bd7396a439d7a01c1b3\n"
    },
    {
      "commit": "4284bb9e8b79add46e61da897fa02df3625888f7",
      "tree": "704478e602e229e460f9310f51490582697ab322",
      "parents": [
        "1fb3bd3559eb6fc34f7ba429adf9bb15c05939b0"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jun 06 15:30:44 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 27 03:15:27 2012 -0700"
      },
      "message": "Add thumb-specific code for invoke stub.\n\nOn LLVM-based compiler, we are compiling the invoke stubs\ninto Thumb2 instruction set.  Thus, we should take care\nof the thumb offset for invoke stub as well.\n\nChange-Id: Ifc0b0099f2f035a64e89350086d6435e733224b8\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "640495bd1aebcd0b429d59f62b57d0c984b2d8c6",
      "tree": "57373871951b28834a3e6b68c7812a07c0713a2d",
      "parents": [
        "4cf6018b33269cd4009b7c9e4e2fefcb4f90acf9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:15:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:19:41 2012 -0700"
      },
      "message": "Proxy methods don\u0027t have GC maps.\n\nFix regression caused by stack refactoring.\n\nChange-Id: I942b6f34fb4b1f1504466b46e004d4f92f1cb167\n"
    },
    {
      "commit": "a21039c3ae2b20e44ceb2735251c04d0aac89afd",
      "tree": "66b6fa437e7e4286b50bdef224500f9049633701",
      "parents": [
        "3d9d49fa2d025a041f57ea306ea551ef990177db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 12:09:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 13:04:41 2012 -0700"
      },
      "message": "Fix a bunch more lint.\n\n(If you ignore the compilers, we\u0027ve got relatively little lint now. Fits on\na single screen.)\n\nChange-Id: I51389002894d4fd8cf46f79d2bac57079322a030\n"
    },
    {
      "commit": "7a2a23a44d27f769718e28327af671f4e486c49a",
      "tree": "345a05da812927dafe13af82a4926257c3b368e9",
      "parents": [
        "95dfa6a8c522ad84a492d88666ea69fe7a3852c5"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jun 06 11:01:00 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 21:22:11 2012 -0700"
      },
      "message": "Cleanup proxy stub compiler code.\n\nChange-Id: I2a5815cc2a38f5cea9e9c36e5e6db92c1a861eaa\n"
    },
    {
      "commit": "4825756c621ff709079ef3cd3f981e7036c0ebdb",
      "tree": "29f2db93457dc7eca2ccc95d20e0e159283e9edf",
      "parents": [
        "6c564a8138d1b2a230d55e1f5850a95b6fb42582"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 17:42:44 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 17:44:43 2012 -0700"
      },
      "message": "Auto-generate operator\u003c\u003c for enum ::art:Class::Status.\n\nThis requires a bit more work in the script to support\nenums nested inside classes.\n\nChange-Id: Id0e3561c3675214f74f47ac9f36ba82c41fa775d\n"
    },
    {
      "commit": "a9b3bf4b42d80cfcc27b6f8da7e28ced04a1619b",
      "tree": "cca2c257e6fdc90e520eddc5a43d7f113ead8cfc",
      "parents": [
        "ebe2e0f2e5145ef8433c1459b9cd60ecd853ee76"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 06 17:18:39 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 06 17:18:39 2012 -0700"
      },
      "message": "More fixes to make new Class status work properly.\n\nInitializeClass should only check for an exception from VerifyClass if\nthe class is erroneous. Also, the status ordering was changed so that\nkStatusRetryVerificationAtRuntime is after kStatusVerifying.\n\nChange-Id: Ibbfb1696dfee88cb8fcef5673f7e353f30a8fe5a\n"
    },
    {
      "commit": "f1e6b7c8cd78c02f4eb36574f0e417c4edc2b91e",
      "tree": "3ddb49fd0230cdef765ff7fb95f049a990cce018",
      "parents": [
        "662618fa6725631353a115993feaf2a9897b094a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jun 05 18:33:30 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 06 13:21:14 2012 -0700"
      },
      "message": "Added new state and Soft/Hard error return to verifier for bad supers.\n\nMarket was failing because a superclass failed with a soft error, and\nthen its subclass would be rejected with a hard error. New states and\nreturn values were added, and now ClassLinker::VerifyClass allows a\nsuperclass to have either kStatusVerified or\nkStatusRetryVerificationAtRuntime as valid states.\n\nChange-Id: I72f23d25fa3bdcfd08f3113b091303535a327c14\n"
    },
    {
      "commit": "262e5ffa1d4b23f23af3dea762a71a0af4bfd4a9",
      "tree": "f8378de518cdf8a6067d74aaa5808624d8c7709f",
      "parents": [
        "2792fade8cb6554f81008b7635cec6ed0e914b3c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 01 17:35:38 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 05 17:15:28 2012 -0700"
      },
      "message": "Enable card cleaning\n\nCards which do not map to image spaces are now cleared at the start of GC. Cards which map to image spaces are now processed when we go through all the dirty cards after recursive mark. Dirty cards are handled based on if they are either image space cards or cards invalidated by mutators during CMS.\n\nChange-Id: I6c2dc177ebd3f7dc7bbbbd19ae67221371851ebe\n"
    },
    {
      "commit": "eead4ac17ec9d5e750269a7d36bf6c36a6fd60c6",
      "tree": "911602ed79cde974cba5b6a18d57fc27987436ef",
      "parents": [
        "de479be99328d2113bf483e082c9ecf235a34d69"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Jun 03 07:15:25 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Jun 03 09:12:30 2012 -0700"
      },
      "message": "Implement proxy stub for compiler_llvm.\n\nChange-Id: Id8ba59c62795d885a18b3cc634e7ef370a2d2f97\n"
    },
    {
      "commit": "7c6169de901fd0a39c8e0c078874dc25207f5b59",
      "tree": "dd7adafc6bcdb734c26a495e4bd923081ef637e7",
      "parents": [
        "736df0253aa65ebccb29ddb6443c31b7730ca3e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "message": "Port my AOSP QuasiAtomic rewrite to art.\n\nChange-Id: I9e8fe487b15083cfc441a90ec1ec0eb5e645229e\n"
    },
    {
      "commit": "110bcbafbbc4c27bf31d32732aab06f900c02653",
      "tree": "c7467d4871b658c06f5ba7c527cb2847ae28913a",
      "parents": [
        "fd8ea97f64fb6d32cbfe35729b816a22dfa18224"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 16 19:11:28 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 16 04:56:13 2012 -0700"
      },
      "message": "Update frame size after the bitcode is translated into machine code.\n\nChange-Id: I59923a6cb1a1079d9cfe6d995fe0067ee1c49e80\n"
    },
    {
      "commit": "f24d3cedd395690f6904aaac80f84a100420f7a3",
      "tree": "1867ff0b6f3bebb4f611eaf72b05b14843c55d93",
      "parents": [
        "14fe6aea00598ba5d40d3e5bfa62f26a1c8cfdff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "message": "Enforce the use of accessors on JValue so we can ensure sign extension.\n\nChange-Id: I34810af7661d8674c84707afe5cfdf9e2c233f8b\n"
    },
    {
      "commit": "1d878f3e1c39162496d7c061f7f6710e414d182b",
      "tree": "203a26165bff88dd352580c088c0775b953d363a",
      "parents": [
        "4b952e74b4b2efa15cecedfc643c212eaeac2cc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 15:17:54 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 15:17:54 2012 -0700"
      },
      "message": "Add a default constructor to JValue.\n\nChange-Id: I7abe801b26f5003c480215c1f1ca64dfc07667ed\n"
    },
    {
      "commit": "dd361c9eab3284e76e2d07c2e7d371b0f5269942",
      "tree": "04dbcea72d196e5202aa71c2e54d7833b276f9b9",
      "parents": [
        "7e7fabccba62ec3d7c04b33e9b8fdb7981bdc833"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Apr 10 23:40:37 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 10 15:55:46 2012 -0700"
      },
      "message": "Fix 065 and 066 tests (NULL Method bug). Don\u0027t use Method in LLVM method compiler.\n\nChange-Id: I98e4e9b329448b1b72c3b5c9d712ea68dab624bd\n"
    },
    {
      "commit": "0f3c55331439970e01af67f80ac117c473bc04cf",
      "tree": "cfa28ad2a58af1ffddb0a2ce90443ad4606743c3",
      "parents": [
        "273cf36d199cf73de3cf61a559ad27c9d23f9825"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 30 14:51:51 2012 -0700"
      },
      "message": "Kill constants.h and fix some copyright headers.\n\nChange-Id: I51c04d731d6de035328781d8ac134ad6fcf49897\n"
    },
    {
      "commit": "57b86d47b66322693a070185fadfb43cb9c12eab",
      "tree": "81d53304a63a660a683917a19f7dd83723a397ad",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 27 16:05:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 11:51:44 2012 -0700"
      },
      "message": "Refactor runtime support.\n\nChange-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df\n"
    },
    {
      "commit": "0ce131582cc78d1fcd918620e7da992df93fdff7",
      "tree": "4b3e5d7c0befc3a6ec93661d6f9f3cc25f5ea5ba",
      "parents": [
        "a43e0937c62719a405ce64888892facaead122df"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 27 19:45:50 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 28 11:28:54 2012 -0700"
      },
      "message": "Fix GetUtfLength to add offset to char array data.\n\nGetUtfLength isn\u0027t used by much, so I made ToModifiedUtf8 use it so it\ncan be exercised more. Also added a test to make sure it\u0027s working.\n\nChange-Id: I9d569642aaf2313cc70a2e22f631aec138e2e71b\n"
    },
    {
      "commit": "28f1a147d77ec772db98bed890b50a9ddcff2365",
      "tree": "bebca04cea429109260854778da197ae594450d7",
      "parents": [
        "1cb0ae742072b5ea2c7f677e6ad220ba01255dae"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Thu Mar 15 21:51:52 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:53:38 2012 -0700"
      },
      "message": "Implement LLVM version of jni_compiler to pass 17 jni_compiler tests.\n\nBecause we now have both shadow_frame and sirt (which is just for SirtRef\u003c\u003e\nin the LLVM version), we define a new function NumStackReferences() as follows:\n  NumStackReferences() \u003d NumSirtReferences() + NumShadowFrameReferences().\n\n(cherry picked from commit 18fe89a14d212da9ec6841f4d19d08482a9610b7)\n\nChange-Id: Idd95ee4276801b1555be87934cd9c4f33ab8a88a\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "fc9e6fabed89d948fa8c0e9d673e430076712c60",
      "tree": "12e01ab3a937729d9482ab7fded1f1e0ab73dbd7",
      "parents": [
        "67d920071fe4a0aa8b8bc339e93b18276238c320"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 23 15:14:29 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Mar 26 16:06:01 2012 -0700"
      },
      "message": "Compiler intrinsics\n\nAdd intrinsic support.  Some of these appear to be of\nlimited value, so we may end up removing a few.  In general,\nthe instrinsics provide small, but measurable, gains.\n\nOnly Arm is currently supported, but most of these should\nwork for our other targets as well.\n\nThis is an interim solution.  My plan is to the intrinsic\nrecognition action up into the basic block building phase once\nwe start doing inlining.\n\nChange-Id: Ia2913f2cdecaa4e80469caf69dbf8e2f61d4506a\n"
    },
    {
      "commit": "67d920071fe4a0aa8b8bc339e93b18276238c320",
      "tree": "a665c6bdeecf149fc976b992c71543642b44e464",
      "parents": [
        "16da17c8d39a813f1b880f576fd2f8bc98ac4a9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "message": "Add a compile-time constant bool equivalent to !defined(NDEBUG).\n\nThis makes some code slightly less awkward.\n\nChange-Id: Iafd359dd0baa65510ed9510a7d93ee01605f51e4\n"
    },
    {
      "commit": "81ff3184e7eb8de4605c7646674ea4f9fa29b5f3",
      "tree": "eaf443fcc575d3a793af3ab3e435211981a1c1b1",
      "parents": [
        "5147733292cd0b80ca7da3099e43cc549d67526b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 20:35:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 08:38:34 2012 -0700"
      },
      "message": "Nomenclature improvements.\n\nChange-Id: I809ab04b6ee74bb8141791e1f3f5d7e3f4efb61c\n"
    },
    {
      "commit": "2ed52c4419dd537c98cd7898bc8bdcf8826b8940",
      "tree": "e90598e39df514d8a86cbb160288b4fd563eb1c1",
      "parents": [
        "051c9fc1de07bbc265af38cf60f061394163c68f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 16:56:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 21 16:57:43 2012 -0700"
      },
      "message": "Stash the directly-implemented interfaces in Proxy so we can implement Class.getInterfaces.\n\nAlso extend test 044 to spot this (found by a libcore test).\n\nChange-Id: I50019db49c549f045d94173c3ed9ae81f05ef858\n"
    },
    {
      "commit": "16da88c70c4bdbd97b8482be8b42103a52f22d59",
      "tree": "905c1bfc68c7a301706a5cd2b7a3d7d9084a06b3",
      "parents": [
        "b41b33b5e5f08083e35f84818b4f44d26feb4a8b"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 20 10:38:17 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Mar 20 14:36:11 2012 -0700"
      },
      "message": "Custom codegen for small frameless methods.\n\nAdded a general mechanism that will allow pattern matching of\nsmall methods and (generally) frameless code generation.  Prevously,\nall frames were at least 16 bytes, not you can have zero-length\nframes (and thus some old asserts had to go).\n\nChange-Id: Ic786940a602e25b48cbc317ac601ac84cc307762\n"
    },
    {
      "commit": "f582258f0e296223a091fd64231a203ad71e9649",
      "tree": "23049122f075220421803a1745cf634337360a40",
      "parents": [
        "a7c12688da57ea052e127776ad3043ca5079488d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:34:31 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:59:13 2012 -0700"
      },
      "message": "oat file patching\n\nChange-Id: Idbbdf19f3a77498d79d043fd33ca12ce39cafbb7\n"
    },
    {
      "commit": "76e3694db07d068d1a5e0ae7088b6f7bff6e9d43",
      "tree": "93f1864b147f2854f1917e4b2a225bd43b62834f",
      "parents": [
        "907a0dbe5bbb536391158e8188b4c064c8898eff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 13:44:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 13:44:56 2012 -0700"
      },
      "message": "Clean up the trivial uses of __attribute__((unused)).\n\nMy usual objection would be that this leads to breakage, but since we compile\nall variants all the time anyway, I think this is probably the better choice.\nIn particular, it means we can notice when no variant needs the parameter any\nmore.\n\nChange-Id: Ia7e5c1a58597d9f9ff6f337c3d9cf00ecdf4c208\n"
    },
    {
      "commit": "1bac54ffa933fbe9b92b62437577f2f4583eff1a",
      "tree": "a27134343ed3cd45a286c3a68b9a4469e70f13e7",
      "parents": [
        "96970cdab3e28511322ce37fa578f6eff8931d72"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "message": "Fix all our unused parameter warnings so we let GCC report them.\n\nThere were a couple of genuine bugs here (fixed), plus there\u0027s a missing\nfeature in trace.cc that I\u0027ve just added a TODO for.\n\nAlso note that I haven\u0027t touched the compilers; this warning is still\nexplicitly disabled for that code. I\u0027ll do that when there\u0027s less going\non in those directories.\n\nChange-Id: Ic3570bf82411a07c7530bfaf1995ac995b9fc00f\n"
    },
    {
      "commit": "77405796564c6c1353807cda18b28678a719bd68",
      "tree": "948781c769760d71c7aff4e8db57aa5a9e311372",
      "parents": [
        "f8bbb8448c733e9e3ad43aad69774c37888329b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:22:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:46:59 2012 -0700"
      },
      "message": "Rewrite the invoke stubs to use JValue[]s.\n\nThe tests were only testing the static stubs, so extend the tests to include\nnon-static stubs too.\n\nAlso add just enough of an ARM disassembler to disassemble the invoke stubs.\n\nChange-Id: If71dfb66b8b8188f9d871914f0eaf1013c9993b9\n"
    },
    {
      "commit": "f8bbb8448c733e9e3ad43aad69774c37888329b1",
      "tree": "b0f488b0d95c1fe79bc0473e4a98670ceb905139",
      "parents": [
        "98d39884f64d13aada5e716bb38e2f069c7ad0a7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 14 03:01:42 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 15 03:30:20 2012 -0700"
      },
      "message": "Add code size to oat files\n\nChange-Id: Ic2519551864dd7090ba98f2fc92318f95f92947f\n"
    },
    {
      "commit": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "5b8b1edc803a85bb3172560826d6a23fb23c3452",
      "tree": "43fe7644011ad6b8c7175ee9748f5fd27e0d27af",
      "parents": [
        "31a4a6f5717f645da6b97ccc1e420ae1e1c71ce0"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 23 23:48:21 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 11:44:02 2012 -0800"
      },
      "message": "Implement Link-loading and pass 62 tests in JniInternalTest.\n\nThe passed tests include the 12 originally ARM-only tests. Now it works\non x86 as well if defined(ART_USE_LLVM_COMPILER).\n\nChange-Id: I03092637fa4f0979ca77e0cac06e5d31a867e465\n"
    },
    {
      "commit": "a15e67d5ee5aa9615596cee2be42c2b2caf128c6",
      "tree": "cd126ce1e809688011385d521abf19c9c302d1b1",
      "parents": [
        "9b5ee8837b4864b6ac114e9fead17bdeb04c6d55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 13:51:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 28 15:21:27 2012 -0800"
      },
      "message": "Remove pad word from arrays\n\nThis change removes the 4 byte pad from all arrays except longs and\ndoubles. It saves 76kb from the boot image, and will also reduce the\nsize of arrays in the heap (and thereby reduce garbage collection).\n\nChange-Id: I3ff277d5bf14c57c0f7552215818e588ec6cc275\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "60db5ab3a2e480db9236325a14cb5a867881d8bb",
      "tree": "c4a514941c2d41b82581d2c3d83ecb742e575231",
      "parents": [
        "6a91799974e992e915facb9d9372dc8847a09a64"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 17:02:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 20 18:15:35 2012 -0800"
      },
      "message": "SIRT work around JNI support for legacy apps\n\nLegacy apps may be broken and expect a jobject to equal an Object*. This\nis a work around to support outgoing SIRT arguments being converted to\nbe Object*s. It steals the unused GC map pointer on native methods.\n\nChange-Id: I8fb3701b0cdf15be9e8f9b722e47386505482666\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\n"
    },
    {
      "commit": "7b0c5b4739e3d9df11caa883de01cc5f4ea30753",
      "tree": "b8754300b1de8f3787803aff764463cb1c2879de",
      "parents": [
        "283ed0d9db3084d0fee46d47cd73bf84bd0cfc16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 15:29:07 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 16:05:30 2012 -0800"
      },
      "message": "Various dex index tweaks to improve verifier performance\n\nChange-Id: I9369443495b69fc8092f6a69118691c056db3188\n"
    },
    {
      "commit": "fca7e87c4831ac52073bdd0b2c7342488ce286d8",
      "tree": "058bbda5b4ea617ebef826f2e4b4fd08773e84d6",
      "parents": [
        "53a25dba44cb38d83931d47613cfe5b2abc5c299"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 20 20:08:22 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 23:30:22 2012 -0800"
      },
      "message": "Add inferred register category map to Method object.\n\nChange-Id: I69456c79eb3ce3df1924bffe4db5314b0552f1de\n"
    },
    {
      "commit": "16f93671923979733cb46fc6f053c8f65754d5eb",
      "tree": "1bcb06e29786c5c93e0dc588b4ad6e8e94de0034",
      "parents": [
        "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 12:29:06 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 14:39:26 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods, address Proxy issue\n\nChange-Id: Iab8c7edb954d241bd5a92260db07696b9559155f\n"
    },
    {
      "commit": "b5d6a4983732387dd9fe9f0024d19a766819755d",
      "tree": "c7945cf6ebf6ebe0438421758884abb7ad240046",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "message": "Revert \"Remove dexCacheResolvedMethods from Method/Constructor\"\n\nThis reverts commit 42882d1ae5a297b037f560a6ec190be1a584579d"
    },
    {
      "commit": "42882d1ae5a297b037f560a6ec190be1a584579d",
      "tree": "b702812d71828f757872b5cd1b915f2baf74a251",
      "parents": [
        "60f83e3274739317d8c3a1b069cebc6bf1e40f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 19:18:37 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 22:00:50 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods from Method/Constructor\n\nThis short-cut is no longer directly accessed via compiled code.\n\nAlso fix compiler_test which requires isFinalizable to be explicitly\ncompiled when Object.\u003cinit\u003e is handled in managed code.\n\nChange-Id: I028cf0fc8fa25a44df4adacc7c686ade413a5a42\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "53a77a5d06ce865d0524bf3a0dd9b586caa9bede",
      "tree": "dbdf636acdb6bf8f67333fb15b54f279183c66c4",
      "parents": [
        "1bddec3a6521f16df37499754000a3b1787a52e9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:47:45 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:49:41 2012 -0800"
      },
      "message": "Remove Method\u0027s dex_cache_resolved_fields_\n\nWe no longer generate code to access dex_cache_resolved_fields_ and the\nslow paths can access the dex cache with extra indirections. Removing\nthe field saves image space.\n\nThis change also requires Change I2e16e99d\n\nChange-Id: Ic64df15f3982a2655942d7cd5157eb497f70af7d\n"
    },
    {
      "commit": "5167c97a4f672ba821453418e3943988fabbfc43",
      "tree": "7046f25582fd55e6bb4b19bb2fb7781b0d6c60a6",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:41:20 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:49:06 2012 -0800"
      },
      "message": "Improve debug-ability of native method registration\n\nIf we fail to register a native we construct a stack trace which needs\nThrowable and stack trace support. Registering Throwable\u0027s natives first\nand making Throwable a root supports this. Previously we could only\ngenerate a stack trace when thread start up was complete.\n\nChange-Id: Icc7c1657988c7f36aceb1d4f3e61e7218f55e055\n"
    },
    {
      "commit": "1c5eb704b61511cdc649cad032d29940857c9fe9",
      "tree": "9950f70d497a58cb1d07712a90b72ce19d783eb5",
      "parents": [
        "02fbef0e356ca43b2032044f870d59de4a4ae92a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 01 09:18:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 01 10:42:11 2012 -0800"
      },
      "message": "Move super class verification to class linker\n\nVerify super classes in the class linker and chain exceptions when super\nclass verification fails. Add support for dumping chained exceptions to\nThrowable::Dump. Improve verifier error detail messages.\n\nFixes problem where super class verification would leave a pending\nexception that would be tripped over elsewhere.\n\nChange-Id: I3ca850fc66674c8601132d7ec40bebbf9c108ae3\n"
    },
    {
      "commit": "4d9716c19cc25911e639272048abd0d6702bb082",
      "tree": "fdd9d47f7ebb3bcbb19224a34eb7216f3d212821",
      "parents": [
        "0f09676a8f61809c474e71b4a677093615bfba19"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jan 30 01:49:33 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 31 12:01:50 2012 -0800"
      },
      "message": "Class::SetStatus(kStatusError) now checks that an exception is pending and uses it to SetVerifyErrorClass\n\nChange-Id: I02f4adc51ac6da88d4969655fa828f93941c4c0a\n"
    },
    {
      "commit": "d418edaf4df0a410d678389e171ac6d96ae2af15",
      "tree": "d90fedd6af5fb69e9e983a68723cdded97354ed0",
      "parents": [
        "160f3e20e81a9137e75a18a8613c09c51c8c004f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 12:14:28 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 30 15:41:32 2012 -0800"
      },
      "message": "Class clean-up and compute name during image writing.\n\nName is computed lazily, if this occurs for an image class it will cause\na card mark and for that part of the image to be scanned every GC. By\nprecomputing the name we avoid the GC overhead, speed up some reflection\noperations, save allocation heap footprint at a cost of ~300kb in the\nimage.\n\nRemove and reorganize reflection native methods to agree with patch to\nlibcore.\n\nChange-Id: I4b621be4a9d9bb381a647963066c3305ce40745f\n"
    },
    {
      "commit": "30fab40ee5a07af6b8c3b6b0e9438071695a57f4",
      "tree": "86514e3535c8b23cf52249a202076b59ac532021",
      "parents": [
        "f3778f66879fa038a7c9ebe46d5bc4167ddef7d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 23 15:43:46 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 26 17:32:10 2012 -0800"
      },
      "message": "Upgrade to latest dlmalloc. Refactor Heap and related APIs to use STL like naming.\n\nWe fail assertions in the existing heap code, as does Dalvik. This refactoring\nis to clean the heap and space APIs and to reduce duplication of data\nand thereby solve a failing assertion in the card table.\n\nThis change also wires up clearing of soft references including before\nout-of-memory errors are reported.\n\nIn doing this change it was made clear that mspaces are buggy (and\nviolating invariants with the garbage collector). This\nchange upgrades to an un-Android molested version of dlmalloc-2.8.5 and\nimplements a version of the mspace morecore routine under ART control.\n\nrun-test 061-out-of-memory is updated for current heap sizes.\n\nChange-Id: I377e83ab2a8c78afb9b1881f03356929e2c9dc64\n"
    },
    {
      "commit": "ff17f1fd3ff32f93e45588eb2b158832d73f9afa",
      "tree": "deab04f6a2ad7f1dbaf0e6be266512d663e3dd91",
      "parents": [
        "a7679b67ca945194fa2442015e606cd250f0de2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:12:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 18:12:29 2012 -0800"
      },
      "message": "Remove various bits of lint.\n\nChange-Id: I5f8f61766d2add7fd7ff40d463ea03cb20515988\n"
    },
    {
      "commit": "11d1b0c31ddd710d26068da8e0e4621002205b4b",
      "tree": "8d9c9c0dd5741214466775b86069032d609fd91c",
      "parents": [
        "bbdb1437f55948e5395b4dcb306e25605539a444"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 16:57:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 17:26:10 2012 -0800"
      },
      "message": "Reduce namespace pollution.\n\nThis leaves us with just the mspace stuff and three libdex functions to clean\nup. We deliberately expose the JII API, and I don\u0027t think there\u0027s anything we\ncan really do about the art_..._from_code stuff (and at least that starts with\n\"art_\").\n\nChange-Id: I77e58e8330cd2afeb496642302dfe3311e68091a\n"
    },
    {
      "commit": "e7d856b911222aa000ca2be0f8f63f5b292141c3",
      "tree": "9628ef94e879c7ae026dd37ec05e1ab3251d830a",
      "parents": [
        "a51dc5b0a57fdf0574c069a15e065ccc96958f02"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 18:10:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 17 17:42:34 2012 -0800"
      },
      "message": "Add GC map to oat file\n\nChange-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28\n"
    },
    {
      "commit": "eaa200d9b8a28f1a23b6ded7875d2b8fca555254",
      "tree": "f95f311b5909e680ad114825b33d1b507487e990",
      "parents": [
        "a10df0fd98f6ff81c5ec2639fb4e385b39c28845"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 05 16:30:31 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 05 16:35:50 2012 -0800"
      },
      "message": "Remove unnecessary casts.\n\nAlso turn up strict-aliasing warnings to the maximum (and default!) level.\n\nChange-Id: I97f1d2c180ce515719f8c92d54b8a6ae6a6942c4\n"
    },
    {
      "commit": "90040194a1b5c441dde5c8a8b6d637c23972e0f3",
      "tree": "729962d80228061d6f186c579440893c8eacd2b1",
      "parents": [
        "6b0870dfaaa2e69a900ad7ed88e4e1d3697445aa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 16 08:54:29 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 16 09:29:04 2011 -0800"
      },
      "message": "Fixes for verifier access checks.\n\nClass::CanAccessMember ignores the class we\u0027re checking access for,\nexcept for protected fields. Document this behavior.\nWhen getting static and instance fields perform the same class access\nchecks we already perform for methods.\n\nChange-Id: I00719de2e346e9f3faa199e1976151493708fff7\n"
    },
    {
      "commit": "c2b4447ae9c0c1e77595620acac6508999df6698",
      "tree": "20192c2044d004b364a7f8aa6c9cd3a272e3e706",
      "parents": [
        "fbef9462e3bf2301dd5b337d351b6b70f7e31bc8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 21:17:17 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 06:45:50 2011 -0800"
      },
      "message": "Fix for test 044-proxy\n\nProxy implementation was incomplete following meta-data refactoring,\ncomplete this change.\n\nChange-Id: Ic0567bdef373dbae17031a30aabc779027173229\n"
    },
    {
      "commit": "f239165736be1ae0460ef042195c579a7becec11",
      "tree": "1bf297537287014cf3e1b84565ebaa308a432bd9",
      "parents": [
        "4d3c95bd7ee7d67993dc09617ee4138fa33af70f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 12:50:52 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 12:50:52 2011 -0800"
      },
      "message": "Improve documentation on CanAccessMember\n\nAlso move the quick identity check earlier.\n\nChange-Id: Ie1c913ab4f69995d4500c995b0b7a4aead51c2a8\n"
    },
    {
      "commit": "4d3c95bd7ee7d67993dc09617ee4138fa33af70f",
      "tree": "722cbcc7b71439d29a8723b8185eff9039c419aa",
      "parents": [
        "b067ac2fe225c76fc9eb9434ef62cbb797bfa425"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:46:38 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:46:38 2011 -0800"
      },
      "message": "Fix for 075-verification-error\n\nChange-Id: I907a9b0baaedb86a40b9baf18e0f21a43d660bd2\n"
    },
    {
      "commit": "b067ac2fe225c76fc9eb9434ef62cbb797bfa425",
      "tree": "7afaac5b70dbcc2515f769b0d000240b1f20f4ab",
      "parents": [
        "91250e0c3fb0ad758b9b97042a3fa86d5ae76763"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 18:05:09 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 14 07:03:49 2011 -0800"
      },
      "message": "Fix for 073-mismatched-field test\n\nART distinguishes between static and instance field resolution whereas\nJava doesn\u0027t. Interface static fields bind more closely than those of\nsuperclasses. Implement field resolution code for the verifier so that\nit can determine incompatible class change errors when a static field\nbinds before an instance field.\nAlso don\u0027t search all iftable interfaces, search them in superclass\norder (as the specification dictates).\n\nChange-Id: I43b45bada8b9099ad805b244be10833d59bacfe3\n"
    },
    {
      "commit": "5fc5a0c8801028195ead49910b98a3490aa506ea",
      "tree": "20228918159eeb1b32ec05850d1761111bc4bf4f",
      "parents": [
        "96835e7b2b6c1e06e747cf8cf97a206fb902205a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 10:39:49 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 13 10:39:49 2011 -0800"
      },
      "message": "Fix VM test 065 and 066\n\nFix bug in setting the VerifyErrorClass, set this when super and\ninterface types are incorrect.\n\nChange-Id: Ib779e3e5c5aaa8ae4f83a673194f27bb31b37d13\n"
    },
    {
      "commit": "7b3cdfcca472b779cf8745fb8460935e56229f11",
      "tree": "e74e88286c9f121ed1312faece45981ba4e0b14c",
      "parents": [
        "6f1dfe415019de95f0305de66b3afb40005fe382"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:28:17 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:45:49 2011 -0800"
      },
      "message": "More JDWP robustness.\n\nWe pass a lot more JDWP tests with this (fewer total failures than dalvik,\nbecause although dalvik implements more requests, it assumes that the debuggers\nonly send it valid input).\n\nI\u0027ve also added some of the missing constants (there are tests of modifier 12,\nSourceNameMatch, which was added in Java 6).\n\nChange-Id: I502e87b50fb305c5c8b061421339c8ceab104640\n"
    },
    {
      "commit": "6f1dfe415019de95f0305de66b3afb40005fe382",
      "tree": "93a39a7cd459a25bfe6b30fbf105518a549dc593",
      "parents": [
        "c2a2f295a15492ebbdb2613df97f9f7d331310e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 08 17:28:34 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 08 17:52:16 2011 -0800"
      },
      "message": "Ensure referenced catch block exceptions are in the image.\n\nThis addresses Bug: 5732744.\n\nChange-Id: Ia9319b821f94bb27a11358f11b5473bb405277bb\n"
    },
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "1bba14f20039b6e706b719fdd5754eb30088d014",
      "tree": "be62972c4ff6a9afca9cf05259b624f4cdadafd9",
      "parents": [
        "c1f143de3d0370a17a4561eb83bf10a5d7908aa3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:00:36 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 01 18:41:01 2011 -0800"
      },
      "message": "Implement getting of 64-bit locals (double, long).\n\nAlso implement the JDWP \"GetClassLoader\" request, used by jswat\u0027s \"classes\"\ncommand.\n\nAlso implement the JDWP \"exit\" request, tested with jswat\u0027s \"shutdown\".\n\nChange-Id: Ic8424a332151242211d8a772721deb3199b24682\n"
    },
    {
      "commit": "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3",
      "tree": "b8982040e6a2fe250b3db127ea0b1dfdba552616",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:22:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:23 2011 -0800"
      },
      "message": "Return values for locals, so \"locals\" can show them.\n\nAlso implement a couple of other JDWP commands so jdb can show the length\nof arrays and the value of strings.\n\nChange-Id: Ib2a4dc2ee784ee10bdb924e91b0150aa8a96845d\n"
    },
    {
      "commit": "c129a6b44193ac3a872f852a69d336e0e7ed8640",
      "tree": "ff5b5503aff4e5173c570b2e471d2df0895b7b2b",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "message": "Make methods and fields accessible by default in art.\n\nThis also fixes a corner-case bug where calling Field.setBoolean()\non a non-boolean field would crash the runtime.\n\nChange-Id: I2f6693e3c3fe3bf23b4761335300506b3fbd3008\n"
    },
    {
      "commit": "dbb4079eb1e7d7738c81a97c8dd2550885c1093a",
      "tree": "733d5c08027ae65fb89132609d2aec9e6e2d747d",
      "parents": [
        "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:05:22 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:47:00 2011 -0800"
      },
      "message": "Start implementing jdb \"locals\".\n\nThis lets us show the names and types of the locals, but all the values\nwill show up as 0/null. We\u0027re going to have to walk the whole stack and\ntake callee-save frames into account to do that right.\n\nChange-Id: Ic6e115513b6e65ae7ed4b7274e70bc514e83190a\n"
    },
    {
      "commit": "0571d357843c53e042f370f5f2c2e9aa3fe803a9",
      "tree": "197e5b1c0b1bf0ee8cc0e1960470d0a8d203b4af",
      "parents": [
        "33dc7717cd16592bcc825350bea6305be9eb2ea1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 19:51:38 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Nov 13 11:57:18 2011 -0800"
      },
      "message": "Refactor the use of Method by the compiler.\n\nRemove the dependence on the Method object in dex2oat, allowing lazier\nresolution.\nIntroduce new find and iterators in DexFile to simplify common\noperations and avoid misuse of class data items.\n\nChange-Id: I39fb8252190f543d89d8b233076355cec310fe08\n"
    },
    {
      "commit": "1121e0b619d0c9df36c57396b2234a9d570b4923",
      "tree": "958c023685f88bcffc7626eb3bc7f8e37db1aa02",
      "parents": [
        "9717051c5c961d7b2d809654adc2a135fca8e6db"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 15:37:42 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 07 18:03:57 2011 -0500"
      },
      "message": "Wire up hprof.\n\nI tested this with test 074-gc-thrash, which creates a .hprof file\nthat can be read with hat.\n\nChange-Id: Ie75b7a7cf3c2ee32189df47ab0129e99449ebc6c\n"
    },
    {
      "commit": "64155032b391fd7132bdd04ec0669135ae1176a2",
      "tree": "f5379d9cb293c9f5b370c40fe6c0df19fe24b2a3",
      "parents": [
        "f8a199cb0c53b7a6f0def21ec5b462992d93746b"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 17:56:34 2011 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 03 18:26:34 2011 -0700"
      },
      "message": "Added caching of indexes for annotations.\n\nThis is a multiproject change, along with changes to libcore and\nframeworks/base.\n\nChange-Id: I333ffd264f58667f1ee25845e1de12ca99a8c299\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\n"
    },
    {
      "commit": "c4824e60fef6cb9fdf0f8442408338f4141e09de",
      "tree": "61a25e09218cfb815875076a54fe351b3a426b10",
      "parents": [
        "387b699e3dc55309023ae2427a76a1ca1d51b0cd"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:39:04 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 01 14:53:54 2011 -0400"
      },
      "message": "Add hprof. This code builds but is untested.\n\nChange-Id: Ied6549ef903761447fb3d28cf28b8bbc76e5ef35\n"
    },
    {
      "commit": "28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d",
      "tree": "f5628e47948a0d255112a3a7a01b67db41c8d424",
      "parents": [
        "e0918556e7551de638870dcad3f2023f94f85a50"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 27 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 28 23:14:15 2011 -0700"
      },
      "message": "Support for unresolved types in new-instance during verification.\n\nAlso, ensure that classes that don\u0027t load are erroneous, warn early\nabout exceptions left on a thread by the verifier/compiler, factor out\nslowpath checks for the compiler and fix the slowpath selector for\nconst-class.\n\nThis change causes more dex cache misses at runtime (more slowpath\nexecution). It also requires a \"mm clean-oat\".\n\nChange-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c\n"
    },
    {
      "commit": "9074b99bfbd5419e340f138a018b673ce71f77e8",
      "tree": "0910d8eb0e08eb6cb45a1f307b31b1bc17d70c31",
      "parents": [
        "b82b6878fb000d4731063b1bf15c39ff7c50b61f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 17:41:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 22:53:21 2011 -0700"
      },
      "message": "Better unresolved type support.\n\nAlso fix bug where miranda methods were changing their declaring class\nand thereby breaking their return type indices.\nAdd support for dumping stacks on abort.\n\nChange-Id: I3782864736b12d1f81ab9aea4909213d3344ba13\n"
    },
    {
      "commit": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\n"
    },
    {
      "commit": "d81871cbbaa34c649e488f94f61a981db33123e5",
      "tree": "a3adf3b7469fee507a4d4c4491942fbd48b4483d",
      "parents": [
        "262bf46ddc91e5b4fbd367127ff21a1877d939f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 03 13:57:23 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 24 11:56:15 2011 -0700"
      },
      "message": "Verifier clean up.\n\nThis is the first part in trying to move to a more rigorous mode of\nasserting the validity of garbage collection maps.\nIn the bring over of the verifier from Dalvik a large class had been\ncreated where all of the Dalvik/Dex functions were static methods of\nthat class. This rewrite introduces 3 key classes, Verifier that\norchestrates the verification of a method, RegisterLine which describes\nthe types associated with registers for a particular PC and RegType\nwhich describes the current type of a register within a line. The\nfunctionality is brought over from Dalvik but cleaned up to not do\nthings like goto. Failing within the verifier is also cleaned up. By\nvirtue of having stateful objects the interfaces between different\naspects of the verifier are greatly simplified.\nTo save space, RegTypes are cached upto a maximum possible 2^16, and\ngiven an Id. As the number of RegTypes is typically small this means\nthat we have a full OO implementation but at a lower space cost than the\ncurrent convention that uses botched together enum values requiring\n32bits of storage in a RegisterLine rather than 16bits (ie half the\nspace requirement per register in a register line). To make use of\nthis space more rigorous monitor verification is brought back, and\nultimately I think we can work around bug 3215458 with richer RegTypes\nthat are aware of literal objects.\nThe code removes short cuts that had been added to Dalvik\u0027s verifier and\nappear illegitimate, it also fixes a large number of bugs in the\ndescription of the verifier.\nWhere possible the spaghetti of code is replaced with straight line\nif-then-elsif.. code that clearly follows the ordering semantics of the\nspecification. The code is also aiming toward having a more type\nrigorous description of the verification process, and when this isn\u0027t\npossible following the description convention of the specification.\n\nChange-Id: Id25b742018a2ad5ea95687973cca610d7e19513c\n"
    },
    {
      "commit": "b06631143b944388fc68bedf6679c006dde5f461",
      "tree": "b616aeabb016370def3d2730f3722866cf9fd1f3",
      "parents": [
        "c393a4f7c91534ac41a81d66b12c22e68df28fc7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 18:16:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 19 18:16:37 2011 -0700"
      },
      "message": "Some low-hanging GC performance fruit.\n\nHalves the GC pause in my test benchmark (using libart rather than libartd).\n\nChange-Id: I57e5f9e312fd59ea62eea9da37a116e1ad21d4ec\n"
    },
    {
      "commit": "362f9bc807169bcfc8761dde067bbfb79b5ad0fd",
      "tree": "100689aa13a39913b43cb12780ba472897cd665a",
      "parents": [
        "fc86162ce2a3467acb690e18cc8bd9b3daafc606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 18:56:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:26:54 2011 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace warnings.\n\nChange-Id: I16b69d773e59b49e8e30227b5aa5cb1959a8930f\n"
    },
    {
      "commit": "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f",
      "tree": "1f61ecb377be4abcba4838651bc9d98b548a3f81",
      "parents": [
        "3535c22d05bb4600255db90b490e625eda874b53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:07:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:17:36 2011 -0700"
      },
      "message": "ClassLinker changes\n\n- Add ClassLinker::LockOwner for SignalCatcher\n- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available\n\nChange-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc\n"
    },
    {
      "commit": "b04f69f90d2594092bec5b294bbe7329d295bd66",
      "tree": "b0b0bb6c4db1da0dbe5ff4025013247cc7815b41",
      "parents": [
        "0691851db8fb542f4058dfb6e75faf3f9a9f5ff4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:40:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:41:31 2011 -0700"
      },
      "message": "Fix for test 069.\n\nCan\u0027t throw exception in fast interface lookup. Extra debugging that\nmethods look sane when creating native to managed records.\n\nChange-Id: If0b970c418db5ff075334af8359541a94e8680b7\n"
    },
    {
      "commit": "06b37d91bb3d543002b1aee9829691f5e8bebc7e",
      "tree": "15d08cf8993856596ca8567507a8e87d4569bd32",
      "parents": [
        "3b6baaa203fa63f1522b2172a1645f90412afdae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 11:51:29 2011 -0700"
      },
      "message": "Always log the value when an alignment check fails.\n\nAnd move checking that the alignment is a power of two to compile-time.\n\nChange-Id: I551f364af05912958ed2d4d095b1ce35b6abaf6e\n"
    },
    {
      "commit": "466bb25416b88fabd5d4387b7c7e5cc1ece78b8c",
      "tree": "8d0952cbd850f1d0ac2e43a8372ce571fb4982d1",
      "parents": [
        "a10cd94bb77ed66fa0a8b66141c4504045c92d30"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 03:29:56 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 21:45:27 2011 -0700"
      },
      "message": "Proxy implementation\n\nThis rounds out the proxy implementation by adding missing pieces to the\nclass linker, extending tests and fixing issues in the runtime support.\nThere are also some tweaks for performance and to clean up Method/Object\na little.\nA unit test of the functionality is \"art/test/run-test 044\"\n\nChange-Id: Id94102d10b81cd9b12b95ba8618f6187490204c4\n"
    },
    {
      "commit": "95caa791e560da97363c0c0d22bfda4a7e7377c3",
      "tree": "7cc1c2b15566009216a0c34f456e506e1c859e81",
      "parents": [
        "ce46d3237c5117b1d2268c17e3639392416ff34d"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Oct 12 18:14:17 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Oct 13 15:21:24 2011 -0400"
      },
      "message": "Create proxy class, constructor, and methods.\n\nThis code compiles but has not been exercised. I still\nneed to wire in the code blocks and return types.\n\nChange-Id: I1796103d3bc4fc3c863f95bdca4cfb9765d4b3b7\n"
    },
    {
      "commit": "307f75d6bcf7c32db7e1b43124dead628cc7ce96",
      "tree": "81fdf8690b0387e6535c85d11e24c2cc7b45cef3",
      "parents": [
        "caab8c4ef372db5c119bfac1911fa27b174a935c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:04:40 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 18:27:18 2011 -0700"
      },
      "message": "Add a C++ equivalent of Android\u0027s TimingLogger, and use it for the heap.\n\nThis also changes us over to one big stats update at the end of sweeping,\nlike Dalvik, rather than recording every single free individually.\n\nChange-Id: Ib8e2a83d41d36e35e154183a4e173e915af79ae9\n"
    },
    {
      "commit": "caab8c4ef372db5c119bfac1911fa27b174a935c",
      "tree": "375a1e284b123b91d4960aa674b223e1eea0583a",
      "parents": [
        "14b1b249bdd21d674c9371dee34f8ae055f73ba2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 12:11:18 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 18:12:21 2011 -0700"
      },
      "message": "Various tidy ups, add LIKELY/UNLIKELY macros.\n\nMake more aggressive use of the dex cache when we have it.\n\nChange-Id: I125a7bac031f7f0cec68194b5380bdfd83c92833\n"
    },
    {
      "commit": "0796af03edc06d92bb8d631f1c0c23befdae2315",
      "tree": "c8681daeed4fb155b43d8a824e09a2fb973ff7fc",
      "parents": [
        "1761ffc98298999f929e17cc3707aede5b890e0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:31:45 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:37:20 2011 -0700"
      },
      "message": "Fix Object::IsSoftReference\n\nAlso changed -Xzygote to default boot.art and log arguments\n\nFinally Makefile work:\n- separate out test dependencies\n- changed zygote with art to work by replacing libdvm with libart[d]\n- changed Makefile defines to name and error check their arguments\n  This was to fix bug in generating ART_TARGET_EXECUTABLES\n  where we used $(1) when we meant $(3)\n\nChange-Id: I7ef6008eff1fe99b59d151b6793e8fd8ea5304d4\n"
    },
    {
      "commit": "dfcdf1a0d2d8d75b4c701317e4a092498a8d1e9e",
      "tree": "0106200542ccbd8a12e4f35b40ee59a036ad49d3",
      "parents": [
        "8e4b2fc0565d6222ba49a14d87624e3ac170b6c5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 10 17:50:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 11 12:38:02 2011 -0700"
      },
      "message": "Proxy invocation stub.\n\nAlso removes unnecessary restoration of callee saves in runtime support\ncode.\n\nChange-Id: Ie6b91ce0297179947e176e0700ac3fbb90357e1b\n"
    },
    {
      "commit": "582a7d16bb0db323d8bd730beb61578aa3765f43",
      "tree": "ec5ce05edac63b7849b39463d02470d4cc4fde3f",
      "parents": [
        "df143242f4beaad4cc9fbabebfc033b68c40964e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "message": "Fix a handful of reflection bugs.\n\nWe now pass test 046.\n\nChange-Id: Ie605ed99e64038435608fe388c59526674af5489\n"
    },
    {
      "commit": "ae67599981e17cdfd51418c35e56e2a7c5ef4c72",
      "tree": "628f154344135cb51c94a9885b5cfae9e7a35f37",
      "parents": [
        "c10717a0b86d5719556ac3286fcb47aa2f2416fc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 17:10:22 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 18:23:51 2011 -0700"
      },
      "message": "Various assembly fixes.\n\nChange-Id: I42655af8dc3d7201d53c3393cdc585d9faa8cb82\n"
    },
    {
      "commit": "ce9eca6de042f26e9eebc41c9bee8b4d14f753aa",
      "tree": "7a141da8787f6653b30595f478ec656fd8dd01d6",
      "parents": [
        "6384f644e8120a15bddb9a72976eac1c158aba16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 17:11:03 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 18:24:23 2011 -0700"
      },
      "message": "Move from code field routines to runtime support.\n\nAdd support for exceptions from these routines. Use a macro for pending\nexception delivery. Fix bug in object_test where the signature of a\nFromCode function had changed.\n\nChange-Id: If486eff8659e5f6bb38d95b1139e8981656e4fb0\n"
    },
    {
      "commit": "f5a7a476e7ea63e094ff0f011dccc170607e6f6b",
      "tree": "4f07e57d5e3d2a82eeefcb7c6409f36b383b1d96",
      "parents": [
        "c2858561314513cc7bce2da7e13664aefef5a2ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 14:31:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:08:48 2011 -0700"
      },
      "message": "Enhance CHECK_EQ and friends to allow extra detail to be appended (like CHECK).\n\nChange-Id: Iaa980892ab31621c8bcca9ea7c6c4ee743333f45\n"
    },
    {
      "commit": "3320cf46afd082398aa401b246e6f301cebdf64d",
      "tree": "99ef2b240ad81fa7cafa0bca51ca2364120fa762",
      "parents": [
        "4f0d07c783afef89703dce32c94440fc8621a29b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 14:58:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 11:59:20 2011 -0700"
      },
      "message": "Move rest of code related blobs from Method to oat\n\nChange-Id: I55041b564ab65317c8b1f863005f20ba650a0322\n"
    },
    {
      "commit": "4f0d07c783afef89703dce32c94440fc8621a29b",
      "tree": "f6f4b68d5afc6551c61d3e86153878d9891ea13a",
      "parents": [
        "3ddac99d4dc6a036fac59d8f0bdc664ef619fb04"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 23:38:47 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 11:40:56 2011 -0700"
      },
      "message": "Spill possibly reference holding registers for runtime calls.\n\nLive references may be in registers when we crawl a stack for GC during\na runtime call. Whilst an exception won\u0027t occur we need to save the\ncallee save registers into the frame so the stack crawl can find their\nvalues. Create variants of the callee save method to save just the\nregisters that are necessary.\n\nChange-Id: I6fa479bffcbc333fe846f9bd3ef2e626e0209ed9\n"
    },
    {
      "commit": "adb460d96702573de6e732ad58ca0380405cd928",
      "tree": "f70ad27d5fc007b70765a76644519234466dee61",
      "parents": [
        "68e76526e98432625464022cb26f66b9ef6f5af4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "message": "Implement finalization.\n\nAlso make System.gc no longer a no-op. This replaces some of the\nMemberOffsets exposed by Heap with intention-revealing functions\nthat we\u0027ll want to share between all the actual GC implementations,\nbut there\u0027s still more to be done.\n\nChange-Id: I57ba26c0416fbbfe20142b7b6e27108684add7f9\n"
    },
    {
      "commit": "20cde9033d51103f31e21436e88f80e1170c78ad",
      "tree": "4b7c66092d988a9ed9345b66868da9cdf5cc8b4a",
      "parents": [
        "b408de744566a5c5a80be1ba7f5c88407e816945"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 17:37:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 17:56:41 2011 -0700"
      },
      "message": "Add Class::IsFinalizable and Object::AddFinalizerReference.\n\nAlso correctly set the special bit in Class\u0027 flags.\n\nWe need compiler support before I can go further.\n\nChange-Id: Ib7a637d7140a6f8c416635738d4d0b57c17ad628\n"
    }
  ],
  "next": "b408de744566a5c5a80be1ba7f5c88407e816945"
}
