)]}'
{
  "log": [
    {
      "commit": "f13dd50788a9f82326085cd9b597cc644325702e",
      "tree": "3ba307a0324c3437a22af15e625509ae1ac75618",
      "parents": [
        "2d3a69e6a0326e1d349c44e42dad0b5a83c406b2",
        "ded66a01f81812e0129d17c3d08d5eda18433062"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 29 01:39:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 29 01:39:02 2014 +0000"
      },
      "message": "Merge \"Move MethodHelper::GetReturnType to mirror::ArtMethod.\""
    },
    {
      "commit": "ded66a01f81812e0129d17c3d08d5eda18433062",
      "tree": "74a3f7bad1c020b0136d6c173633a361a479f5cb",
      "parents": [
        "e0205d519dd417f749243b42b8711dfa313e5390"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 18:12:55 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 18:36:32 2014 -0700"
      },
      "message": "Move MethodHelper::GetReturnType to mirror::ArtMethod.\n\nAlso, fix missing handle in HasSameSignatureWithDifferentClassLoaders.\n\nChange-Id: I9e1ffd09be950ecc8346fc3c485760d82d9ecab3\n"
    },
    {
      "commit": "05d89ee90413c51573c8e708a193f4ff87d67d0a",
      "tree": "c3ace311823a639c3434194016184483a73bd278",
      "parents": [
        "e0205d519dd417f749243b42b8711dfa313e5390"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 13:57:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 28 16:38:08 2014 -0700"
      },
      "message": "Fill resolved static fields during class initialization\n\nPreviously everytime we resolved static fields we linear searched\nthe class to find the field with the specified field id. Now we\neagerly set these fields in the dex cache when we initialize classes.\n\nFB launch timings before:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nTimings after:\nWaitTime: 2699\nWaitTime: 2791\nWaitTime: 2653\nWaitTime: 2929\nWaitTime: 2651\nWaitTime: 2971\n\nPerf before:\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\nAfter:\n0.00% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit bfb21589a6490769690b44aaf8e6a0021a1261b7)\n\nChange-Id: I33255f85d10c29cae085584880196c45ac0ea230\n"
    },
    {
      "commit": "03b6eafba8ace9a9c4d5ee9c47723d1910ccd7a8",
      "tree": "3451b85f23b14cd78ab6bd1257528ba2eb6769e5",
      "parents": [
        "4816ecfc1b2d544685ec5edcdeaad6870f6bfd7e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 09:34:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 28 11:04:43 2014 -0700"
      },
      "message": "Tidy MethodProtoHelper.\n\nMove to place of only use, class_linker.cc. Be lazy in computing the name.\n\nChange-Id: I1438efbda58369ddd0ac36eda8a5a0a6c6fdff77\n"
    },
    {
      "commit": "46774767fcf7780d1455e755729198648d08742e",
      "tree": "09a5d87ff0acbc7eb1fa94ec901ba10009178f03",
      "parents": [
        "11bd683f6dbebe2f3d02fa383fc9dbc69a83ace8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 22 11:37:02 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 27 20:19:37 2014 -0700"
      },
      "message": "ART: Add support for patching and loading OAT files compiled with PIC\n\n* Images (.art) compiled with pic now have a new field added.\n* isDexOptNeeded will now skip patch-ing for apps compiled PIC\n* First-boot patching now only copies boot.art, boot.oat is linked\n\nAs a result, all system preopted dex files (with --compile-pic) no\nlonger take up any space in /data/dalvik-cache/\u003cisa\u003e.\n\nBug: 18035729\nChange-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62\n"
    },
    {
      "commit": "11bd683f6dbebe2f3d02fa383fc9dbc69a83ace8",
      "tree": "3b3df2099dc063f48676c92b94dc4532cfb7a9e6",
      "parents": [
        "79027f6204f77db4ba3bd3ceab1f07240fbbfdb3",
        "7ba649636c4475c3992fa15a57acd2546d69ff38"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 28 02:08:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 28 02:08:03 2014 +0000"
      },
      "message": "Merge \"ART: Add pic flag to oat header store\""
    },
    {
      "commit": "7ba649636c4475c3992fa15a57acd2546d69ff38",
      "tree": "63b3e30483d2a838bcaa3337535d4828f3c1ea33",
      "parents": [
        "e74b720d752469d3883f3589de863e8fc82c6338"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 23 11:37:40 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 27 18:52:28 2014 -0700"
      },
      "message": "ART: Add pic flag to oat header store\n\nAdd the compile-time PIC flag to the oat-header key-value store.\nIgnore image offset and patch delta when loading PIC oat files.\n\nChange-Id: Ie1f1ef37125386a968228033d1e2bec565315510\n"
    },
    {
      "commit": "d035c2d0523f29cb3c4fcc14a80d2a8ceadec3ba",
      "tree": "114f11c3c89d915bfd7b7d1cede4704cfacff6d1",
      "parents": [
        "2d2621a1463d2f3f03fa73503fa42e43657cdcfc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 17:30:20 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 17:50:08 2014 -0700"
      },
      "message": "Fix 64 bit build\n\nBuggy compiler.\n\n(cherry picked from commit 7989d22642415e1e4d608e210284834951bd0a39)\n\nChange-Id: Id16c83fc7963ca89fd7fae32dd15ae342cc7f064\n"
    },
    {
      "commit": "2d2621a1463d2f3f03fa73503fa42e43657cdcfc",
      "tree": "1f7cf393693d72db5c186f99b04ac511958c6418",
      "parents": [
        "ac293277b69882105810fabd6c53f55de58823fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 16:48:06 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 16:49:43 2014 -0700"
      },
      "message": "Optimize method linking\n\nAdded more inlining, removed imt array allocation and replaced it\nwith a handle scope. Removed some un-necessary handle scopes.\n\nAdded logic to base interface method tables from the superclass so\nthat we dont need to reconstruct for every interface (large win).\n\nFacebook launch Dalvik KK MR2:\nTotalTime: 3165\nTotalTime: 3652\nTotalTime: 3143\nTotalTime: 3298\nTotalTime: 3212\nTotalTime: 3211\n\nFacebook launch TOT before:\nWaitTime: 3702\nWaitTime: 3616\nWaitTime: 3616\nWaitTime: 3687\nWaitTime: 3742\nWaitTime: 3767\n\nAfter optimizations:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nLinkInterfaceMethods no longer one of the hottest methods, new list:\n4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n3.07% art::DexFile::FindClassDef(char const*) const\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n2.90% art::DexFile::FindStringId(char const*) const\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4)\n\nChange-Id: I27cc70178fd3655fbe5a3178887fcba189d21321\n"
    },
    {
      "commit": "2c4257be8191c5eefde744e8965fcefc80a0a97d",
      "tree": "9db3e1f1c60f2df29638ba3ce9d5d5bb8b26ca2c",
      "parents": [
        "98c271d517bc4d25fc6879b4b8e35ea93885d9e2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:20:06 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 24 14:23:42 2014 -0700"
      },
      "message": "Tidy logging code not using UNIMPLEMENTED.\n\nChange-Id: I7a79c1671a6ff8b2040887133b3e0925ef9a3cfe\n"
    },
    {
      "commit": "cf7f19135f0e273f7b0136315633c2abfc715343",
      "tree": "ffa4d9efd9c45f4b6789acc1f534bb9327052b7e",
      "parents": [
        "aea6888b056be21adf762e066c7f33b8939b8a06"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:06:39 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 22:21:57 2014 -0700"
      },
      "message": "C++11 related clean-up of DISALLOW_..\n\nMove DISALLOW_COPY_AND_ASSIGN to delete functions. By no having declarations\nwith no definitions this prompts better warning messages so deal with these\nby correcting the code.\nAdd a DISALLOW_ALLOCATION and use for ValueObject and mirror::Object.\nMake X86 assembly operand types ValueObjects to fix compilation errors.\nTidy the use of iostream and ostream.\nAvoid making cutils a dependency via mutex-inl.h for tests that link against\nlibart. Push tracing dependencies into appropriate files and mutex.cc.\nx86 32-bit host symbols size is increased for libarttest, avoid copying this\nin run-test 115 by using symlinks and remove this test\u0027s higher than normal\nulimit.\nFix the RunningOnValgrind test in RosAllocSpace to not use GetHeap as it\nreturns NULL when the heap is under construction by Runtime.\n\nChange-Id: Ia246f7ac0c11f73072b30d70566a196e9b78472b\n"
    },
    {
      "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"
    }
  ],
  "next": "6e524ddc060f10a493dc63fa5b6dde0deef22219"
}
