)]}'
{
  "log": [
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "b23eab1c507f5d133a2dbcdd00c45aa86d156eef",
      "tree": "32cfae838b263e4d97444270c94940d2d576d084",
      "parents": [
        "eff81605b674f75ff541f84ef63523fdc9939a9a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 08 17:55:21 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 14 16:49:57 2014 -0700"
      },
      "message": "Add VLOG(class_linker) for clinit errors\n\nBug: 17915141\nChange-Id: I3002cf4348ec3fa241f63ff1515f813f6051c267\n"
    },
    {
      "commit": "13735955f39b3b304c37d2b2840663c131262c18",
      "tree": "0a731ac42b8230f9929172fa3e3d8051874e2b18",
      "parents": [
        "25b18bbdaa36ff936eb44f228f0518d4223e9d52"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 08 12:43:28 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 16:05:58 2014 -0700"
      },
      "message": "stdint types all the way!\n\nChange-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08\n"
    },
    {
      "commit": "cdc1aaffabbdf417d29b203b2cd2763ed2d623f8",
      "tree": "ff56b9bbaa3ce0305c0ef71c055d3664dddfe93a",
      "parents": [
        "bbb1fc6e95f46470979936450b0d3f1e020c5904"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 13:21:38 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 14:31:29 2014 -0700"
      },
      "message": "Simplify instance reference offsets.\n\nDon\u0027t encode Object\u0027s class. Use trailing rather than leading zeroes to give\noffset position.\n\nChange-Id: I1ae74e7a01f63696429644adf81cdf6ee58832fe\n"
    },
    {
      "commit": "31d8f5295c24730a57cb36cbc41197f0b7e8397c",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "8283e079a209e81caafd123a12a525922368fd34"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 29 11:22:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 30 21:49:43 2014 -0700"
      },
      "message": "Add VMRuntime.isBootClassPathOnDisk\n\nBug: 17679443\n\n(cherry picked from commit 95a935415d44903b28326424beb4db5c013ef089)\n\nChange-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1\n"
    },
    {
      "commit": "07140838a3ee44a6056cacdc78f2930e019107da",
      "tree": "4f344df6ec2612d8ddbf0a00e2b49a39a7501249",
      "parents": [
        "f9098ea6d7326b4d8de2860d18adf74046b80855"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 30 15:43:59 2014 -0700"
      },
      "message": "Enable -Wunreachable-code\n\nCaught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.\nAdd UNREACHABLE macro to document code expected to be unreachable.\nBug: 17731047\n\nChange-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e\n"
    },
    {
      "commit": "c8ccf68b805c92674545f63e0341ba47e8d9701c",
      "tree": "fb360323538cb242ebf7c5c0aca27d3a0bce0abb",
      "parents": [
        "fcabfbe577c0fd40910b565beb681bd4b66f6c5d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:07:43 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 29 20:13:48 2014 -0700"
      },
      "message": "ART: Fix some -Wpedantic errors\n\nRemove extra semicolons.\n\nDollar signs in C++ identifiers are an extension.\n\nNamed variadic macros are an extension.\n\nBinary literals are a C++14 feature.\n\nEnum re-declarations are not allowed.\n\nOverflow.\n\nChange-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a\n"
    },
    {
      "commit": "f0edfc355893d53d1104b05501c99ad5ccf305c4",
      "tree": "7e1fa49875759512f5d02b1c45435d3e3366b920",
      "parents": [
        "1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 11:46:46 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 25 15:53:54 2014 -0700"
      },
      "message": "Some optimizations for the array alloc path.\n\n- Force Array::Alloc() to be inlined.\n- Simplify the array size overflow check.\n- Turn fill_usable into a template parameter.\n- Remove a branch in Array::DataOffset() and avoid\n  Primitive::ComponentSize(), which has a switch, in the array alloc\n  path.\n- Strength reductions in the array size computation by using component\n  size shifts instead of component sizes. Store component size shift\n  in the upper 16 bits of primitive_type field.\n- Speedup: ~4% (3435-\u003e3284) in MemAllocTest on N4.\n\nBug: 9986565\n\nChange-Id: I4b142ffac4ab8b5b915836f1660a949d6442344c\n"
    },
    {
      "commit": "2d5f39ed5aeaeb7ca22b07b4c6e8c56348ef8893",
      "tree": "b0b9a8d4c386555f009b825bd5fbd8ab31909c3b",
      "parents": [
        "24f4b816dd50793e8456dc60fe1b50856004d708"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 19 17:52:37 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 19 18:57:47 2014 -0700"
      },
      "message": "Add ScopedAssertNoThreadSuspension\n\nAdded a new class, ScopedAssertNoThreadSuspension.\nDeleted some unnecessary ScopedAssertNoThreadSuspension since\nVisitObjects already has a ScopedAssertNoThreadSuspension.\n\nChange-Id: I29ec0006120c39a27184d30e2d1d0c179e203776\n"
    },
    {
      "commit": "3c13a794845e0cf7887e33b2ec20de7e6ba85f8f",
      "tree": "ab9a9a426a371de0c32e48a85fdda44a321a06a0",
      "parents": [
        "5cdd0734d2f79eedc530f5f1e876cd2110e29c86"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:43:07 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n(cherry picked from commit 33c36d4f22ab6a5e61eb47b654deaf647c34e49c)\n"
    },
    {
      "commit": "5a4b8a236030460651a3136397d23ca6744e7eb7",
      "tree": "0e43891398e416d3fa77c7de391bf4db4408e8ee",
      "parents": [
        "19f7c95491a053b818f914137fa73df0517b8792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:30:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 19:50:12 2014 -0700"
      },
      "message": "ART: Rename Handle hierarchy\n\nBring the names in line with normal OO principles: ConstHandle\nbecomes Handle, and Handle becomes MutableHandle.\n\nChange-Id: I0f018eb7ba28bc422e3a23dd73a6cbe6fc2d2044\n"
    },
    {
      "commit": "2ed8deff799448e094fa7a7cb9cf3b718820f4c6",
      "tree": "b33fa371673d2019b6a8bdb2c928237cd7b3a9d3",
      "parents": [
        "41bc89598bbfe1037740a6a2e12ce0936dd9ba19"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 28 14:41:02 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 09:42:50 2014 -0700"
      },
      "message": "ART: Allow quickening in the boot image\n\nUpdate the class linker to accept class status from the boot image\nin compiler mode. Update compiler driver to allow quickening for\nboot image classes. Update method verifier to accept quickened\ninstructions in compiler mode when we just want to dump. Update\noatdump to the new verifier API.\n\nBug: 17316928\n\n(cherry picked from commit 35439baf287b291b67ee406308e17fc6194facbf)\n\nChange-Id: I9ef1bfd78b0d93625b89b3d662131d7d6e5f2903\n"
    },
    {
      "commit": "5182932cf6704b53e957f7b4be021fe505a55e22",
      "tree": "99ee2bfb5a6f4d27735aeed26a0533c759db733c",
      "parents": [
        "56369897d662ea63ea5ed57ae36af0ae0fa1452d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 25 15:05:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 15 09:37:25 2014 -0700"
      },
      "message": "ART: Change access flag behavior in verifier\n\nNote: this moves the miranda modifier to the upper 16 bit.\n\nBug: 16161620\n\n(cherry picked from commit 7fc8f90b7160e879143be5cfd6ea3df866398884)\n\nChange-Id: I2f591d53b7d1559171e70aaaf22225d94b4882f5\n"
    },
    {
      "commit": "7b078e8c04f3e1451dbdd18543c8b9692b5b067e",
      "tree": "414229c6b87eb20ea24c40780752da5a3999a49a",
      "parents": [
        "f79ba17defbd9342e44ab9f3de0807054673d3c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 10 14:44:24 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 12 14:57:53 2014 -0700"
      },
      "message": "Compile time performance improvements focusing on interpret-only.\n\nReduce virtual method dispatch in the method verifier and make more code\ninline-able.\nAdd a StringPiece with const char* equality operator to avoid redundant\nStringPieces and strlens.\nRemove back link from register line to verifier and pass as argument to reduce\nsize of RegisterLine.\nRemove instruction length from instruction flags and compute from the\ninstruction, again to reduce size.\nAdd suspend checks to resolve and verify to allow for more easy monitor\ninflation and reduce contention on Locks::thread_list_suspend_thread_lock_.\nChange ThrowEarlierClassFailure to throw pre-allocated exception.\nAvoid calls to Thread::Current() by passing self.\nTemplate specialize IsValidClassName.\nMake ANR reporting with SIGQUIT run using checkpoints rather than suspending\nall threads. This makes the stack/lock analysis less lock error prone.\nExtra Barrier assertions and condition variable time out is now returned as a\nboolean both from Barrier and ConditionVariable::Wait.\n\n2 threaded host x86-64 interpret-only numbers from 341 samples:\nBefore change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms\nAfter change: Avg 139.163% 99% CI 3.027ms to 838.257ms\nReduction in average compile time after change is 20.9%.\nSlow-down without change is 26.5%.\n\nBug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable\ncould return unresolved type when class loading is disabled.\nBug: 17398101\n\nChange-Id: Id59ce3cc520701c6ecf612f7152498107bc40684\n"
    },
    {
      "commit": "ab0ed82ff64ba5a751dcc0a38d0e0c41c53dc923",
      "tree": "c67cceb67994868c42cc16ab8416fa93b56ce682",
      "parents": [
        "3fec7718041302f769995eedda9beef362131842"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 11 14:21:41 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 11 18:04:33 2014 -0700"
      },
      "message": "Add fast path to VMClassLoader.findLoadedClass\n\nVMClassLoader.findLoadedClass now calls FindClassInPathClassLoader\nas a fast path. Exclusive time results (trace view maps launch):\n\nBefore:\nnativeFillInStackTrace 1.4%\ndefineClassNative 1.2%\nfindLoadedClass 0.2%\n\nAfter:\nnativeFillInStackTrace 0.5%\ndefineClassNative 0.0%\nfindLoadedClass 0.9%\n\n(cherry picked from commit 194116c836080de14245a3a7c4617d07b8abf8cf)\n\nChange-Id: I63fd7b4bccb71789e92bd39d1d3f9d0de22535de\n"
    },
    {
      "commit": "bb0c7f6a247521bc3e85f08f93603122bccb1a72",
      "tree": "40e13d2b70928d2d885fdf2f9d501c2d067bf3c9",
      "parents": [
        "59dae45a3d1ef83771fb78421fcf8fda838b4d16"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 10:59:33 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 17:33:54 2014 -0700"
      },
      "message": "ART: Fix preverified setting in VerifyClass\n\nMake sure soft-failed classes cannot set methods to pre-verified.\n\nBug: 16828525, 17465185\n\n(cherry picked from commit 3892cf8da7d5e76c0dee585fc8f69df773680525)\n\nChange-Id: I09c0a68ca722978459741311148eae7614f9ca49\n"
    },
    {
      "commit": "48498591b90a8ff7b24b1ce05c220e3bc42013df",
      "tree": "39ca61335fafc57cbcf91c5087335f367ccbedc4",
      "parents": [
        "b9620f305c79914f5159cf9279a7ccd173af1186"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 10 19:48:05 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 11 08:04:35 2014 -0700"
      },
      "message": "ART: Correctly make methods preverified\n\nBug: 16828525\n\n(cherry picked from commit df1532b9ba0cda2d00b78fbdef461f8a6cf8a737)\n\nChange-Id: I66756348b2aa50e41dacca59769b6810a91c73b0\n"
    },
    {
      "commit": "958d78e51725730ccc38c33ff9424887adc7343b",
      "tree": "b5e67909fc0cab3e6a7d4860d85e8f1649961021",
      "parents": [
        "73f7d79c1755f85b2be590aa9d9b18e054f76a1a",
        "faff0f05fef90577c9744505555675185832aacd"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 22:22:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 10 22:22:14 2014 +0000"
      },
      "message": "Merge \"Remove reference_static_offsets used for iterating through class static fields.\""
    },
    {
      "commit": "faff0f05fef90577c9744505555675185832aacd",
      "tree": "40b5130526b80fe0a59f815f19dc2b87b0a9f879",
      "parents": [
        "05382d22a2ebbc95142ec2fc46e2d56b23e699ee"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 12:03:22 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Sep 10 14:40:37 2014 -0700"
      },
      "message": "Remove reference_static_offsets used for iterating through class static fields.\n\nSince static fields are contiguous in class object and there is no need to\ntraverse super classes, it\u0027s not meaningful to use reference_static_offsets.\nAlso especially with embedded vtable/imt, static field offset can\u0027t be encoded\nwith an unsigned integer anyway.\n\nA corresponding change is made to Class.java to remove the member field.\n\nBug: 16236588\nChange-Id: I1fde3cd9efce884945876f0658c63d992164fd94\n"
    },
    {
      "commit": "1a465ca32178292888d3dc34b1cd784432a35848",
      "tree": "c7588d59075c51969fb2a46edb09a1fefeb9a848",
      "parents": [
        "833ec8ff84a25078f5755489d7a36db3015c069a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Sep 10 19:44:39 2014 +0200"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 10 11:10:56 2014 -0700"
      },
      "message": "Ensure class is linked before resolution\n\nAdds a missing call to ClassLinker::EnsureResolved to ensure we did link the\nclass and retired the temp class (placeholder) before doing the resolution.\n\nBug: 17435441\n\n(cherry picked from commit 72da76359aa5599f78ddca79b294e9bf30e004ed)\n\nChange-Id: I3b368567c7b24ec2ff7ee1dec7bcd3501a6061f8\n"
    },
    {
      "commit": "aa4497db59f1eeec954f2ba5da6d458fcdf9b3a4",
      "tree": "1efe5c6c5fe93ae73b6ad02db1a4ac368c71c00e",
      "parents": [
        "6724a9531c92368491dd17937d0087f73a7c0642"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 05 14:01:17 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 10 16:02:14 2014 +0100"
      },
      "message": "Improve dex location canonicalization-related performance.\n\nEagerly add canonical dex file locations to the OatFile\u0027s\nprimary lookup map in Setup(). This moves the boot.oat work\nfrom every app startup to the zygote initialization. Since\nwe always ended up initializing the canonical location map\nanyway due to the way that we\u0027re loading dex files, the lazy\ninitialization didn\u0027t save anything.\n\nClean up dex file name canonicalization to make sure we\nfree() the memory returned by realpath() rather than using\nstd::unique_ptr\u003c\u003e with the default deleter.\n\nAvoid some unnecessary duplicate OatDexFile lookups.\n\nBug: 16828525\nBug: 17346103\nChange-Id: Id8fbc8992f62996138eb2006a0046c6529747c09\n"
    },
    {
      "commit": "6be5a284194f34b5316982c6afa0d3a15bcbcfef",
      "tree": "ea185692ff8cd6d8e11158bf3ee05a21365e6f44",
      "parents": [
        "42bc2f1fac342a01d38bc452da1e70f8099f7c2f",
        "30c2e1b3970c8a720eac38dbaca1d849c619114e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 09 09:08:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 09 09:08:42 2014 +0000"
      },
      "message": "Merge \"Small error reporting fix in class linker.\""
    },
    {
      "commit": "6bcae8fa93684af581d16400f360541d39e5b5e6",
      "tree": "88f99458a0141805acee3f730a0709542283698e",
      "parents": [
        "30cbbee37d9fcca1a39b3681434180102ee5251a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 04 18:33:17 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 08 18:14:42 2014 -0700"
      },
      "message": "Add fast path for FindClass using the type dex file.\n\nIf we are using the PathClassLoader with a BootClassLoader\nparent, we can handle the common case in the FindClass function\nwithout needing to go back to java code.\n\nAround 10% speedup measured of maps launch, could be noise due to\nlarge variation of app launch times. Eliminates defineClassNative\nfrom being anywhere near the top of sampling profiles.\n\nBug: 17397179\nBug: 16828525\n\n(cherry picked from commit 8a39e7fe02e9a81853dc7a75cb50d9ece07a9b37)\n\nChange-Id: I1f31de76c1b1a53e32173b1e61a59b0e2f267c98\n"
    },
    {
      "commit": "30c2e1b3970c8a720eac38dbaca1d849c619114e",
      "tree": "35b252fe4012c6b7aa9ad94b29c350bf542722a9",
      "parents": [
        "e2c23739c6395a83b30ece38f8a2e9e1bf7cf3ce"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 08 09:55:29 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 08 18:17:07 2014 +0100"
      },
      "message": "Small error reporting fix in class linker.\n\nChange-Id: Ia9e94df48e9984c25ad8ab5c6ca41f9153984915\n"
    },
    {
      "commit": "621962a0872bf328dba7eda44061f0f505014cef",
      "tree": "5212d8448e57e959dc6bac16ca9be4dffc522f1a",
      "parents": [
        "a8c55ae449ad423087f232b2fec1064062755970"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 02 15:53:55 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 05 16:33:50 2014 +0100"
      },
      "message": "Avoid recomputing the dex checksum during class loading\n\nThread the already computed checksum to VerifyOatAndDexFileChecksums and\nLoadMultiDexFilesFromOatFile to avoid recomputing it.\n\nBug:17346103\n\n(cherry picked from commit ca3459398018360d9968a52eebf727df085caf83)\n\nChange-Id: Ie244efaca55b9e7c814b35feec7fce11fab3856d\n"
    },
    {
      "commit": "a8c55ae449ad423087f232b2fec1064062755970",
      "tree": "17ca4770b299f41045e1e820840eafd255d4b12b",
      "parents": [
        "194b032b6d43299e117292494064d54ecf4ddbd8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 05 16:14:19 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 05 16:14:19 2014 +0100"
      },
      "message": "Remove unreachable code from class_linker.cc\n\nIf the checksum doesn\u0027t match the oat_dex_file will be NULL, a case\nwhich is handled in the first if.\n\nBug: 17402267\n\nChange-Id: If8547ddc8fd7eff59a3b7dd36c07ac4ceb351361\n"
    },
    {
      "commit": "217dc450cf0fef8539beaded77c704cfcb6669e9",
      "tree": "73ebab28a586f091dd3ac369b6165acb3410ad53",
      "parents": [
        "7b04ae299eb77786768ae05ba2498eb4eba6ddf6",
        "dbf3be0f133c0bdf454f637fee2452dbb5f7c027"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 04 17:23:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 04 17:23:53 2014 +0000"
      },
      "message": "Merge \"VisitClassesWithoutClassesLock isn\u0027t safe if classes move.\""
    },
    {
      "commit": "68caf9e7232109c698e7f91f64b348cf37b432dd",
      "tree": "2a7a5390eb54ceb846f0cee1afd956076216695e",
      "parents": [
        "5355835411cafcc2772e061cb7aef3b8ca1e6ea1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 03 13:48:16 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 04 09:57:38 2014 -0700"
      },
      "message": "Fix stack overflow and duplicate methods while tracing.\n\nBug: 16386215\nChange-Id: I0d0ae0113a3a00013ce84a1f5a110e2c52f19b86\n(cherry picked from commit 6b28a456b075fe53dfb7e924a44dbf35d0d41eb3)\n"
    },
    {
      "commit": "dbf3be0f133c0bdf454f637fee2452dbb5f7c027",
      "tree": "cd57469dbefeb18ebbc0d8d2be3da236bb3218c5",
      "parents": [
        "a07557ccece64fa7084bb01b9d26957bd0977c10"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 29 15:40:08 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 03 17:39:44 2014 -0700"
      },
      "message": "VisitClassesWithoutClassesLock isn\u0027t safe if classes move.\n\nWhich they do, so avoid by doing an array allocation.\nAlso, tidy member variables to the end of ClassLinker.\nRemove unnecessary mutable. Tidy and fix a locks required/excluded.\n\nChange-Id: I2404a9e7a1ea997d68ab1206f97d2a20dffbda06\n"
    },
    {
      "commit": "63557459a4098294a9ff44d035241de2966047c0",
      "tree": "0c0b200ee1da9d269e77c2c6d2cacc7efa43f6e2",
      "parents": [
        "9a4f02722051955e536d6aacb776d637a6713545"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 04 16:57:15 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 02 15:41:21 2014 -0700"
      },
      "message": "Pre-allocate the NoClassDefFoundError to be thrown for boot classes.\n\nBring over a Dalvik \"optimization\".\nBug: 12804658\nBug: 16853450\nChange-Id: I6419de7bd2ba18d91479cb52489104954f5c4524\n"
    },
    {
      "commit": "68b56858367e29461ae290fd797443a1ef6d8005",
      "tree": "c086a68bcbbb50d7c3b829bcc7d4231ff815db4a",
      "parents": [
        "7c7686e62d262f1823876cebb3700e20f967dd56"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 29 20:19:11 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 02 08:01:04 2014 -0700"
      },
      "message": "Reduce and speed-up class def searches.\n\nUse the class linker for descriptor lookups from the compile driver so that\ndex caches are populated.\nReduce the scope of functions for scanning class paths to just the class\nlinker where they are performed.\nIf we see more than a threshold number of find class def misses on a dex file\nlazily compute an index, so that future lookups are constant time (part of the\ncollection code is taken from\nhttps://android-review.googlesource.com/#/c/103865/3). Note that we take a lazy\napproach so that we don\u0027t serialize on loading dex files, this avoids the\nreason the index was removed in 8b2c0b9abc3f520495f4387ea040132ba85cae69.\nRemove an implicit and unnecessary std::string creation for PrintableString.\n\nSingle threaded interpret-only dex2oat performance is improved by roughly 10%.\n\nBug: 16853450\n\nChange-Id: Icf72df76b0a4328f2a24075e81f4ff267b9401f4\n"
    },
    {
      "commit": "7adb7ac3913364de8cc57b8934024dd12e1d3bea",
      "tree": "929dd2e25f87dd8c5bfc4865834f18b8b776a344",
      "parents": [
        "c84b7c54c2251344018a4b4e78b122caf7c03b64"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 29 10:28:25 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 29 10:38:13 2014 -0700"
      },
      "message": "Fix segfault if running without image.\n\nBug: 17325091\nChange-Id: I343099543ce0abf02219da84d61d9ce2dfc47980\n"
    },
    {
      "commit": "6950ae42dc0f64c825bf61cb13c0bfb254ad97bd",
      "tree": "bd1c39429488b5c23259df407c5aa4e89360dc2f",
      "parents": [
        "063f73c2678f91ec0292b31b2dba0021cb911f3e",
        "381e4ca3cc9fc6405ff20e1de873a56d78d51923"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 28 19:15:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 28 19:15:12 2014 +0000"
      },
      "message": "Merge \"Filling hole between subclass and superclass.\""
    },
    {
      "commit": "381e4ca3cc9fc6405ff20e1de873a56d78d51923",
      "tree": "d526a0a141f6141c941cc6862be30f64eaa4735c",
      "parents": [
        "a0a0da29e7d4d5c1bd471c49f1a4b6ec98fb767a"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 17:24:27 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Thu Aug 28 12:00:07 2014 -0700"
      },
      "message": "Filling hole between subclass and superclass.\n\nSubclasses no longer need to be 4-byte aligned at the end. Any gaps\nbetween a superclass and its subclasses will be filled in by halfword\nor byte fields if possible.\n\nRefactored the alignment and shuffling methods to use a priority queue\nin order to reduce the amount of logic when laying out objects.\n\nChange-Id: Ifed71af534e0c5e77bb14555c44b973fe66df6da\n"
    },
    {
      "commit": "524507a9265e8e5e2b040c113d903c815748245a",
      "tree": "7f11e3d63925531efaf1a2a042cf03b3c444973a",
      "parents": [
        "83c115930b403db2b6b38d9dcb4828e31feb792f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 27 15:28:28 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 28 11:38:41 2014 -0700"
      },
      "message": "Prevent exception bugs in class linker\n\nThere were some places that could throw exceptions but still succeed.\nThis caused the allocation entrypoints to occasionally allocate a\nheap object with a pending exception.\nAlso added some additional AssertNoExceptionPending.\n\nBug: 17164348\n\n(cherry picked from commit 58c016c3f85d6d5496cea25325778de3a8d9a3ac)\n\nChange-Id: Id9918fa8f1a5d713b847cb95cdade925ff80a826\n"
    },
    {
      "commit": "ae94e350f100207359b8345d8d21e78e7cfb44c4",
      "tree": "31d11bd22ca174488ae0946d2e84a2a3b3a2483e",
      "parents": [
        "9c18858899738f79e75b5a31a96b91c8bfa8bdd7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 27 15:32:56 2014 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Aug 28 10:53:15 2014 +0200"
      },
      "message": "Ensure proxy constructor is in dex cache\n\nBug: 17262039\n\nChange-Id: I879341fa9c66f18ec64d6d4bf6a222a452c27739\n"
    },
    {
      "commit": "84d7605f93f1e6e86a16e02017e305c90e93117a",
      "tree": "4602fe9beb2c0e59ff89a828473c1c2acf07930b",
      "parents": [
        "a9ffc181c61f5634753bf1039ed50bf22c800fde"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 22 17:49:35 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 26 16:39:14 2014 -0700"
      },
      "message": "Support booting without functioning boot.oat/art patchoat.\n\nBug: 17000769\n\nChange-Id: I89c26a905af12ea288742368c2c038afd57a879a\n"
    },
    {
      "commit": "b7fbafdac8cf0ff8f860e6e85646d6c88d3914ed",
      "tree": "7e2b298f7563d4c964772b40a2a580b7a7c1d0a5",
      "parents": [
        "654881ffd780066fe1160320059ae629416b4652",
        "df7337508381dce5e653b2e7a2ee4ca93103d67c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 17:11:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 17:11:38 2014 +0000"
      },
      "message": "Merge \"ART: kSuper also has IncompatibleClassChangeError\""
    },
    {
      "commit": "df7337508381dce5e653b2e7a2ee4ca93103d67c",
      "tree": "18596f2a30c076fb41a0ee70baf34e18c7e681ab",
      "parents": [
        "e18aa4316eb9a15cd6b1051f27a1ce49967c170e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 25 20:55:01 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 26 10:10:52 2014 -0700"
      },
      "message": "ART: kSuper also has IncompatibleClassChangeError\n\nWhen resolving methods, kSuper can also have\nIncompatibleClassChangeError.\n\nBug: 17266767\n\n(cherry picked from commit 9cb8d7a9a5013dd1e6734d9643573a4750d869e2)\n\nChange-Id: I5fafe03ad578f605825a3d0c89f1254a4a385b76\n"
    },
    {
      "commit": "8850011ceffce5de38262169de74e4a41ced50eb",
      "tree": "ff0b6f9a54cf3eadaecbd7452eb335fbce9dd5a9",
      "parents": [
        "7713d104f34606161fbf36497be2e2aa76d87ca9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 22 12:12:56 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 25 16:18:55 2014 -0700"
      },
      "message": "Remove an intermediate field array in ClassLinker::InitializeClass.\n\nThis improves on CL 105090 by removing the need for the intermediate\nfield array by iterating two iterators in parallel.\n\nBug: 12687968\nChange-Id: I32d4570948a9d39ccb1c20a02e18b48f15ed0738\n"
    },
    {
      "commit": "37f05ef45e0393de812d51261dc293240c17294d",
      "tree": "7c7793862efa52e1deb42babbdcb652c245ab941",
      "parents": [
        "e25826e28ea65d9c1aa23f84788a091c677b20c7"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jul 16 18:38:08 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Mon Aug 25 11:16:53 2014 -0700"
      },
      "message": "Reduced memory usage of primitive fields smaller than 4-bytes\n\nReduced memory used by byte and boolean fields from 4 bytes down to a\nsingle byte and shorts and chars down to two bytes. Fields are now\narranged as Reference followed by decreasing component sizes, with\nfields shuffled forward as needed.\n\nBug: 8135266\nChange-Id: I65eaf31ed27e5bd5ba0c7d4606454b720b074752\n"
    },
    {
      "commit": "e25826e28ea65d9c1aa23f84788a091c677b20c7",
      "tree": "0d89c7f23c5095907756a53ef8ebdaf92db0a48d",
      "parents": [
        "21259fedf4fd0f786c71f69493ebfbb9affe3a8d",
        "64ad14dbe2225441fb7734bf6d89358d96692eea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 25 17:51:38 2014 +0000"
      },
      "message": "Merge \"Support running without a boot image.\""
    },
    {
      "commit": "64ad14dbe2225441fb7734bf6d89358d96692eea",
      "tree": "8992ebe906a4a0040502132aa9c77628a0a5ced6",
      "parents": [
        "688d4a42ff5ab3bcb28d516afcb80b79c392e8e4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 19 14:23:13 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 25 10:36:26 2014 -0700"
      },
      "message": "Support running without a boot image.\n\nBug: 17000769\n\nChange-Id: I6404d5050c8a2f4ee6e70d58532eb25ee9de248e\n"
    },
    {
      "commit": "bf99f77dda749e2b653e8c45259b1fb56e7bb012",
      "tree": "98addbb3533c745781bc26e4a55cbbdd6d6e97e7",
      "parents": [
        "762f0a5bdd238458bbb463a9565388f2047a98d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 23 16:37:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 23 16:54:24 2014 -0700"
      },
      "message": "Clean up Handle usage.\n\nPrefer using ConstHandle instead of Handle as function arguments\nsince you can\u0027t assign new references to ConstHandle which helps\nprevent bugs.\n\nChanged NullHandle to be a ConstHandle so that you can never modify\nit to be a non null reference.\n\nChange-Id: I81cb979f6f8d5b49e5614966a2caf28c3701dd4f\n"
    },
    {
      "commit": "67ef46adfb2c4990832e23aebeb9c0582d8519c4",
      "tree": "07f95a8a9c022c547842d43fedd155cbaff4df33",
      "parents": [
        "ed9fe4ffd9516cfb01b53a3a2c81d3e223ee352c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 21 15:59:43 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Aug 21 16:00:27 2014 -0700"
      },
      "message": "Avoid handle-less fields in ClassLinker::InitializeClass()\n\nThere were some handle-less fields in a SafeMap across GC points.\n\nBug: 12687968\nChange-Id: Ib8c6527d4e23031f1d0074fa11d8f85499b68340\n"
    },
    {
      "commit": "ed9fe4ffd9516cfb01b53a3a2c81d3e223ee352c",
      "tree": "54b9d158f83a74dc605311f597353bc8e024836f",
      "parents": [
        "40be3b816c860a42e2761e1a614762ea24d12a32",
        "41369d2f7042b728a78d5f1e8c49925463e50294"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 19 21:58:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 16 04:03:35 2014 +0000"
      },
      "message": "Merge \"Avoid handle-less methods in ClassLinker::LinkInterfaceMethods().\""
    },
    {
      "commit": "41369d2f7042b728a78d5f1e8c49925463e50294",
      "tree": "266b5ca79dd207f8f93d6ad3e7512b8c59bd9b7a",
      "parents": [
        "92fd388b9bb433a54e9e7a4e6ab9415f59d8956c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 19 13:10:36 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 19 13:16:42 2014 -0700"
      },
      "message": "Avoid handle-less methods in ClassLinker::LinkInterfaceMethods().\n\nThere were some handle-less methods in local variables across\npotential GC points.\n\nBug: 12687968\n\nChange-Id: I786fbaadf7a52e98194080c67c90fc1c35060d59\n"
    },
    {
      "commit": "9dcc4572949f6a8231a1b4ed859676ba6f411726",
      "tree": "127ad110c7bd5fa865de2dd64e8658e73d95ddc0",
      "parents": [
        "57101be6db093d9d27776f77eb8880ae5bae9913"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 14 14:16:26 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 19 14:07:49 2014 -0700"
      },
      "message": "Make apps able to run with a failing patchoat\n\nBug: 17000769\n\nChange-Id: I0a1a4dc7f5d4bb268530840302ecfb1555231e05\n"
    },
    {
      "commit": "9bdec8839c1a34d09ec3e8916a4bd3a022ac45b6",
      "tree": "bd757f04809fdbfebd501594731e3eac9e5fd487",
      "parents": [
        "ee736b29675455ab0be615581145aa239ce7a6b3"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Aug 15 17:11:12 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 18 11:25:13 2014 -0700"
      },
      "message": "Check that we don\u0027t accidentally invoke compiled code when -Xint.\n\nThe heap poisoning breakge (b/17018234) would have been detected with\nthis check.\n\nBug: 17018234\nChange-Id: If4827ea1b02396d41012f0955e55c887387a0565\n"
    },
    {
      "commit": "db8a664e0b68c7c4d36270cd21dce8de1912d7f9",
      "tree": "3f7fcf610d2de28159cf77ab8e190e18a072e979",
      "parents": [
        "37f048b19da5ac245a6b2a8473b326d2167cc692"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Aug 14 17:18:52 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 15 09:38:52 2014 -0700"
      },
      "message": "Prevent stubs from being installed in java.lang.reflect.Proxy.\u003cinit\u003e.\n\nThis CL is a better fix for proxy tracing and undoes the changes in\nhttps://android-review.googlesource.com/#/c/103025/\n\nChange-Id: Ie82bb49f07774bd08a6720ddbe5b1f8ee9363acf\n"
    },
    {
      "commit": "97b52f89e5e0b52a08d4b9a3953d0973a3cf5636",
      "tree": "31cd309bfbb4e566fcecb1d951e5a5504a891a20",
      "parents": [
        "3842ad76aaeb80e0bb6b02c5f7dc4674533ef872"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 14 11:34:07 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 14 11:47:39 2014 -0700"
      },
      "message": "Make OatClass and OatMethod immutable once more.\n\nOatClass and OatMethod are representation of disk data and we don\u0027t want the\nruntime to mutate this.\n\nChange-Id: Id5b8658fd544f5d6e1b9120af134d3644ff1a52c\n"
    },
    {
      "commit": "eff0f5d9d52805abf825601960cc0c42dc8d7b5a",
      "tree": "eba6218e9026352b5e50b0bed1337d3b5aa48763",
      "parents": [
        "e8bf3df2bcc61c12a7e66b4995a083f9ed3939e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 13 21:49:37 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 14 08:41:02 2014 -0700"
      },
      "message": "ART: Fix class-linker handling\n\nResolveMethod did not account correctly for the mutual exclusivity\nof direct and static methods. In such a case we threw a NoSuchMethodError,\nwhile the correct behavior is to throw an IncompatibleClassChangeError.\n\nBug: 16956477\n\n(cherry picked from commit b5d1efa0012d31f7c52c0a2e2b70c77c8708c885)\n\nChange-Id: Id014affe0b8a43dbd75570b123b921d5853ab135\n"
    },
    {
      "commit": "38eecb0f4288a374c9b0b4b4df8793eb5fc6697c",
      "tree": "5e3ddfcba0736d47806a35c12ca30853fb4ead67",
      "parents": [
        "e39a5e1ced3d2b87974c646678dd719c02a9a010"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Aug 13 14:51:03 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Aug 13 14:51:03 2014 -0700"
      },
      "message": "Use handle in one case that spans a gc-point.\n\nBug: 16689428\nChange-Id: Ib209d2ca1e7024bffb2bc17c5b5899e231c0e2ca\n"
    },
    {
      "commit": "4fcdc94d22a4608e355aa8df36240181149d10e8",
      "tree": "cb600df7e9b585720c03a08b10509151aa96d5dd",
      "parents": [
        "b66252112d45fd24eab85122fa8902afd1324542"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 22 10:48:00 2014 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 13 18:01:51 2014 +0100"
      },
      "message": "Execute an application even when dex2oat crashes.\n\nBug: 17000769\n\nChange-Id: Iffeb582862a5e794b6c7364c7ec2368cfd0f2214\n"
    },
    {
      "commit": "1ff3c98775a4577cf053dba9a0c2d5c21c07b298",
      "tree": "2d09c27c69678b53b4c9dc486024f3547efd4bca",
      "parents": [
        "99c251bbd225dd97d0deece29559a430b12a0b66"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 02:30:58 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 12 16:08:05 2014 -0700"
      },
      "message": "Avoid use of std::string where we have const char*.\n\nRemoving the ClassHelper caused std::string creation for all calls to\nClass::GetDescriptor and a significant performance regression. Make the\nstd::string an out argument so the caller can maintain it and its life time\nwhile allowing GetDescriptor to return the common const char* case.\n\nDon\u0027t generate GC maps when compilation is disabled.\n\nRemove other uses of std::string that are occuring on critical paths.\nUse the cheaper SkipClass in CompileMethod in CompilerDriver.\nSpecialize the utf8 as utf16 comparison code for the common shorter byte\nencoding.\nForce a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing\ncode), add some LIKELYs.\n\nx86-64 host 1-thread interpret-only of 57 apks:\nBefore: 29.539s\nAfter: 23.467s\n\nRegular compile:\nBefore: 1m35.347s\nAfter: 1m20.056s\n\nBug: 16853450\nChange-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad\n"
    },
    {
      "commit": "68d8b42ddec39ec0174162d90d4abaa004d1983e",
      "tree": "0bb6ccf3b996bb8363c10d07aa39cde221980602",
      "parents": [
        "9c522c2cbbf50dc687728747b37ad59985750b65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 17 11:09:10 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 08 08:29:53 2014 -0700"
      },
      "message": "Wire up check JNI force copy mode.\n\nIncrease check JNI checks.\nBreak apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h.\nFix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case\nof VM routines.\nMake class loader override and shared library class loader JNI global\nreferences rather than mirror pointers.\nClean-ups to native bridge.\n\nChange-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55\n"
    },
    {
      "commit": "58a5af8568d224ca7eccf2483396ff9862f8d1ee",
      "tree": "4dfac17316970040e079244523b9b1e2ea163f05",
      "parents": [
        "1b192268f167f603fc372f02f9067f3ce5d82daf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 31 16:23:49 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 06 15:57:05 2014 -0700"
      },
      "message": "ART: Add guards to the dex cache and its shortcuts\n\nDo not return fields, methods or classes if the (declaring) class is\nerroneous.\n\nBug: 16692788\nChange-Id: If43c2414ad0eb22db5eba7cf66396c7f16c26597\n"
    },
    {
      "commit": "f0a3f09c3d54646166a55c05a6b39c7dd504129c",
      "tree": "35a76479f1b774ae100727547a48da5bc0878e66",
      "parents": [
        "484e2c2d3531e5bb36f0e1e12f26c708939c6579"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 24 16:26:09 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 06 12:49:57 2014 -0700"
      },
      "message": "Fix proxy tracing and enable tests that now work with tracing.\n\nAlso updates proxy_test to generate an image for GetQuickOatCodeFor.\n\nBug: 16386215\nChange-Id: Ie7daad3d73ea7b60187bc1e7037ade0df8277107\n"
    },
    {
      "commit": "6e183f2e973a20f2eaca135c240908e1bf98c5d0",
      "tree": "8a989eb8dbaca6a2c505569784740f9581fe7e98",
      "parents": [
        "eb76e11d836ea953b4e40a28e3e69d3b0f4c86fa"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 18 14:57:04 2014 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 05 10:22:08 2014 -0700"
      },
      "message": "Make system use patchoat to relocate during runtime.\n\nChange dalvik_system_DexFile.cc so that isDexOptNeededInternal will be\nable to indicate that a patchoat is required. Change default of relocate\noption to be on.\n\nBug: 15358152\n\nChange-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26\n"
    },
    {
      "commit": "4e1d579d6401fef2dd57b16f8d406e33221a69d9",
      "tree": "2abc27cbd45cc8a4775df928280c63c1606cff75",
      "parents": [
        "89c210bf418a152ccabfbbf853ddcce33aea450d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 15 23:56:47 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Aug 04 17:52:05 2014 +0100"
      },
      "message": "Use canonical paths when searching for dex files\n\nApps which use the DexPathClassLoader directly may\npass symlinks when trying to load dex files. This\nwill not work as we use string comparision to find\nthe dex in an oat file. The CL fixes this issue by\nusing using dex conical paths for comparisons.\n\nBug: 15313272\n\nChange-Id: Ic314374b17612c3afbcadec93a88b2515a0aca5e\n"
    },
    {
      "commit": "94f7b49578b6aaa80de8ffed230648d601393905",
      "tree": "cfc69e453faefee38178ceb85378e1f0f1e17812",
      "parents": [
        "8df73882c60451e7f789bf9b1f3db2d7dc228640"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 22 18:08:23 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 29 13:30:46 2014 -0700"
      },
      "message": "Add GcRoot to clean up and enforce read barriers.\n\nIntroduce a value-type wrapper around Object* for GC roots so that 1)\nwe won\u0027t have to directly add the read barrier code in many places and\n2) we can avoid accidentally bypassing/missing read barriers on GC\nroots (the GcRoot interface ensures that the read barrier is executed\non a read).\n\nThe jdwp test passed.\n\nBug: 12687968\nChange-Id: Ib167c7c325b3c7e3900133578815f04d219972a1\n"
    },
    {
      "commit": "167cc7c33f7100e3f7acc1594c066daa0122e27a",
      "tree": "d265344c32c5bf37d356fcb4871f57a1250d16b6",
      "parents": [
        "0398e171f206cd3b140a358ac31b0a3760380df1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 29 08:33:44 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 29 08:33:44 2014 +0000"
      },
      "message": "Revert \"Fix proxy tracing and enable tests that now work with tracing.\"\n\nThis reverts commit 0398e171f206cd3b140a358ac31b0a3760380df1.\n\nChange-Id: I1346ab01485cc7207be0ecb4d8788c500c0df903\n"
    },
    {
      "commit": "0398e171f206cd3b140a358ac31b0a3760380df1",
      "tree": "db5b34142d812f95581a864b681940efc94c6945",
      "parents": [
        "e5647289ccc7dafd8b91771a7bd1cd19416aed66"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 24 16:26:09 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 28 18:33:04 2014 -0700"
      },
      "message": "Fix proxy tracing and enable tests that now work with tracing.\n\nBug: 16386215\nChange-Id: Iec2a372c921caceb050c6baf72d48b3d822899a4\n"
    },
    {
      "commit": "dc13d7df5da49e93963035633a82699c68fa0971",
      "tree": "9e5b943745155b1bc72fc9b0d6856a85322e5c04",
      "parents": [
        "80b3f96ec1e408f34b8e7b76b14774794fa1abd8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 23 20:18:36 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 25 18:26:01 2014 -0700"
      },
      "message": "ART: Allow arrays with erroneous component type\n\nArray classes must tolerate having component type classes that are\nerroneous. Change CreateArrayClass to use LookupClass when FindClass\nfailed.\n\nBug: 16019155\nChange-Id: Id4868c5498431c85c199aa3cbecd23566dce3601\n"
    },
    {
      "commit": "1a12858eb15a14788478c4aca82c052bc84fcafa",
      "tree": "e92621389f007ef74cd42ea91e920cfb98d2a980",
      "parents": [
        "ddc211980aa2f6149905d8d26f67201ac8e400b3"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Jul 22 17:33:25 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Jul 22 17:33:25 2014 -0700"
      },
      "message": "Fix build, missing spaces around \u003d/\u003c.\n\nChange-Id: I2e7824075626a07eccb0a5eb77ef157214fe70fb\n"
    },
    {
      "commit": "c389c97ca93b73b3cb380cedfe438d153b524225",
      "tree": "efb5f88c9fcb2ab87df05766fb14b3ae135d0f88",
      "parents": [
        "c836fcbb52d99efdd9ed4f5c104aebd0c37cb121",
        "2cdbad7c62f126581ec5177104de961c4d71adaa"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Jul 22 22:05:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 22 16:18:32 2014 +0000"
      },
      "message": "Merge \"Set vtable in class object to null after linking.\""
    },
    {
      "commit": "2cdbad7c62f126581ec5177104de961c4d71adaa",
      "tree": "6283b87bc9b65249decac9b0e38fe396782b8d7e",
      "parents": [
        "c62944adcd427dca55489d234428da47c43a0aab"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Jul 16 10:44:41 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Jul 22 15:03:50 2014 -0700"
      },
      "message": "Set vtable in class object to null after linking.\n\nThis is follow-up work of embedding imt and vtable for\nfaster interface/virtual call dispatching.\nOnce vtable becomes embedded, the original vtable is nulled.\n\nChange-Id: I307696657d1e283654169dbecb8f7815c42bbabc\n"
    },
    {
      "commit": "c114b5fbc91e6d19ef430d9bc3468386ca61b324",
      "tree": "209973deaf02fdcccabc6e2c52a6db5df512aed9",
      "parents": [
        "a6d4bc19b0f68286862ce315377aaeb1e26a726b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 21 08:55:01 2014 -0700"
      },
      "message": "Fix erroneous behaviors with OOME present.\n\nBug: 16454510\nChange-Id: I757088a7b82ff73f58aba8d357080028b56442e6\n"
    },
    {
      "commit": "a59dd80f9f48cb750d329d4d4af2d99d72b484d1",
      "tree": "36958b15842205addaf6d2a13e40823eab47c8bc",
      "parents": [
        "84568fdf08f8f476292996ad653b4453d2894d23"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 02 16:28:08 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 22 08:24:14 2014 -0700"
      },
      "message": "Runtime can now be set to require relocation\n\nAdd a pair of runtime flags -Xrelocate and -Xnorelocate that can force\nthe runtime to require that all files that are run are relocated, to\nprevent attacks based on the known art base address.\n\nAdd support for running patchoat on oat files compiled without an image.\n\nChange run-test to have new --prebuild and --relocate flags.\n\nBug: 15358152\n\nChange-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d\n"
    },
    {
      "commit": "ecd4d9adc1e2b2ac1367de9a2dc1ca15ebf4310c",
      "tree": "c90bfa74b6ed0ed131b644e5df3a9c50f2ab8e30",
      "parents": [
        "0a142c96c50ca9d2edb6ef995107fe368cd0a3fa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 22 00:59:52 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 22 00:59:52 2014 -0700"
      },
      "message": "Avoid marking erroneous classes as erroneous twice.\n\nChange-Id: I1f340a6054cf36f6b4ba7d85cfd05b1c677dced7\n"
    },
    {
      "commit": "d5673e47000fcfe8ff8f4df4329a842d4096c226",
      "tree": "d39dd2285467581ce4babe853d3a6dcf98e34394",
      "parents": [
        "fd60fbcce909655aad71fa3094aa51d49302f19f",
        "ff5a372be9b5ecaa4c3a9887f064a8a98069d036"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jul 18 13:25:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 17 22:36:58 2014 +0000"
      },
      "message": "Merge \"Fix bad comment in class_linker\""
    },
    {
      "commit": "b12d6055432f6974317ca1b5c9260db0d410df3e",
      "tree": "8cc656d0988c5f9e7b352348712ded3f45e986bb",
      "parents": [
        "031ddea20cb311dfdb3bd16a13750f9cb426b299",
        "0fbd6e6ec3241b7163b95f9f001bfe9b08f8b200"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jul 18 00:16:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 17 22:34:52 2014 +0000"
      },
      "message": "Merge \"Fix two read barrier bugs introduced in CL 97882.\""
    },
    {
      "commit": "0fbd6e6ec3241b7163b95f9f001bfe9b08f8b200",
      "tree": "8750bd3360999fa19d8f0f5892baa60348623911",
      "parents": [
        "635561b86ac03f5562bdb779baa6db12f31b3cae"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 17 16:16:31 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 17 16:16:31 2014 -0700"
      },
      "message": "Fix two read barrier bugs introduced in CL 97882.\n\nBug: 12687968\nChange-Id: Ib28da4c33977cc58b09913ef5b738dec75365714\n"
    },
    {
      "commit": "ff5a372be9b5ecaa4c3a9887f064a8a98069d036",
      "tree": "f85396d8667afc6ef0f7e059139d8594a4d8b681",
      "parents": [
        "6dfa4188d5cbe7cb1c89011cda80e1c261ae30f0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jul 17 21:14:23 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jul 17 21:14:23 2014 +0100"
      },
      "message": "Fix bad comment in class_linker\n\nChange-Id: Ic8c90e9d880c5aae7e7bdb6c2a0c854fdaa5c357\n"
    },
    {
      "commit": "ea1a9bdce403524d19f80095e7d51d5f714f20ff",
      "tree": "e05cc6011925e2e0c2259a86689d76265bee274a",
      "parents": [
        "a4fe789a74d2eb0f1d14ab971103feacef02620c",
        "22d5e735f403c57525fe868304c7123f0ce66399"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 15:27:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 15 20:36:09 2014 +0000"
      },
      "message": "Merge \"Remove object_utils.h.\""
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "a4fe789a74d2eb0f1d14ab971103feacef02620c",
      "tree": "a643bcf43d352172b881845a91c711869c11a4d4",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054",
        "c54aea7f4acd1a32bb298d43c20e3e0217638926"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 16 15:04:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 16 01:10:27 2014 +0000"
      },
      "message": "Merge \"Make ART fail gracefully when it can\u0027t update the desired code.\""
    },
    {
      "commit": "c54aea7f4acd1a32bb298d43c20e3e0217638926",
      "tree": "f3da12b55dea316e4aae6f01c34411ec3824d510",
      "parents": [
        "635561b86ac03f5562bdb779baa6db12f31b3cae"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 16 14:45:03 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 16 15:50:54 2014 +0100"
      },
      "message": "Make ART fail gracefully when it can\u0027t update the desired code.\n\nART was exiting with a fatal error when it couldn\u0027t clean an obsolete\nfile. Relaxing this and failing gracefully preserves the behaviour that\nDalvik had.\n\nBug: 15313272\nChange-Id: I8d0d6d374c90d2a434909dd4ae56f0799f30134d\n"
    },
    {
      "commit": "4ee7a665e7f9cd2c5ace2d6304e33f64067b209f",
      "tree": "e8e6867c71fde6e37ec5597e8677ab807084f734",
      "parents": [
        "76e6773dfed9e9bf382bbb8d6c8654525fa44b0c"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Fri Jul 11 09:59:27 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Tue Jul 15 15:45:21 2014 -0700"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Add intrinsic for Reference.get()\"\"\"\"\n\nFixed TargetReg issue causing build failure for x86.\nThis reverts commit 9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.\n\nChange-Id: I7e6a526954467aaf68deeed999880dfe9aa5f06e\n"
    },
    {
      "commit": "0ee33c32388f49853b7f7003047047d7f9e9cb75",
      "tree": "8113de95a8ccdbc6fb854edd0cadef8f852c7dee",
      "parents": [
        "8c4728186f038e2ae09e74cbdcef5e5ca598ba64",
        "22f8e5c82d12951be38cd893426e13bee33fd69d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jul 12 03:08:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 11 21:38:38 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Key-Value Store in Oat header\"\"\""
    },
    {
      "commit": "22f8e5c82d12951be38cd893426e13bee33fd69d",
      "tree": "f575655ba55315205b7a73f1e02773497913b157",
      "parents": [
        "946a55fa7aec5058d357b601ac3554e242cd1afa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 09 11:38:21 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 11 15:53:27 2014 -0700"
      },
      "message": "Revert \"Revert \"ART: Key-Value Store in Oat header\"\"\n\nThis reverts commit 452bee5da9811f62123978e142bd67b385e9ff82.\n\nHeap-allocate a couple of objects in dex2oat to avoid large frame\nsize.\n\nIncludes fixes originally in 100596 and 100605.\n\nChange-Id: Id51a44198c973c91f0a3f87b9d992a5dc110c6f8\n"
    },
    {
      "commit": "98d1cc8033251c93786e2fa8c59a2e555a9493be",
      "tree": "f0a76b8fff060ee484af09028da65a8339d57057",
      "parents": [
        "aebf3cda094f34cf846d19a7724bdc8005267c95"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 15 17:02:16 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 11 17:17:10 2014 -0700"
      },
      "message": "Improve performance of invokevirtual/invokeinterface with embedded imt/vtable\n\nAdd an embedded version of imt/vtable into class object. Both tables start at\nfixed offset within class object so method/entry point can be loaded directly\nfrom class object for invokeinterface/invokevirtual.\n\nBug: 8142917\nChange-Id: I4240d58cfbe9250107c95c0708c036854c455968\n"
    },
    {
      "commit": "9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f",
      "tree": "b2d65f4668793fab5652dfe41dcf13c913fee3a8",
      "parents": [
        "d4415e8bd04c4a9367744ff0149597b4f37a0e0a"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 11 10:09:13 2014 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 11 10:09:13 2014 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add intrinsic for Reference.get()\"\"\"\n\nThis reverts commit d4415e8bd04c4a9367744ff0149597b4f37a0e0a.\n\nChange-Id: I34553ccbdcfea35c7742d21be2a74dc7085ab2a0\n"
    },
    {
      "commit": "d4415e8bd04c4a9367744ff0149597b4f37a0e0a",
      "tree": "97c42c08fd04034cf6cecadb39644bf9531be0f1",
      "parents": [
        "a9b870b73a155ce70c867d5b3f9758fab0b45f07"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 06:44:39 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 06:44:39 2014 +0000"
      },
      "message": "Revert \"Revert \"Add intrinsic for Reference.get()\"\"\n\nThis reverts commit a9b870b73a155ce70c867d5b3f9758fab0b45f07.\n\nChange-Id: Ic2a9b47f2b911bef4b764d10bc33cf000e4b4211\n"
    },
    {
      "commit": "a9b870b73a155ce70c867d5b3f9758fab0b45f07",
      "tree": "b2d65f4668793fab5652dfe41dcf13c913fee3a8",
      "parents": [
        "460503b13bc894828a2d2d47d09e5534b3e91aa1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 04:18:58 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 11 04:18:58 2014 +0000"
      },
      "message": "Revert \"Add intrinsic for Reference.get()\"\n\nThis reverts commit 460503b13bc894828a2d2d47d09e5534b3e91aa1.\n\nChange-Id: Ie63f43049307e02e3b90f4e034abc9ea54ca4e24\n"
    },
    {
      "commit": "460503b13bc894828a2d2d47d09e5534b3e91aa1",
      "tree": "97c42c08fd04034cf6cecadb39644bf9531be0f1",
      "parents": [
        "adce33da293b0eeaaf52673338770f22be71ca5d"
      ],
      "author": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Wed Jun 18 11:26:11 2014 -0700"
      },
      "committer": {
        "name": "Fred Shih",
        "email": "ffred@google.com",
        "time": "Thu Jul 10 10:41:34 2014 -0700"
      },
      "message": "Add intrinsic for Reference.get()\n\nAdded an intrinsic function for Reference.get(). Return immediately\nwithout going through JNI if the slow path is not currently in use.\nOtherwise, branch off to the the existing JNI function.\n\nApproximately 47x speedup for cases where slow path is not enabled.\n\nChange-Id: I13ad65a356fe4e104d8d83980694dc2740d7d039\n"
    },
    {
      "commit": "8078b294e8001abff5a6c8637e844b55a65fff4b",
      "tree": "d23d8693bdc9d7bf155582850461c8c086c5bbcb",
      "parents": [
        "608520c8ba1adc7d8d0623b021b7ea509b00751c",
        "452bee5da9811f62123978e142bd67b385e9ff82"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 02 20:49:53 2014 +0000"
      },
      "message": "Merge \"Revert \"ART: Key-Value Store in Oat header\"\""
    },
    {
      "commit": "452bee5da9811f62123978e142bd67b385e9ff82",
      "tree": "3da88d3fb1bd2a03897aaac8bb015c12796d2cdf",
      "parents": [
        "c87d27b25994da8670d82a8f7bad6327b693bfff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 09 07:58:10 2014 +0000"
      },
      "message": "Revert \"ART: Key-Value Store in Oat header\"\n\nBroke arm64 build.\n\nThis reverts commit c87d27b25994da8670d82a8f7bad6327b693bfff.\n\nChange-Id: I4c2ade295d2b5aa77fc3ad810e0e859629a5bf09\n"
    },
    {
      "commit": "c87d27b25994da8670d82a8f7bad6327b693bfff",
      "tree": "e8ad0fa224f050c5c3e3e30ccdc0912f28650f42",
      "parents": [
        "e8a30f37bf1530a80a7df17692dbe7a68764ac30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 26 16:11:07 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 08 12:14:38 2014 -0700"
      },
      "message": "ART: Key-Value Store in Oat header\n\nAllows the storage of string-string pairs in the oat header. The\nfirst significant use of this is storing the implicit-check flags,\nso that an oat file can be rejected if it doesn\u0027t agree with the\ncurrent runtime.\n\nBump the oat version as the header structure changes.\n\nChange-Id: I15a1c16886e6b8fa7b881c918c19c1efa5c7c00f\n"
    },
    {
      "commit": "6e524ddc060f10a493dc63fa5b6dde0deef22219",
      "tree": "8e23be4f3732ea585f369dfcd989d0d0d9a57b76",
      "parents": [
        "3d30b073541f19470e8b5dddef9377411fa587c3",
        "670134e8555d40fc880271b1ab97483094b4b816"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 09 04:07:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 08 21:53:44 2014 +0000"
      },
      "message": "Merge \"Make dex2oat heap size product configurable [art]\""
    },
    {
      "commit": "670134e8555d40fc880271b1ab97483094b4b816",
      "tree": "bc9cac50dbcfe518d1f54005bb3b4d035637578c",
      "parents": [
        "e8a30f37bf1530a80a7df17692dbe7a68764ac30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 08 10:34:02 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 08 11:33:38 2014 -0700"
      },
      "message": "Make dex2oat heap size product configurable [art]\n\nBug: 15919420\nChange-Id: I1b4f3256f6352b2d3e268991406def9e8efab945\n"
    },
    {
      "commit": "833a48501d560c9fa7fc78ef619888138c2d374f",
      "tree": "add308298a5486d44caddea120cc9200dd70c38a",
      "parents": [
        "b849f6dd638fd1246724160cd5c01ab1a5ff33bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 21 18:46:59 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 25 19:34:58 2014 -0700"
      },
      "message": "ART: Native support for multidex\n\nNative support for zip files with multiple classesX.dex.\n\nWorks by explicitly looking for those files in ascending order. As\nthese files have no file system representation for themselves,\nintroduce synthetic dex locations: the name of the originating file\nplus a colon plus the name of the dex file, e.g., test.jar:classes2.dex.\n\nOpening a zip dex file will return all dex files in this way. This\nkeeps the changes to dex2oat minimal.\n\nTo hide multidex/synthetic names from the Java layer, let the handle\nof dalvik.system.DexFile refer to a vector of DexFile objects. When\nopening a location, test possible synthetic names and add them to the\nvector. Thus, the original multidex jar in the classpath will be\nassociated with all embedded dex files.\n\nChange-Id: I0de107e1369cbc94416c544aca3b17525c9eac8b\n"
    },
    {
      "commit": "e9e3e697f0c426132bee10aaa6aee9107d2d7dc6",
      "tree": "34c5c0f5aa9a9069d2514b4b3b69aff93103b82a",
      "parents": [
        "40bdf97beffc4d85c966965bdbe81b243141312b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 24 14:31:37 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 24 14:31:37 2014 -0700"
      },
      "message": "Add more read barriers to the class linker.\n\nThis change makes it possible to concurrently scan the remaining roots\nin the class linker (the non-class-table roots that are visited by\nClassLinker::VisitRoots()) by adding read barriers.\n\nBug: 12687968\nChange-Id: I66fecf7a303eee7537429e018f38da8270b18c67\n"
    },
    {
      "commit": "52e4b43d62896b56f8c2bd041e528472bb4a0d8d",
      "tree": "3a9367c391418c1375a6c86f678b3f047cacc03f",
      "parents": [
        "ef38670cae8462d579da983c1863f96717cccee6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 10 11:22:31 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 19 12:57:05 2014 -0700"
      },
      "message": "Add mark compact collector.\n\nThe mark compact collector is a 4 phase collection, doing a normal\nfull mark_sweep, calculating forwarding addresses of objects in the\nfrom space, updating references of objects in the from space, and\nmoving the objects in the from space.\n\nSupport is diabled by default since it needs to have non movable\nclasses and field arrays. Performance numbers is around 50% as fast.\n\nThe main advantage that this has over semispace is that the worst\ncase memory usage is 50% since we only need one space isntead of two.\n\nTODO: Make field arrays and classes movable. This causes complication\nsince Object::VisitReferences relies on these, so if we update the\nfields of an object but another future object uses this object to\nfigure out what fields are reference fields it doesn\u0027t work.\n\nBug: 14059466\n\nChange-Id: I661ed3b71ad4dde124ef80312c95696b4a5665a1\n"
    },
    {
      "commit": "a91a4bc1f8960f64c5f7e4616d46e21b8e1bfba2",
      "tree": "31988cb0623dc3b095142b65dff37dd959ff4df2",
      "parents": [
        "97ed29f800c56a06fd6989e0883e4c97bedd2453"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 13 16:44:55 2014 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 13 16:44:55 2014 -0700"
      },
      "message": "Add read barriers for the class and the intern tables.\n\nAdd read barriers for the strong roots in the intern table and the\n(strong) roots in the class table to make possible concurrent scanning\nof them.\n\nBug: 12687968\nChange-Id: If6edc33a37e65a8494e66dc3b144138b1530367f\n"
    },
    {
      "commit": "5bf6a77944acdeb0a9464803c70d0c65cf15b68b",
      "tree": "ee66c89cf844201630b47eb0c0c438b88e3ab866",
      "parents": [
        "335b91fb98d8004580e9a58335a873a1874fa5a5",
        "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 10 18:21:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 18:21:32 2014 +0000"
      },
      "message": "Merge \"Change MethodHelper to use a Handle.\""
    },
    {
      "commit": "d1c606f280797be81e2592c483869a6ec836a9f3",
      "tree": "f49689281100d0fccdc5493f1a2567b435a247ea",
      "parents": [
        "fbc2b1747e7e3d06f214f801f53218a1d4bf2dbe"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jun 09 16:50:19 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 10 11:25:06 2014 +0100"
      },
      "message": "Add locking around boot image generation.\n\nIf zygote aborts due to an error, it will restart and\nspawn another dex2oat process while the old one is still\nrunning. If this happens fast enough, the system will\neventually need a kernel reboot since neither the zygote\nnor dex2oat are killable.\n\nThis brings boot image generation in line with dex2oat\ngeneration, which uses a similar pattern of advisory\nlocking.\n\nbug: 15415316\n\nChange-Id: Iaccd274d3d96ab002b04e246ec4b3ef9a422ff7c\n"
    },
    {
      "commit": "bfd9a4378eacaf2dc2bbe05ad48c5164fc93c9fe",
      "tree": "3d3f667c8232a9c1bb6fe9daea0d364f9ae01d8c",
      "parents": [
        "2e1ca953c7fb165da36cc26ea74d3045d7e272c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 21 17:43:44 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 09 12:46:32 2014 -0700"
      },
      "message": "Change MethodHelper to use a Handle.\n\nAdded ConstHandle to help prevent errors where you modify the value\nstored in the handle of the caller. Also fixed compaction bugs\nrelated to not knowing MethodHelper::GetReturnType can resolve types.\nThis bug was present in interpreter RETURN_OBJECT.\n\nBug: 13077697\n\nChange-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3\n"
    },
    {
      "commit": "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb",
      "tree": "444936c3e3718b692ba7f1981b863190f26b4ed7",
      "parents": [
        "25c4f6a25b3de9b9d7ca5162f1629753a0b7f003"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 05 17:42:53 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 13:12:17 2014 -0700"
      },
      "message": "Change FieldHelper to use a handle.\n\nFixed compaction bugs related to FieldHelper::GetType in:\nartSet32InstanceFromCode\nSetFieldValueImpl\nCheckReceiver\nField_set\ninterpreter::DoFieldPut\nMethodVerifier::VerifyISGet\nMethodVerifier::VerifyISPut\nMethodVerifier::VerifyIGetQuick\n\nBug: 13077697\n\nChange-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72\n"
    },
    {
      "commit": "12e6d7446384a7a5fbec25fe116bbb271c62842e",
      "tree": "ced17862a2587c56cb53fe47b303841aac806dc6",
      "parents": [
        "9bec54430e8609765740fdc51d24ed3f3c907919"
      ],
      "author": {
        "name": "Tsu Chiang Chuang",
        "email": "tsu@google.com",
        "time": "Thu May 22 10:22:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 27 22:55:53 2014 -0700"
      },
      "message": "Add option to specify compiler executable.\n\nChange-Id: I973da5e74be5a62461caacbc708288fb95e1b99b\n"
    }
  ],
  "next": "0cd81352a7c06e381951cea1b104fd73516f4341"
}
