)]}'
{
  "log": [
    {
      "commit": "cc1b5357f83f0b787d51fbfde3fe870c8a2fa050",
      "tree": "253d23dba63e1003dc8e953002b994d01c97f181",
      "parents": [
        "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 16:58:38 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 14:00:22 2016 -0800"
      },
      "message": "ART: Clean up ClassLinker\n\nTry to clean up and simplify ClassLinker.\n\nMove dex_lock to Locks. Remove dead code. Move single-use\ncode to user. Hide implementation details from header.\n\nTest: m test-art-host\nChange-Id: I58150fa9c2a9524f8304370270c2197d655cb3a8\n"
    },
    {
      "commit": "2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8",
      "tree": "7b5e29f66a840e5e83c02df0b23d05501b0d63c5",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:42:00 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:43:09 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved, try again.\"\n\nReverting due to test failures as expected.\n\nBug: 30627598\nBug: 33231647\n\nThis reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.\nSquashed revert \"Additional debug logging for bug 33231647.\"\n    This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.\n\nChange-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c\n"
    },
    {
      "commit": "903691455319f72219853a46340b59c9b89b7553",
      "tree": "42f33b1e3b949fcd8246f34877b46a304bb36dfe",
      "parents": [
        "982e0bf9ed2b00ef85b328de674e28342eb0b2dd",
        "cb5ab35980a86b05586c402924d2e7ca9df25758"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 01 12:11:07 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved, try again.\""
    },
    {
      "commit": "cb5ab35980a86b05586c402924d2e7ca9df25758",
      "tree": "acf33ce7ac7627682aaf822489247ca1804b60d0",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 30 15:31:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 10:13:19 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved, try again.\n\nThis CL causes occasional test failures on the build servers\nwhich we were not able to reproduce locally. So we add some\nsome additional debug output to help pinpoint the cause.\n\nBug: 30627598\nBug: 33231647\nTest: m test-art-host\n\nThis reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.\n\nChange-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0\n"
    },
    {
      "commit": "211fd802903c130ed1c47c18d1b87809d290aa69",
      "tree": "e049fbad2dd7fbf244d5163e084be339f02fc8d7",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
        "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\""
    },
    {
      "commit": "171cf811a1cdf8b1cbc5151505d8630741ce4cf3",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\n\nBug: 30627598\n\nThis reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.\n\nChange-Id: I038029c71195a80f041982e82ae556d3157db7b8\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "e47172b75b8b04a450d235cf72bdc4e223a29cb5",
      "tree": "9301e9bc08944f3b4590d9ccf6aa7656cc238adf",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 25 11:47:20 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 13:49:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\n\nAvoid class loading triggered by verification in the\n626-const-class-linking test. Expect spurious wakeups.\n\nAdd extra debugging output for a very strange failure\n    image_writer.cc:1144] Check failed:\n    !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\nThat class is supposed to be in the boot image (core.art for\ntests), so the failing check should not be reached at all.\n\nTest: m test-art-host\nTest: m ART_TEST_OPTIMIZING\u003dtrue \\\n        ART_TEST_JIT\u003dtrue \\\n        ART_TEST_INTERPRETER\u003dtrue \\\n        ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue \\\n        test-art-host-run-test-626-const-class-linking\nBug: 30627598\n\nThis reverts commit 09ded9201fbeec605b12741ae255663c14bda225.\n\nChange-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5\n"
    },
    {
      "commit": "09ded9201fbeec605b12741ae255663c14bda225",
      "tree": "c0276a06f8b6dba35e843098a05be326c8f5e2ac",
      "parents": [
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\n\n626-const-class-linking is failing (spurious wakeups?)\n970-iface-super-resolution-gen is failing:\n    dex2oatd F 11-24 10:57:16  6410  6410 image_writer.cc:1144]\n    Check failed: !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\n\nBug: 30627598\n\nThis reverts commit 25dcbad4462ea7279ee2bbe0884abc25bdfac77a.\n\nChange-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114\n"
    },
    {
      "commit": "25dcbad4462ea7279ee2bbe0884abc25bdfac77a",
      "tree": "f8f8db090bf6735ead2c6999b7b574f4b7278056",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 13:35:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 17:01:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\n\nFix jdwp getting multiple instances of the same class.\nFix counting \"zygote\"/\"non-zygote\" classes in class table.\nFix FindClass() to EnsureResolved() classes added by\na racing thread to the class table.\n\nTest: m test-art-host\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nBug: 30627598\n\nThis reverts commit ecffc67068a28d55d131553bf915fdb9fafbbc03.\n\nChange-Id: I15807949da4f163c2693fac2fbfc274f17685f8a\n"
    },
    {
      "commit": "ecffc67068a28d55d131553bf915fdb9fafbbc03",
      "tree": "3f63982d609fa01a5b271b5f393ee9c6d83e1107",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:37:21 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:41:49 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved.\"\n\nBug: 30627598\n\nThis reverts commit 19886dbeced9430579a27979beb92b09c95197b4.\nSquashed reverts of subsequent partial fixes.\n    This reverts commit bad475a63b7c938b7ff7903ea1dae27369c3f629.\n    This reverts commit 0ba0c7d9b0328af39a385014652eb9af4e42d8b5.\n    This reverts commit ddb8afec79492750f16f98e5bd07d44f3dc485d4.\n\nChange-Id: Id94af5ae56a0335f9641a79c885cc75bba971713\n"
    },
    {
      "commit": "9ee5fdf92f498d716c740cc1770943097f968092",
      "tree": "a1d7a4cb0a86500850d7eb96f5f2eb2bef90c487",
      "parents": [
        "da2d78ba97d177b80e0e9528362bcebc1fd31f0f",
        "19886dbeced9430579a27979beb92b09c95197b4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 22 11:23:16 2016 +0000"
      },
      "message": "Merge \"Make sure that const-class linkage is preserved.\""
    },
    {
      "commit": "19886dbeced9430579a27979beb92b09c95197b4",
      "tree": "33c85aada415308d8207d63bce903262ea7504fe",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 11 11:40:40 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 21 19:11:31 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved.\n\nAfter calling loadClass() on the initiating loader, insert\nthe Class to the ClassTable. Check that the returned class\nhas the correct name and that the ClassTable does not yet\ncontain a different Class for the same name. If either check\nfails, follow the RI behavior for parallel capable class\nloaders, i.e. throw NoClassDefFoundError for name mismatch\n(with more descriptive message than RI) or return the Class\nalready present in the ClassTable. This ensures that the\nconst-class instruction for a given name always gives the\nsame result as the first time it succeeded for the same\ninitiating loader, even for non-well-behaved loader.\n\nInserting the Class to the ClassTable is also a necessary\nstep for changing to hash-based dex cache type array when\nthe DexCache will not necessarily keep the Class and\ntherefore the defining loader alive while the initiating\nloader stays alive, so the ClassTable entry is necessary\nto keep the dependecy.\n\nAdd tests that a const-class instruction always returns the\nsame Class\u003c?\u003e as it returned the first time, i.e. when it\nwas \"linked\", even for class loaders that are not\nwell-behaved, even if the dex cache type array is cleared.\nAlso test the edge cases, i.e. NoClassDefFoundError and\nreturning old entry from ClassTable when already inserted\nby another thread.\n\nBug: 30627598\nTest: 626-const-class-linking\nTest: m test-art-host\nChange-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "d98b4ed7a73af40f5292337495333616d9974da0",
      "tree": "6b7d64d1f85fa4df9f99602b85ca264bded8f950",
      "parents": [
        "53e6c51bf1e2bd7f09f42b509017f4fac2fe9ee1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 04 20:27:24 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 10:00:59 2016 -0800"
      },
      "message": "ART: Make excludes explicit\n\nFix some missing lock excludes.\n\nTest: m\nChange-Id: If74708c5d16469490e3374b7d5ffc23dd2ea5ec1\n"
    },
    {
      "commit": "d62515891b15e73bc8eebb55cc09cb4dec4fcf21",
      "tree": "20c485231c93fa83384312e428202d8140dfa09d",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 31 11:12:30 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 12:55:10 2016 -0700"
      },
      "message": "Add ClassExt mirror.\n\nWe add the ClassExt type to hold values in Class that are not always\nneeded without making the Class type larger. For the initial change we\nmove the verifyError field into this type. It is expected to grow as\ntime goes on.\n\nTest: mma test-art-host\n\nChange-Id: I1d97df2e1267203841ad47b2effcb66dd76ac12a\n"
    },
    {
      "commit": "7d8d8ff0727a7aa9d11c738f13a7e06d3c4c3d68",
      "tree": "0f3f131d2d3438d06ecdfc05137ebfcc1ff6f1f3",
      "parents": [
        "af3572bc21cf66f970090c852b976095bb028083"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 02 12:38:05 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 02 12:38:05 2016 +0000"
      },
      "message": "Revert \"Revert \"ART: Generalize FindClassInPathClassLoader\"\"\n\nBug: 32510706\n\nChange is not responsible for the flakiness after all.\n\nThis reverts commit af3572bc21cf66f970090c852b976095bb028083.\n\nChange-Id: I399049c217deeac6a5c3f9d678a46bdb84386e3f\n"
    },
    {
      "commit": "af3572bc21cf66f970090c852b976095bb028083",
      "tree": "597b436db28186864524d5208628082e52a5ff52",
      "parents": [
        "fd1ae75a03b0b17fdbbb0097e856f494edf12312"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 02 09:49:25 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 02 09:49:25 2016 +0000"
      },
      "message": "Revert \"ART: Generalize FindClassInPathClassLoader\"\n\nBug: 32510706\n\nThis reverts commit fd1ae75a03b0b17fdbbb0097e856f494edf12312.\n\nChange-Id: Ie247477eea44a6a241d90864bf5dca29897ff4b8\n"
    },
    {
      "commit": "fd1ae75a03b0b17fdbbb0097e856f494edf12312",
      "tree": "0f3f131d2d3438d06ecdfc05137ebfcc1ff6f1f3",
      "parents": [
        "46aba36a1c982567d7e80a62b0cff9c0935e7455"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 28 15:34:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 01 08:23:27 2016 -0700"
      },
      "message": "ART: Generalize FindClassInPathClassLoader\n\nAlso accept DexClassLoader. Do a fast check for subclasses of\nBaseDexClassLoader that are in the boot classpath.\n\nBug: 32510706\nTest: m test-art-host\nChange-Id: I7d79aa90e0241e7717c5d146d1123f41746e4ffa\n"
    },
    {
      "commit": "000e1885701c8fdad07a784e3771881fa9be1d8a",
      "tree": "77d11180fb1d93903fa6c6cd58383d91a82affc5",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 24 17:14:25 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 14:11:45 2016 +0100"
      },
      "message": "method_handles: Complete support for emulated stack frames.\n\nMost of this change is a refactor that templatizes the code\nthat performs argument conversions. This allows us to copy arguments\nbetween two shadow frames, or an emulated stack frame and a shadow\nframe.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I23e65735a2dbd28f3c7b7d1ccf9762e77e0cf1f1\n"
    },
    {
      "commit": "eb242cd311e5e93dd85042321a63d55e690873d4",
      "tree": "1c27a9759441e87a950d04c7d46b7d6f4039f958",
      "parents": [
        "168c58ce18b139d313cbc6131e3bb43539952c55",
        "0802518a6a5af8182131eb3fe66bf58dd77f9fe2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 26 14:24:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 26 14:24:43 2016 +0000"
      },
      "message": "Merge \"Save the non-verified classes in the VerifierDeps.\""
    },
    {
      "commit": "0802518a6a5af8182131eb3fe66bf58dd77f9fe2",
      "tree": "94b84da33a0ef542f6c4c3888e786dc8762ff1b2",
      "parents": [
        "f30b1582c20079a1266f1fdcac621d4df2d7ce79"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 25 17:20:18 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 26 12:41:10 2016 +0100"
      },
      "message": "Save the non-verified classes in the VerifierDeps.\n\nWe will need that information when taking an OTA to make sure\nthe same set of classes needs to be verified at runtime.\n\nCurrently, the vdex file will contain a list of unverified\nclasses. We could alternatively encode a bit vector of the size\nof the type_id array, but the few experiments I did show that\nthe bit vector is actually larger. We can refine this later.\n\nbug: 30937355\ntest: m test-art-host\ntest: verifier_deps_test.cc\n\nChange-Id: I2670e4fd2e54ee7a148246baa705fda3a56617ff\n"
    },
    {
      "commit": "34ee6842a283afe107f0c1df941393f955323b52",
      "tree": "63614db22d589a42f843f1b96e2332e8c89d4860",
      "parents": [
        "5b6fbd02f03fd41829c7dd4bfce97a62346be854"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 15:43:52 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 25 11:18:05 2016 -0700"
      },
      "message": "ART: Refactor class-linker methods\n\nHide the LookupClass with hash version. Clients should not have to\nknow about that performance detail.\n\nHide FindClassInPathClassLoader. This is an implementation detail.\n\nTest: m test-art-host\nChange-Id: I2378c6fed8d7d1fb1ead8e042b4cf07228adf25c\n"
    },
    {
      "commit": "28357fab628bd9b91749988b554977398caf9963",
      "tree": "957fac3c1003713c349e0e216762836138c596a7",
      "parents": [
        "c89f9776a107ca20d0146c16fa881db91c4f8266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 18 16:27:40 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 19 10:04:37 2016 -0700"
      },
      "message": "Move most of class linker to ObjPtr\n\nReturn values are still mirror pointer. Fix some failing asserts in\ncompiler driver and tests.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4450bf9dfb2541749496b8388616e8aae8488919\n"
    },
    {
      "commit": "bc5a795c0d486c84913d987cad5846ded840cea6",
      "tree": "90db29a97a21fa15f4cbc5ffbc1f6dd191add49c",
      "parents": [
        "38a4223fcc0493553d9ad324a1dc145869eb663a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 15:46:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 17 16:16:50 2016 -0700"
      },
      "message": "Move art/native to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I67eb89cf042c762c6dcd5eb8b008b9a28e9b3319\n"
    },
    {
      "commit": "1a1de67c4923436eb7de7da334c6d77703375dbd",
      "tree": "bf82b30cddfeaa822e14a63c0ad9fedd3886958d",
      "parents": [
        "6e5fa09510c7280168e040382d27dd8b55760d9a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 13 12:53:15 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 14 11:25:28 2016 +0100"
      },
      "message": "Do not write empty class table and intern table to image.\n\nAnd remove dead ClassLinker and InternTable code that would\nbe erroneously triggered by not writing the tables.\n\nTest: m test-art-host\nChange-Id: I2520daa8d1231e16112d44e364a72d782fa32527\n"
    },
    {
      "commit": "7638651be29f117ef651841fbb9ffda76921ae1b",
      "tree": "5354cc999cc64dd2bfe78d60bef994059fcca2ba",
      "parents": [
        "cf42ad62df2dda8b5a39cab50669a9446a880b41",
        "6c60d8420e51fda65ad247ae04b5a823c88c26b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 19:59:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 19:59:09 2016 +0000"
      },
      "message": "Merge \"Initialize dex cache while holding dex_lock\""
    },
    {
      "commit": "6c60d8420e51fda65ad247ae04b5a823c88c26b6",
      "tree": "8c4222eadad97235b5f6d860fb63ab8a749d111a",
      "parents": [
        "c13fbeb2201dc0bf783670d4548a49f03b1cb33e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 10:24:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 09:39:07 2016 -0700"
      },
      "message": "Initialize dex cache while holding dex_lock\n\nFixes multiple threads calling RegisterDexFile occasionally getting\nDCHECK failures due to the arrays not being null since the BSS ones\nis per dex file.\n\nBug: 31369621\n\nTest: test-art-host, no DCHECK failure during debug booting\n\nChange-Id: I7b6e4cd03460dd1213eb4e044bdcf5f6103fd5f9\n"
    },
    {
      "commit": "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1",
      "tree": "d2f02420f82d76d10dc0d80f431c9f4aba03ac82",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 14:44:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 13:21:44 2016 +0100"
      },
      "message": "Remove #include \"oat_file.h\" from class_linker.h .\n\nRefactor the OatClass and OatMethod related functions from\nClassLinker to OatFile and ArtMethod, respectively. Refactor\nthe remaining ClassLinker dependencies on OatFile to break\nthe #include dependency and reduce incremental build times.\n\nTest: m test-art-host\nChange-Id: Iebc5b9f81b48fbcf79821cc827a5d7c4a0261bf6\n"
    },
    {
      "commit": "b890130a66e167404a9a60cf0893a015538778ca",
      "tree": "e50899e754132f3281c932c31203f8c34c8ca85f",
      "parents": [
        "3398c7874e002beaa6c2b2fadf183e7d1ddad23a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 16:00:55 2016 -0700"
      },
      "message": "Use ObjPtr for ResolvedFieldAccessTest and ResolvedMethodAccessTest\n\nAlso added LookupResolvedType that is guaranteed to not do thread\nsuspension but deals with multidex since GetResolvedType will\nreturn null if the type was resolved in another dex file.\n\nAdded test.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I50493bca7d8ce9760546c3116b717484c62c47a4\n"
    },
    {
      "commit": "25352fc06c84cdab8a2ab6d173b0514066ade2b9",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 09:48:50 2016 +0100"
      },
      "message": "class_linker: Add support for resolving method types.\n\n- Add a new fixed size dex cache array for resolved method types.\n  The size of this array is set to 1024.\n- Also introduces a new runtime flag that controls this feature.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I147b33398d71ee21f2e91b418d3700d4630801ff\n"
    },
    {
      "commit": "afa48270228832ecd7df4506915354d1a41f374a",
      "tree": "7d63c5bde346eb129f3159b07b2a66dfa86aeb41",
      "parents": [
        "72795d0a3368a7f921ce2f470917131cd946b717"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Sep 29 13:15:32 2016 +0100"
      },
      "message": "java.lang.invoke: Add mirror types for MethodHandle / MethodType.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I096160464bc6e84f7e5ad021306a7e462cf3b0c5\n"
    },
    {
      "commit": "496577fb4d6d7baea9c093d35d17e208c831bbca",
      "tree": "1da9976883a8fea0dc05a58ec9bbd347b010fc19",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 20 15:33:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 23 15:27:26 2016 -0700"
      },
      "message": "Smarter image layout\n\nPut strings in the dex file that resolves them.\n\nDepth first traversal with overrides for class and dex cache. The\nwork list keeps track of what oat_index with each pushed item. This\nmeans the static fields of a class will usually be in the same image.\n\nAdded layout test to image_test to make sure things are somewhat\nreasonably attributed.\n\nBug: 28640955\n\nTest: test-art-host\n\n(cherry picked from commit 4e9c4e746617bad6a012d799d2f5cf9e01d24ea2)\n\nChange-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559\n"
    },
    {
      "commit": "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59",
      "tree": "2ce1b047f54bfb4287483de8eaf79cd12f6058b6",
      "parents": [
        "79f6d706185714dccf80aca20d9f3261337473ae",
        "268764da8022cafa5661c5b514eaa343c5257e57"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "message": "Merge \"Make ScopedAssertNoThreadSuspension no overhead for non-debug\""
    },
    {
      "commit": "268764da8022cafa5661c5b514eaa343c5257e57",
      "tree": "7c4b46847a6dcfac7a1492edd79b434fb1a0d6ea",
      "parents": [
        "f9decf915f6fa5b33fceba7c10c119e4cad481e5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 12:09:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 13 15:18:29 2016 -0700"
      },
      "message": "Make ScopedAssertNoThreadSuspension no overhead for non-debug\n\nPreviously it required Thread::Current() which may not be free.\nThe plan is to add a lot more ScopedAssertNoThreadSuspension in\nthe codebase.\n\nAlso cleaned up callers.\n\nBug: 31458474\nChange-Id: I5a1621a5435476504d22266cc01a9bf26aab7568\n"
    },
    {
      "commit": "5fd66d0546805f0d86ec3365762c00b8dd3415f5",
      "tree": "82fb3cbb657f970a5c1d7c65e5567026816e284f",
      "parents": [
        "6a8c69f9d9d7840cac8cd17057d58c4cf91da4c6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 20:22:19 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 20:25:01 2016 -0700"
      },
      "message": "ART: Remove LogSeverity NONE\n\nRemove non-standard severity, and instead use a new enum to\nconfigure verifier logging.\n\nPartially reverts commit 7fe30233d32a872f5349e921dba65bd767ad994b.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: If52ee23c4902fbf2dabe7b232f6742448764ff8c\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "65975776f807d55c83af6cca1e447f8daa794413",
      "tree": "3b30b9a6ba00e72df89f59387c383ef747772025",
      "parents": [
        "3f3201a89ec19257b3bc93c25b20abdcfe61f3e4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 05 10:46:36 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 10:45:18 2016 -0700"
      },
      "message": "Card mark holding class instead of declaring class\n\nFor profiling info, we need to mark the card of the holding class\ninstead of declaring class. This is required for GC correctness since\nthe GC relies on the card table to track cross space references.\n\nTest: test-art-host ART_TEST_JIT\u003dtrue\n\nBug: 30655270\n\nChange-Id: Ia4690219ded0df38032b644440273e06bc303956\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "a62cb9bb6cb2278cb41ab0664191623e178c6a4f",
      "tree": "62263dac644e2d80a34a04f2649e4741a1bed6f4",
      "parents": [
        "bb8d501c9bb882a8927c6ceda07bf9577e06c3e1"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jun 30 09:18:25 2016 +0000"
      },
      "committer": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jul 07 10:01:04 2016 +0000"
      },
      "message": "Revert \"Revert \"Optimize IMT\"\"\n\nThis reverts commit 88f288e3564d79d87c0cd8bb831ec5a791ba4861.\n\nChange-Id: I49605d53692cbec1e2622e23ff2893fc51ed4115\n"
    },
    {
      "commit": "88f288e3564d79d87c0cd8bb831ec5a791ba4861",
      "tree": "dd051a7b2985d1af3fea91ad6000de4bdc701a19",
      "parents": [
        "e36389f20c83083c0aaba2dcac0888951e55cae1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:17:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:41:25 2016 +0000"
      },
      "message": "Revert \"Optimize IMT\"\n\nBug: 29188168 (for initial CL)\nBug: 29778499 (reason for revert)\n\nThis reverts commit badee9820fcf5dca5f8c46c3215ae1779ee7736e.\n\nChange-Id: I32b8463122c3521e233c34ca95c96a5078e88848\n"
    },
    {
      "commit": "abdda2fb52eb7e9a6916899a913f78251d8ed277",
      "tree": "165a31831ae077827b1e7b973bd5602125b5b142",
      "parents": [
        "2b87a47c09823031c4fe336dcef0867605debfd7",
        "badee9820fcf5dca5f8c46c3215ae1779ee7736e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 15 17:44:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 15 17:44:14 2016 +0000"
      },
      "message": "Merge \"Optimize IMT\""
    },
    {
      "commit": "badee9820fcf5dca5f8c46c3215ae1779ee7736e",
      "tree": "982948a67a88a1f9a734c935f919f8d307969f48",
      "parents": [
        "614968198625a6693666bdc1e5609e2f663f5638"
      ],
      "author": {
        "name": "Nelli Kim",
        "email": "nelli.kim@samsung.com",
        "time": "Fri May 13 13:08:53 2016 +0300"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jun 14 10:05:47 2016 -0700"
      },
      "message": "Optimize IMT\n\n* Remove IMT for classes which do not implement interfaces\n* Remove IMT for array classes\n* Share same IMT\n\nSaved memory (measured on hammerhead):\nboot.art:\nTotal number of classes: 3854\nNumber of affected classes: 1637\nSaved memory: 409kB\n\nChrome (excluding classes in boot.art):\nTotal number of classes: 2409\nNumber of affected classes: 1259\nSaved memory: 314kB\n\nGoogle Maps (excluding classes in boot.art):\nTotal number of classes: 6988\nNumber of affected classes: 2574\nSaved memory: 643kB\n\nPerformance regression on benchmarks/InvokeInterface.java benchmark\n(measured timeCall10Interface)\n1st launch: 9.6%\n2nd launch: 6.8%\n\nChange-Id: If07e45390014a6ee8f3c1c4ca095b43046f0871f\n"
    },
    {
      "commit": "ece5386eeb30aa6be663af2416b68a7ebf9bd42e",
      "tree": "6a951fc8c1a2358591327d107828d7d48ee47ea4",
      "parents": [
        "614968198625a6693666bdc1e5609e2f663f5638",
        "7a62e6728463237684d3d9834d81bd7bba7ab197"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jun 13 23:11:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 13 23:11:33 2016 +0000"
      },
      "message": "Merge \"Propagate the read barrier option to Class::VisitNativeRoots.\""
    },
    {
      "commit": "7a62e6728463237684d3d9834d81bd7bba7ab197",
      "tree": "7f53e92a3303475cb8c164d98274d465bd32ef00",
      "parents": [
        "1e5dda549c11d02aff51f132760dd693e351ce85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 10 17:22:48 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jun 13 13:57:34 2016 -0700"
      },
      "message": "Propagate the read barrier option to Class::VisitNativeRoots.\n\nPropagate the read barrier option from Object::VisitReferences to\nClass::VisitNativeRoots.\n\nThis is a step toward the GC thread avoiding graying objects (and\nreducing dirty pages) in the immune spaces.\n\nBug: 12687968\n\nChange-Id: I29c4126a4ad4c40e63a934e62451fb3fb36aad43\n"
    },
    {
      "commit": "c92a7a14ce44c4bb7e63e4c447a008b558bc0bca",
      "tree": "c48ebef140dd292cc2cc29726045c03f5b2b02ea",
      "parents": [
        "6c54dfb86a6cd6f63a9518893562595460b480ad"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 06 11:09:20 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jun 07 20:04:02 2016 -0700"
      },
      "message": "Wrap certain exception types when loading an erroneous class.\n\nBug: 28787733\n\n(cherry-picked from commit 7c8aa8357196781c811a73d2eb66aaaa1681ce36)\n\nChange-Id: Iea55486c4b95ee16e1f19c8ba2d24c18b9100c97\n"
    },
    {
      "commit": "696632e6113a379f24dc6fe4c38e4dee57a249f8",
      "tree": "2bc5da7e66573bd2a50bda6db03bc2be1aa1b036",
      "parents": [
        "6d335635fc8b575261be4a7efea0ea5f4adb9fac"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 03 17:47:32 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 06 13:09:09 2016 -0700"
      },
      "message": "Revert \"Revert \"Hold dex caches live in class table\"\"\n\nBug: 29083330\n\nThis reverts commit f102faf1bcbdb2149e3e7bf27b1819f621b7894b.\n\n(cherry picked from commit c9dbb1df3b5c06ba122cacaf35b17cb53c6be3c6)\n\nChange-Id: Ib5d82bde2e4a031c1cab0ea6116925ef99d9f07f\n"
    },
    {
      "commit": "6d335635fc8b575261be4a7efea0ea5f4adb9fac",
      "tree": "9b3d2c06470319fbb91d683efac163dfd263888d",
      "parents": [
        "55554a9c0a5ea80b0a6e361be75944d560e75197"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Jun 04 00:22:32 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 06 13:08:51 2016 -0700"
      },
      "message": "Revert \"Hold dex caches live in class table\"\n\nThis reverts commit d6d49e56c2b7b11f474acb80cb02bb1fe9b7861e.\n\nBug: 29083330\n\n(cherry picked from commit f102faf1bcbdb2149e3e7bf27b1819f621b7894b)\n\nChange-Id: Id0c921bd6fe422159f8daa598dc8e7c9ed6eca47\n"
    },
    {
      "commit": "f284d448e3edd428b6ade473d0993028638b2064",
      "tree": "e24f57f952f4e6c850ec910de3361aef6340727a",
      "parents": [
        "3f432d5a7c184b7580bd5aba27158c1455c328ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 11:48:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 18:03:41 2016 -0700"
      },
      "message": "Hold dex caches live in class table\n\nPrevents temporary dex caches being unloaded for the same dex file.\nUsually this is OK, but if someone resolved a string in that dex\ncache, it could leave stale pointers in BSS. Also it can use extra\nmemory in linear alloc if we allocate dex cache arrays multiple\ntimes.\n\nBug: 29083330\nChange-Id: Ia44668f013ceef1f5eb80f653a48d0f8004548c9\n"
    },
    {
      "commit": "f0192c86a58b2f43378c9a2113007538dd38ddbf",
      "tree": "df3fef8e9ccd30152819e893e6212ce45b5f51a5",
      "parents": [
        "783d02e527107e91880f12bddf41afd313919132"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 28 20:39:50 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 17 11:08:41 2016 -0700"
      },
      "message": "Support to pass \u003cuses-library\u003e option through to dex2oat.\n\nThis change takes an app\u0027s shared libraries specified by \u003cuses-library\u003e\nand passes it through to dex2oat to be used during compilation.\n\nPart of a multi-project change.\n\nBug: 26880306\n\n(cherry-picked from commit 26e8a2f150cd7f7195a10650ab8a5b6fa5014bc8)\n\nChange-Id: I72a352abdfc37eacd8bedfa6c218e3809ca8e39c\n"
    },
    {
      "commit": "ab880f4371e1ae5239c1b887911bd88f0c216a3d",
      "tree": "2e13093b2255369257844865db39c56816dfb054",
      "parents": [
        "2273f678ea3a55ec0f6b3b8c29c1e5100d6fc846"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 12 16:24:36 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon May 16 15:56:23 2016 +0100"
      },
      "message": "Typos and stylistic fixes.\n\nChange-Id: I1c88af9bd1d2cac6c803c8c61088c569a3847e01\n"
    },
    {
      "commit": "10c5f56423feaf3eadb3d4c09c61d2b998404162",
      "tree": "95ff81b9106f5425e9903e5239ccf410aa8bc3ea",
      "parents": [
        "718d4e269810c17d03df909c84b2f7bbd4f61fb9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 10 18:13:20 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 11 09:56:42 2016 -0700"
      },
      "message": "Prevent ArtMethod clearing race\n\nThere was race condition where the GC would be visiting the methods\nof a class while the class linker overwrote the contents with 0xFE\nwhen copying to a new array.\n\nSince the GC is holding the class table lock at this time, we can\nuse this lock in the class linker to prevent the race.\n\nBug: 28699001\nChange-Id: I91ca2406ef723e7be69cd1c53f4bafa2e5f63657\n"
    },
    {
      "commit": "e42888f9df4163303244070c65d5229d3e201742",
      "tree": "c3c3e380ed16676186040f1da6042fc2cd58e041",
      "parents": [
        "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:45:30 2016 -0700"
      },
      "message": "Write conflict tables in image\n\nAdd image sections for runtime methods and conflict tables. This\nmakes it that we do not need to fake up a length prefixed array\nfor runtime methods.\n\nReduces .art private dirty and PSS.\n\nSystem wide .art PSS goes from 32.5MB to 30.5MB after system boot.\n\nBusiness card .art private dirty goes from 588K to 504K.\n\nIncreases image size by ~100K.\n\nBug: 27906566\n\n(cherry picked from commit cda9386add68d94697449c6cb08b356747e55c21)\n\nChange-Id: I38cbe3150c3eeb385b8cad7cf93614e3980f4162\n"
    },
    {
      "commit": "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5",
      "tree": "e4e19523d64b36ace1314d7d2493b64b31eb7442",
      "parents": [
        "3ce07dd1a1d000a5439e32d64fcee19268846c08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:44:47 2016 -0700"
      },
      "message": "Add support for eagerly calculating conflict tables\n\nWill be used to put them in the image by having the compiler eagerly\ncalculate them.\n\nEnabled for debug builds (non compiler). Support for having conflict\ntables written in the image will come in the next CL.\n\nBug: 27906566\n\n(cherry picked from commit 49b5cede15d69930a8c156a3aea240164ca7af80)\n\nChange-Id: Ia05cb31f85eacfeabe64a8caf9a0b3029114a749\n"
    },
    {
      "commit": "393fdb8b4822d80bbbd6347b088e28c03a72289e",
      "tree": "134955e86b08514fb88ecd0e5a037adfbf738fd6",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 25 14:58:06 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 25 16:56:56 2016 +0000"
      },
      "message": "Make sure the referring class is in the dex cache.\n\nThe method CanAccessResolvedMethod expects the referring class\nin the dex file is already in the dex cache, which is true during AOT,\nbut not necessarilly during JIT.\n\nbug:28295348\nChange-Id: I58739903f0dff3867b920a7444f53b99ecf86e85\n"
    },
    {
      "commit": "6d25cf6cbda1b95fb014a3fd22c01a6bdf47725e",
      "tree": "d718c92777b01053a47c14a891a6d8dd493d0821",
      "parents": [
        "780b46126af0b4239ff5a3a88f347548d960bbe4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 12 16:54:48 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 12 17:59:44 2016 -0700"
      },
      "message": "Fix InsertDexFileInToClassLoader to handle null class loaders\n\nMaybe used by legacy apps. This functionality is planned for\ndeprecation.\n\nBug: 27954959\n\n(cherry picked from commit f2bf9d640e37b72be8b4f6016d4aa95a0e27b7b4)\n\nChange-Id: I1ae2cf1e33f2f1b237a41c8cc50d2a814a52a95a\n"
    },
    {
      "commit": "cac5a7e871f1f346b317894359ad06fa7bd67fba",
      "tree": "2df7d4892216a7c976dfe848c9893cb5eb8fa6a5",
      "parents": [
        "6f51d7756a9c66007fe7666b19399e1f60ff6092"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 22 10:39:50 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 19:27:40 2016 +0100"
      },
      "message": "Optimizing: Improve const-string code generation.\n\nFor strings in the boot image, use either direct pointers\nor pc-relative addresses. For other strings, use PC-relative\naccess to the dex cache arrays for AOT and direct address of\nthe string\u0027s dex cache slot for JIT.\n\nFor aosp_flounder-userdebug:\n  - 32-bit boot.oat: -692KiB (-0.9%)\n  - 64-bit boot.oat: -948KiB (-1.1%)\n  - 32-bit dalvik cache total: -900KiB (-0.9%)\n  - 64-bit dalvik cache total: -3672KiB (-1.5%)\n    (contains more files than the 32-bit dalvik cache)\nFor aosp_flounder-userdebug forced to compile PIC:\n  - 32-bit boot.oat: -380KiB (-0.5%)\n  - 64-bit boot.oat: -928KiB (-1.0%)\n  - 32-bit dalvik cache total: -468KiB (-0.4%)\n  - 64-bit dalvik cache total: -1928KiB (-0.8%)\n    (contains more files than the 32-bit dalvik cache)\n\nBug: 26884697\nChange-Id: Iec7266ce67e6fedc107be78fab2e742a8dab2696\n"
    },
    {
      "commit": "7fe30233d32a872f5349e921dba65bd767ad994b",
      "tree": "6039f608c5753d549a30a07f4997cb8141eba970",
      "parents": [
        "bf9611f821697b14bf9e170f503c3f47613b046b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 25 16:58:00 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 28 16:57:30 2016 -0700"
      },
      "message": "ART: Make verifier fail log level adjustable\n\nTo help for build failures.\n\nChange-Id: I6c94dfb50177daa7d89902d78715ccec31bf0e45\n"
    },
    {
      "commit": "796d63050a18f263b93ea34951a61deaecab3422",
      "tree": "813865c31b25ac06006e4ee3932b4e918c708c9b",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 13 22:22:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 15:17:58 2016 +0000"
      },
      "message": "Add an ImtConflictTable to better resolve IMT conflicts.\n\n- Attach a ImtConflictTable to conflict runtime ArtMethod.\n- Initially 0, a new one will be created at the first hit of\n  the conflict method.\n- If the assembly code does not find a target method in the table,\n  we will create a new one again, copying the data from the previous\n  table and adding the new mapping.\n\nImplemented for arm/arm64/x86/x64.\n\nbug:27556801\nbug:24769046\n\nChange-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7\n"
    },
    {
      "commit": "6300fd77033817664aee3056c4ff5fab85698d2b",
      "tree": "55e14dca88cad3d5a733a9a7a50534556cb838b5",
      "parents": [
        "db1f7dac02f6dcecac3e032f10abbcdbf3cf4331"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 18 09:40:17 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 21 14:42:47 2016 +0000"
      },
      "message": "Code cleanup between debugger and jit.\n\nThis is to allow secondary dex files to be fully compiled.\n\n- No need to do full deopt anymore for breakpoints: code in boot.oat\n  is deoptimized as soon as the debugger attaches (and we decided that\n  existing frames could not be debugged), and application being\n  debugged is compiled debuggable.\n\n- jit should only call UpdateMethodsCode if exit stubs are not\n  installed due to lock violation otherwise (the lock level of the\n  jit code cache is lower than the deoptimization lock).\n  This part needs an overall cleanup beyond the scope of this change.\n\nChange-Id: I38d85dcb270db746c1d6b0ceb7893a1aad8c9655\n"
    },
    {
      "commit": "0b4cbd0c2a75b47ae09d21e5d73d2b1709cb5b9e",
      "tree": "72572a01a181c12272a5570ae8b4d41e9ef553f8",
      "parents": [
        "c3214fbb66b5f4c436c44d027df5046c803f6432"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 08 16:49:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 14 17:07:11 2016 -0700"
      },
      "message": "Add oatdump support for app images\n\nExample usage on host:\noatdumpd --app-oat\u003dart/plus32.odex --app-image\u003dart/plus32.art\n--image\u003dart/oats/system@framework@boot.art --instruction-set\u003darm\n\nTODO: Add to oatdump test.\n\nBug: 27408512\nBug: 22858531\n\n(cherry picked from commit bcb6a72569a1401b36a3ad3b6aa4d13e29966cf0)\n\nChange-Id: I9d1aa7eaa16795e5fbabc6974d245849e16b1d03\n"
    },
    {
      "commit": "6973100705716bffce3768a8a0908d7ca1d02ec1",
      "tree": "e17f49598cea71828bdebb28db8b2c8baddac151",
      "parents": [
        "3040f4ae0bf9d8ebe0e7e43f4843929f7a4da4d9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 02 16:08:31 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 09:58:25 2016 -0800"
      },
      "message": "Only visit app image classes in class loader\n\nOnly update dex cache arrays of added classes since the declaring\nclass is in image DCHECK fails for other classes in the class loader.\n\nAlso some cleanup to prevent app images leaving invalid state if\nthey get rejected.\n\nBug: 22858531\nBug: 27431418\nChange-Id: Ib2a5692a1ad78b014a1bfc6b27fb1c12bc8565e6\n"
    },
    {
      "commit": "5b83050affa6a3b1d3863c0b903f9d48fe4aefb2",
      "tree": "6ffce3adefced9b6ab9f019327e542e0535e225e",
      "parents": [
        "a71ec6419d9e80b354de721003c8b7929d224a49"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 02 10:30:23 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 02 10:47:20 2016 -0800"
      },
      "message": "Fix potential linear alloc memory leak\n\nPreviously, if we created a linear alloc for a class loader but\nnever created the class table, the linear alloc would never get\nfreed since it would have no corresponding ClassLoaderData.\n\nFixes valgrind-test-art-host-gtest-oat_test\n\nBug: 27384882\nChange-Id: Ic8f35b58c3117127a39521b6b9d25ef12c72040c\n"
    },
    {
      "commit": "c5dd319c574f67d11a71f1b60ac6c34bfe93b750",
      "tree": "51de8bdd7a891478e6d22a6f53781d53290c2d20",
      "parents": [
        "01c30e8dbc45bdc5d922cef6e5a404be7bed0e8c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 09 16:38:30 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 26 13:07:39 2016 -0800"
      },
      "message": "Add and use loaded class profiling\n\nClass profiling is a way to keep track of which classes are resolved.\nFrom here the compiler can use this information to generate a smaller\napp image.\n\nTODO: Add tests for profile stuff.\n\nBug: 22858531\n\n(cherry picked from commit 8913fc1a27df8cf3b37fd99e94d87f290591328e)\n\nChange-Id: Ifcd09230cbdc266305bc1247e0d31e7920eb353e\n"
    },
    {
      "commit": "6ea1a0e2168c8d9b6d97c075c73a72d84080f45b",
      "tree": "7a75b6191dc6539823c174e06256dd09ae50c637",
      "parents": [
        "b4982aab07ae4cdaba13b4cb99306459d92e52d5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 29 12:12:49 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 23 13:44:50 2016 -0800"
      },
      "message": "AOT compile framework code as non-debuggable\n\nWhen a debugger attaches, we patch method entry points in framework\ncode to interpreter bridge. The code will later be jitted as debuggable.\n\nChange-Id: Id148069ccad95e2339ba214742ae3ef4f084f495\n"
    },
    {
      "commit": "dd5e5e975e1965c3e4568143e8e1c7b65b319f58",
      "tree": "92f56fa2f743d50fc7078117cf28cbdacf2937d8",
      "parents": [
        "88f4bc504c1be353e95e9d215d68c7d58eb0717f"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Feb 12 16:29:00 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 15 18:32:27 2016 +0000"
      },
      "message": "Revert \"Revert \"Make it possible to enable native debugging through debug flags\"\"\n\nThis reverts commit 3a98aae1b9b20bc78dc5e05d2e60cb1d0072db02.\n\n* Add support for a new debug flag disabling the optimizations in\n  the compiler and enable the generation of some additional debug\n  info (--native-debuggable).\n* Ignore the content of the oat files if force JIT is enabled so\n  the runtime ignores the AOT-ed code what doesn\u0027t contain any\n  debug info.\n\nTime measurements on a Nexus 5 with running:\nam start -n com.facebook.katana/com.facebook.katana.LoginActivity -W\n\nBefore change:             | AVG | DEV\n--------------------------------------\nThisTime:  549 492 512 511 | 516 | 24\nTotalTime: 549 492 512 511 | 516 | 24\nWaitTime:  662 511 528 526 | 557 | 71\n\nAfter change:              | AVG | DEV\n--------------------------------------\nThisTime:  530 467 503 544 | 511 | 34\nTotalTime: 530 467 503 544 | 511 | 34\nWaitTime:  551 497 536 583 | 541 | 36\n\nBased on the numbers the speed impact of the change is less then the\naccuracy of the measurement and it is also negligible.\n\nThe minor speed improvement displayed in the measurements are just\nthe cause of the variance of the measurement and not caused by this\nchange.\n\nChange-Id: Ibf7294bfd14f8632a0fdeb27a5b90bfe5037d085\n"
    },
    {
      "commit": "9fab717bb67e6d141ca7a6d6c33adbf5b9d3dba7",
      "tree": "84da9d0f39096d8b857760a0848c0231aff0ed6d",
      "parents": [
        "27ec302da670ffddaf1278b5b7155b7742aa37fd",
        "3a98aae1b9b20bc78dc5e05d2e60cb1d0072db02"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 08 20:26:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 20:26:26 2016 +0000"
      },
      "message": "Merge \"Revert \"Make it possible to enable native debugging through debug flags\"\""
    },
    {
      "commit": "3a98aae1b9b20bc78dc5e05d2e60cb1d0072db02",
      "tree": "541d9f2eeeeb4d1b7f3e56846542d826d0f6be59",
      "parents": [
        "c94a61f06ffc13288c67891048128c987b29bf33"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 08 20:21:54 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 08 20:21:54 2016 +0000"
      },
      "message": "Revert \"Make it possible to enable native debugging through debug flags\"\n\nThe change causes issues in test-art-target-gtest-jni_internal_test32\n\nThis reverts commit c94a61f06ffc13288c67891048128c987b29bf33.\n\nChange-Id: Iecfe3c6874d7b0dd59f10156fe2eb743ab7221dc\n"
    },
    {
      "commit": "27ec302da670ffddaf1278b5b7155b7742aa37fd",
      "tree": "748b6dce978437f689e6f81808c47ed3a0b6e4a9",
      "parents": [
        "f637d80872d418fc62ee1d40b19e1f5a676d1399",
        "c94a61f06ffc13288c67891048128c987b29bf33"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 08 17:01:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 17:01:58 2016 +0000"
      },
      "message": "Merge \"Make it possible to enable native debugging through debug flags\""
    },
    {
      "commit": "c94a61f06ffc13288c67891048128c987b29bf33",
      "tree": "83ed6106d14b211281c9ba2a677aed97ebc7657b",
      "parents": [
        "ac6a195ec8e1b5a7a6bd3d0c53d8997ff7a5e2cc"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Feb 05 18:09:08 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Mon Feb 08 10:53:01 2016 +0000"
      },
      "message": "Make it possible to enable native debugging through debug flags\n\n* Add support for a new debug flag disabling the optimizations in\n  the compiler and enable the generation of some additional debug\n  info (--native-debuggable).\n* Ignore the content of the oat files if force JIT is enabled so\n  the runtime ignores the AOT-ed code what doesn\u0027t contain any\n  debug info.\n\nTime measurements on a Nexus 5 with running:\nam start -n com.facebook.katana/com.facebook.katana.LoginActivity -W\n\nBefore change:             | AVG | DEV\n--------------------------------------\nThisTime:  549 492 512 511 | 516 | 24\nTotalTime: 549 492 512 511 | 516 | 24\nWaitTime:  662 511 528 526 | 557 | 71\n\nAfter change:              | AVG | DEV\n--------------------------------------\nThisTime:  530 467 503 544 | 511 | 34\nTotalTime: 530 467 503 544 | 511 | 34\nWaitTime:  551 497 536 583 | 541 | 36\n\nBased on the numbers the speed impact of the change is less then the\naccuracy of the measurement and it is also negligible.\n\nThe minor speed improvement displayed in the measurements are just\nthe cause of the variance of the measurement and not caused by this\nchange.\n\nChange-Id: Ia9022cbc1bbfcc072314b6c95f63a4bf8060c36c\n"
    },
    {
      "commit": "37c36dcf2e1a78dd5798828c304d84717f79c62d",
      "tree": "f70a9a1e9a0585a15fb359ffda9eb0e024df9e91",
      "parents": [
        "e6141d7aba1078c0465294408133aaf00ae47f1b",
        "7ba5a67686a5c6fc5735a4a9457958c79e6ca818"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 05 23:06:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 23:06:51 2016 +0000"
      },
      "message": "Merge \"ART: Better InitWithoutImage error messages\""
    },
    {
      "commit": "7ba5a67686a5c6fc5735a4a9457958c79e6ca818",
      "tree": "28cf3a255a03a0e18505af4fab68858ec4f1cc7a",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 04 21:45:01 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 05 14:40:33 2016 -0800"
      },
      "message": "ART: Better InitWithoutImage error messages\n\nInitWithoutImage can easily fail when assumptions of the runtime\nwith respect to core classes are wrong. Give some more general\nhelpful messages.\n\nChange-Id: Icedac9a0d6ad84b2d1dde9e30bf4fab2f48a3efd\n"
    },
    {
      "commit": "867d63b65f653d27dc7ea87e924f47148cec22a7",
      "tree": "2038bbb25fe121bdcf3653cc32211c6e2cb88936",
      "parents": [
        "6006e2ce92fd86fdf028cd7b3afe972815b0e0f3",
        "df707e406877e9c0426dd051c00933ebb331673e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 04 00:34:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 04 00:34:43 2016 +0000"
      },
      "message": "Merge \"runtime: Don\u0027t skip verification for -Xverify:soft-fail\""
    },
    {
      "commit": "df707e406877e9c0426dd051c00933ebb331673e",
      "tree": "db9c96c96d373935a83dda2fafbf3c7e1aef3377",
      "parents": [
        "e3d4ff566f9545114bf9ed72421e49eaf9d37953"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 02 16:56:50 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 03 13:39:19 2016 -0800"
      },
      "message": "runtime: Don\u0027t skip verification for -Xverify:soft-fail\n\nWhen forcing the interpreter into access checks mode,\nmake sure that the regular verification is still run,\ngiving the verifier an opportunity to throw a VerifyError.\n\nIf verification would\u0027ve succeeded (without -Xverify:soft-fail flag),\noverride this and soft-fail, to force the interpreter-with-access-checks to be run\ninstead of the normal faster interpreter.\n\nThis fixes the following run-tests under the interpeter-access-checks:\n* 135\n* 412\n* 471\n* 506\n* 800\n\nBug: 22414682\nChange-Id: I5cb86a8bba71c7af9361a63c0802786c852b857b\n"
    },
    {
      "commit": "1aa8ec2ccdd7bedb6d30d91c89f1e94ab23c4439",
      "tree": "7b2079631ed5d8350c63c7ed3f6d0393e951ce8c",
      "parents": [
        "c3cf1d2e35a45bd2e2c60fbc9c2a1a6a56dfc529"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 01 10:34:47 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 01 19:58:25 2016 -0800"
      },
      "message": "Fix up dex cache strings stored in classes\n\nPreviously we left the image pointer instead of fixing up the pointer\nto the one in the BSS. This only showed up because JIT does the same\nas boot image, bypassing null check.\n\nFixed a bug where oat files without embedded dex cache arrays would\nget their dex cache arrays corrupted.\n\nAdded a non virtual class visitor for performance.\n\nBug: 26846419\nBug: 22858531\n\nChange-Id: I8cd0d61e440f753b4628ddb8c932eb23a0a81027\n"
    },
    {
      "commit": "5a5598609f4f65f446e46327e7b6789c41c92bde",
      "tree": "5556534d92e80d0bf141575564f4d8158e73bdef",
      "parents": [
        "2624ffcdbafd0d89cb92f688d4c264bb08a2522c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 29 12:24:48 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 29 12:26:14 2016 -0800"
      },
      "message": "Fix issue with exception type resolution during linking.\n\nWhen using default methods that cross dex-files we would sometimes\nattempt to lookup method information using the wrong dex file. This\nfixes this issue.\n\nBug: 26872564\n\nChange-Id: I3c4b64ef970017356962060f3bd3781b4629a3c8\n"
    },
    {
      "commit": "fedd91d50930e160c021d65b3740264f6ffec260",
      "tree": "5f356423e51f3bd71020ba0a5f024c54adc959e7",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 07 14:49:16 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 28 15:46:55 2016 -0800"
      },
      "message": "Optimizing compiler support for directly calling interface methods\n\nThis teaches the optimizing compiler how to perform invoke-super on\ninterfaces. This should make the invokes generally faster.\n\nBug: 24618811\n\nChange-Id: I7f9b0fb1209775c1c8837ab5d21f8acba3cc72a5\n"
    },
    {
      "commit": "76172164667d565c1d3316935a24b0d9712bb2f6",
      "tree": "ce6e40574623d297a13cfe92ade6cea31b27ebbc",
      "parents": [
        "227e627c513ced3c6b515b6e5836c6e832c0eeaa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 14:54:06 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 17:19:37 2016 -0800"
      },
      "message": "Convert to UTF8 before doing dex file location comparison\n\nNeed to have strings in the same format or else the lengths\nmight not match due to UTF8 conversion.\n\nAdded regression test.\n\nBug: 26799552\n\n(cherry picked from commit 3776db4e51ab61a6e535772417c2adf95920b569)\n\nChange-Id: Ifbc8c38418c9da307a0ff4446d18cea4fb5e71bc\n"
    },
    {
      "commit": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\n"
    },
    {
      "commit": "1bc977cf2f8199311a97f2ba9431a184540e3e9c",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "f7fd970244f143b1abb956e29794c446e4d57f46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "message": "Revert \"Load app images\"\n\nFails when a method is duplicated (see test 097-duplicate-method)\n\nBug: 22858531\n\nThis reverts commit f7fd970244f143b1abb956e29794c446e4d57f46.\n\nChange-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20\n"
    },
    {
      "commit": "f7fd970244f143b1abb956e29794c446e4d57f46",
      "tree": "aac1f57ac70747957f609bb46305dfeca87645a1",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 11:16:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 22 15:01:55 2016 -0800"
      },
      "message": "Load app images\n\nSupport in-place patching of the app image based on boot image\nlocation and app oat location. Only loads for art run test so far\nsince we do not automatically generate app images for app installs.\n\nN5 maps launch time (~200 runs):\nBefore: 930ms\nAfter: 878.18ms\nAfter + image class table: 864.57ms\n\nTODO:\nOatdump support.\nStore class loaders as class roots in image.\n\nBug: 22858531\n\nChange-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1\n"
    },
    {
      "commit": "966878d987cec1940fdfa8633fc79f8112320821",
      "tree": "e3449e703e74899a3f63b17c61ed391a3a8c003d",
      "parents": [
        "f8b122bda1c2cc4c9aff41f4a8f7c9a5758e1e97"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 14 14:33:29 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 14 14:44:57 2016 -0800"
      },
      "message": "Revert \"Create parent class loader for dex2oat\"\n\nBug: 22858531\n\nThis reverts commit d37d364c27e74a7b49970a8c970482e273aa7b1a.\n\nChange-Id: Id71a6f3bb9a29c04a5c13210633674e05d798114\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "e64300b8488716056775ecbfa2915dd1b4ce7e08",
      "tree": "be23a7086c1e369527dda5450a9868f2d29c5669",
      "parents": [
        "bc90a0538e56f98b8e138cb622e6b9d834244ad9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 15:02:47 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 16 14:16:31 2015 -0800"
      },
      "message": "Revert \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\"\n\nThis reverts commit ae358c1d5cef227b44d6f4971b79e1ab91aa26eb.\n\nBug: 24618811\n\nChange-Id: I8becf9bae3258450b90cfef5e79589db7c535a4d\n"
    },
    {
      "commit": "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb",
      "tree": "95c22194af5ea38a4fa5fc8bbe07ba60b6d0a021",
      "parents": [
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:26 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 6286a97bea0f584342803a215550038852b24776.\n\nChange-Id: I5b00f6d1350e9c587acd4b185367dc815ea707de\n"
    },
    {
      "commit": "6286a97bea0f584342803a215550038852b24776",
      "tree": "3571735bdc691bf30e33abb65a95ada8c71a18b7",
      "parents": [
        "377cb3ba2e1cfe51967e5292268a9aae71ceca8c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 03 17:38:56 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 14 14:27:32 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nThis makes several parts of the overall runtime simpler and reduces\nthe size of a class object by 32-bits.\n\nBug: 24618811\n\nChange-Id: I36129b52189e26898ea56fa2b7b45652e06af236\n"
    },
    {
      "commit": "42ef8ab151a3d0cbb42cb43f6841c3708d65fca3",
      "tree": "ba8eb3fdecd226a8c516a86ac418f73f6c0ff254",
      "parents": [
        "170e01a6b59b3242a5afc76c3a03c00ce288150f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 03 17:27:32 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:52:33 2015 -0800"
      },
      "message": "ART: Stash a resolved method late in the verifier\n\nInvoke-interface should only be called on an interface method.\nWe cannot move the check earlier, as there are other checks\nthat must be done that can fail a class hard. So postpone\na push to the dex cache.\n\nClean up the test a bit.\n\nAlso templatize ResolveMethod with a version always checking\nthe invoke type, and on a cache miss check whether type target\ntype is an interface when an interface invoke type was given.\n\nBug: 21869691\nChange-Id: I94cbb23339cbbb3cb6be9995775e4dcefacce7fd\n"
    },
    {
      "commit": "c96205e03bd4f991ad1540df38f9f692ef211b22",
      "tree": "4ae775d15f51efb704ca5b00a2ee4b6fb6615812",
      "parents": [
        "34760f9a97e6a1733edfca1b13199f749106a30f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:25:27 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 10 13:27:10 2015 -0800"
      },
      "message": "Revert \"ART: Check invoke-interface earlier in verifier\"\n\nThis reverts commit dae24142127c64551142a50423085aabdb0a6060.\n\nIt is important to check the name of the method being called.\n\nBug: 21869691\n"
    },
    {
      "commit": "dae24142127c64551142a50423085aabdb0a6060",
      "tree": "35c06bc37e2dd2caad4fef1fba4de16a12aad6f9",
      "parents": [
        "ef45113d01c16102538a8848d6979e772dad6225"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 03 17:27:32 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 08 08:50:12 2015 -0800"
      },
      "message": "ART: Check invoke-interface earlier in verifier\n\nInvoke-interface should only be called on an interface method.\nMove the check earlier, as otherwise we\u0027ll try to resolve and\npotentially inject a method into the dex cache.\n\nAlso templatize ResolveMethod with a version always checking\nthe invoke type, and on a cache miss check whether type target\ntype is an interface when an interface invoke type was given.\n\nBug: 21869691\nChange-Id: Ica27158f675b5aa223d9229248189612f4706832\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "d37d364c27e74a7b49970a8c970482e273aa7b1a",
      "tree": "ecf910556f7d6e4a0cdfa7dfc271f3894909e601",
      "parents": [
        "16cabc4acd14d5a61c73cef821162e1827f08788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:05:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:11:03 2015 -0800"
      },
      "message": "Create parent class loader for dex2oat\n\nThis means we also put the class loader in the app image so that it\ncan be used for verifying the dex file order.\n\nBug: 22858531\nChange-Id: I30761b59421c8a24cffd62b469134b25d2929e2e\n"
    },
    {
      "commit": "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d",
      "tree": "eb963403d06cad9ff2569f669ef714425d40c893",
      "parents": [
        "3ce45f4e6abd725407a539521f69959a6ac5a9c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 17 11:52:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 18 22:26:39 2015 -0800"
      },
      "message": "ART: Change Init{From,Without}Image to return bool\n\nRewrite some CHECKs to return false. For a common failure (missing)\nimage, this improves the abort (as it\u0027s not a runtime abort with\nlots of stack traces anymore).\n\nChange-Id: I717b1db74950267ced0ad3bafa1aed1693680062\n"
    },
    {
      "commit": "04302dbb106d590ff72c0dfecda23d85b6565059",
      "tree": "2fe66e258de36bcebc913d48e04468b7c639578f",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 11 23:45:34 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 13 15:21:29 2015 -0800"
      },
      "message": "Fix class unloading with the CC collector.\n\nAvoid unnecessarily decoding dex cache and class loader weak roots,\nwhich would trigger read barriers.\n\nRe-enable 141-class-unload with the CC collector.\n\nBug: 12687968\nBug: 24468364\nChange-Id: Ib4c19f25000873cab0e06047040442d135285745\n"
    },
    {
      "commit": "073b16c8429d302d5413e8ffc488b03b8f770780",
      "tree": "a417fd8042df8c0a9621f9097643ecaede4deeab",
      "parents": [
        "5165b6ba1fda85d769c5092a65f07bcfffb0b3e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 10 14:13:23 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 11 19:22:33 2015 -0800"
      },
      "message": "Image space cleanup for app images\n\nRemoved Heap::GetImageSpace, added Heap::GetBootImageSpace.\n\nGeneralized some logic in the class linker for image spaces.\n\nBug: 22858531\n\nChange-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25\n"
    },
    {
      "commit": "9139e008abe30b7beaf4afd6533228a1dd9b202c",
      "tree": "506be89287507bd777bd132627ad963729434969",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 09 15:59:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 10 17:20:41 2015 -0800"
      },
      "message": "Correct exception behavior for default methods\n\nDefault methods are defined to throw an IncompatibleClassChangeError\n(ICCE) when they are called and there is no \"best\" implementation.\nPreviously we would simply throw an ICCE during class loading as soon\nas we noticed that this would happen if called. This makes us wait\nuntil we actually attempt to execute the method. Furthermore, this\nallows us to use other, non-conflicting, methods on the object as\nnormal.\n\nFurthermore, this makes us correctly throw AbstractMethodErrors in\ncases where all default implementations of a method are overridden by\nabstract declarations.\n\nAdds 3 tests for this new behavior.\n\nBug: 24618811\n\nChange-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e\n"
    },
    {
      "commit": "f1584a6f5251892509097c3bb30bd91d36634d0a",
      "tree": "9fbd3fdd67726a988500eec8490a1f44f238927a",
      "parents": [
        "3c5893762675d90697d9205b76dc24e2d04e27ca",
        "f1f104935bc9a200f6e79c52c56c5d7cf0f43bb2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 09 19:30:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 19:30:10 2015 +0000"
      },
      "message": "Merge \"Class Linker: Implement default interface verification ordering.\""
    },
    {
      "commit": "f1f104935bc9a200f6e79c52c56c5d7cf0f43bb2",
      "tree": "0ecab05d26e4990b3898a86c6d68bdee6e7fb9a8",
      "parents": [
        "3482c271278b30ca7a5c6206b7f80332616f6a84"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 07 16:08:36 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 09 11:27:29 2015 -0800"
      },
      "message": "Class Linker: Implement default interface verification ordering.\n\nWe ensure that default interface verification failure is propagated to\nthe implementing class so that the compiler is able to properly handle\nverification failures. Furthermore we ensure that default interfaces\nare verified at the same time their implementing classes are.\n\nThis does not add additional support for default methods to the verifier.\n\nThis adds a basic test of this functionality.\n\nPreviously assumptions made about the order of verification in our\ncode could cause a check failure during compilation. Our old code\nassumed that all code that would be run during a classes\ninitialization had been verified before any of it was run. The default\ninterfaces broke this assumption. Now we will simply verify default\ninterfaces with any classes that implement them.\n\nBug: 24618811\n\nChange-Id: Ia11a50a28889dbd7ca22ffa730ef443e39f3cb5b\n"
    },
    {
      "commit": "a808bac971255ff4e62a6c5feadeca1ddcc4b3c0",
      "tree": "9f415cf66efb68a8f138e05fd320cabf524e140c",
      "parents": [
        "ce0f43b97ffb5e4d14c5df6607d8efb46a5dc9d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 16:33:15 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 09:55:52 2015 -0800"
      },
      "message": "Add more image writer comments and clean up\n\nBug: 22858531\n\nChange-Id: Ia3663856a7d9f67d9d9af329a54707ae2dc55a48\n"
    },
    {
      "commit": "cb086955c2a21270cd2f53a8bce71e577d776506",
      "tree": "be580e6a4050539b2785d6d92cb9e71507c075d2",
      "parents": [
        "accc24985c08e98a27f43bc856fba4c3c48e79e9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 02 16:20:00 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 04 18:01:26 2015 -0800"
      },
      "message": "ART: Change behavior for rethrowing init failures (2)\n\nAlways store the pending exception when making a class erroneous.\nInstead of filtering by ExceptionInInitializerError, add an option\nto the rethrow that enforces a NoClassDefFoundError, which is required\nby the specification.\n\nUse the libcore companion change to add the stored error (if any) as\na cause to the NoClassDefFoundError, which should significantly help\ntracking down issues.\n\nFix run-test 008 to expect spec-compliant behavior. Test that a cause\nhas been set.\n\nBug: 25445103\nChange-Id: I6a0dc54e78312283faf23415887eff387531407f\n"
    }
  ],
  "next": "99babb6add7db19ce7605f6d5e4aee79d52e386f"
}
