)]}'
{
  "log": [
    {
      "commit": "a96f316f6f0526c91c6c102a267df6b1e4df39da",
      "tree": "308f1886e026df0ba6aa816b107172637f11984a",
      "parents": [
        "a6513729ae2ad0d2f9dd21d77ea6cf9ed9fa6eef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 03 14:04:02 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 03 14:04:02 2016 +0100"
      },
      "message": "Put a handle on the String object.\n\nOtherwise, a GC could occur in the loop below, and the String\nbe moved (note that there was already one for the Class object to\nprotect for that same problem).\n\nbug:27561834\nChange-Id: I5ad0e0cac148bc6e028d05eff67f18932ec46ea8\n"
    },
    {
      "commit": "97cbc9206e9adc473a90650ebdb5d620f517ff04",
      "tree": "bef15a43a1c3f3dc2639f156aeea40d95763258e",
      "parents": [
        "85e47976a483844177eb486d6e501fa070fbe6e2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 15 16:16:35 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 28 16:12:33 2016 +0100"
      },
      "message": "Allow the framework to register sensistive threads to the runtime\n\nBug: 27865109\nBug: 28065407\n\n(cherry picked from commit 8fff24953c78bd58f3a42ac83b340b90e7e7228a)\n\nChange-Id: I82094e46a2fd12617e091d98831193f9ff56d26b\n"
    },
    {
      "commit": "bb661c0f0cb72d4bbfc2e251f6ded6949a713292",
      "tree": "4fe7e66f3385b1955934d3ec6f02e00bde6e13b8",
      "parents": [
        "f7cda8088ec57ab1422f85f08df78e217a9f7094"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Mon Apr 04 16:27:32 2016 +0100"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Fri Apr 22 13:33:30 2016 +0100"
      },
      "message": "Refactor use of __ANDROID__ macro\n\nWe use the __ANDROID__ macro, which is provided by the toolchain, in\nnumerous places. This patch refactors the usage of this by defining a\nnew macro, ART_TARGET_ANDROID, that is being passed during build to\nART_TARGET_CFLAGS in Android.common_build.mk on the same line as\nART_TARGET. The codebase currently assumes that the existence of the\n__ANDROID__ macro implies that we are compiling art for an android\ntarget device. This is because, currently, target builds are compiled\nwith target toolchains that provide the macro, while host toolchains\ndo not.  With this change this assumption is still preserved. However,\nin a future patch we will add the ability to compile art for a linux\ntarget, and in that case the ART_TARGET_ANDROID macro won\u0027t be passed\nanymore.\n\nChange-Id:  I1f3a811aa735c87087d812da27fc6b08f01bad51\n"
    },
    {
      "commit": "715fdc2c99f688f97c684978632f311a284ba43c",
      "tree": "a45838f4788a04ec18332bf386e8eaf2daa07632",
      "parents": [
        "a584db5460a31198bf621cdacf5bc304a984efa4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 18 17:07:30 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 20 10:20:45 2016 -0700"
      },
      "message": "ART: Add some reflection cutouts\n\nAdd Class.getInnerClassFlags and Method.invoke to unstarted runtime.\n\nAllows to compile-time initialize:\n* android.net.NetworkInfo\n* android.net.wifi.WifiInfo\n\nBug: 27265238\n\n(cherry picked from commit b3ffbe32b78c18739736fc998d65430b46c510e5)\n\nChange-Id: I3e267519acf14b08c687f1e831e2027d37158767\n"
    },
    {
      "commit": "f38a6618b453b76a3370bbf6b351971687099388",
      "tree": "b958345de0a1b0d789985a74df6e1b9ca4e106dd",
      "parents": [
        "336dd6a0989dafb356be5f689028d983b0931335"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 11 08:42:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 12 14:18:51 2016 -0700"
      },
      "message": "ART: Flag to fail thread creation\n\nAdd a flag to mark when the zygote is not allowed to create threads.\n\nBug: 27248115\nBug: 28149511\n\n(cherry picked from commit 415d8070e37c20dfb7e6dc37e74fdb5fffc2022e)\n\nChange-Id: I1dc3620d9e7d0054c672b993d89459fc4b353dfc\n"
    },
    {
      "commit": "2c6760a0eb1e05d3a89a6cca9d2746da3d547e9e",
      "tree": "f82d6e7594a8b688c3db6494822a907a1f1ef488",
      "parents": [
        "7fa1f92cbf98c40baa00c6fb9331ec7ac72abfa8",
        "1133db79350060158f99210c56f111c6dad43563"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 07 18:06:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 07 18:06:14 2016 +0000"
      },
      "message": "Merge \"Remove AnnotationAccess and its remaining uses.\""
    },
    {
      "commit": "6039e5662507e42896084e561fa546b432698ee6",
      "tree": "d8a4b6260cc134fcdf7f4a24d89d062dae7f7a61",
      "parents": [
        "dc148d24cc11845036063a2876c9bfef03d00ce5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 05 18:18:43 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 06 13:43:54 2016 -0700"
      },
      "message": "ART: Add getDeclaredConstructor cutout for unstarted runtime\n\nIn the vein of getDeclaredMethod and getDeclaredField. Refactor\ncode from java_lang_Class to share code.\n\nAllows to compile-time initialize:\n* sun.security.x509.AVAKeyword\n* sun.security.x509.X500Name\n\nBug: 27265238\n\n(cherry picked from commit f72f19fac0016499d33fd75b0463d0128a58a9f4)\n\nChange-Id: I075c1b11f3408f5b31e4f84140a24fd8d3eaa17e\n"
    },
    {
      "commit": "1133db79350060158f99210c56f111c6dad43563",
      "tree": "c84b4ae2df13a32539645c0904f08c874c20ae31",
      "parents": [
        "a07be75830af60ce50aba357e8de066e849aa21c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 04 19:50:14 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 04 19:50:14 2016 -0700"
      },
      "message": "Remove AnnotationAccess and its remaining uses.\n\nArt side of this change. Adds a test to ensure annotations not marked\nfor runtime retention can\u0027t be seen at runtime.\n\nBug: 27912552\nChange-Id: I078069b7b3cb72bfe7d0b9ea61e527fee04d56a3\n"
    },
    {
      "commit": "85a098af5fc8d2dd0e39d61c9f93fc6257d631c5",
      "tree": "20e81103cbc6043aa99b876fc358b7bab95ce4dc",
      "parents": [
        "19a4784ce1b9c6a0b3d3cdb91a182baa7adbb946"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 31 13:30:53 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 01 09:37:05 2016 -0700"
      },
      "message": "ART: Better support for arraycopy in unstarted runtime\n\nExtend the System.arraycopy() cutout in the unstarted runtime\nto support arrays with differing component types.\n\nAdd tests.\n\nBug: 27805718\nChange-Id: Iaacd95a372e9bfa26e9055a06b0d8f0335b8d6d1\n"
    },
    {
      "commit": "86a785d23ba3956b78c33aa3b623df4b6ec8b901",
      "tree": "cf683359bd105366a4f05bb0761396ffea0ad5b2",
      "parents": [
        "87ad82eb1e085ccc6ed3ec54945937582334dbbc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 30 17:19:48 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 31 11:24:34 2016 -0700"
      },
      "message": "ART: Add support for DexFile compiler filter function\n\nAdd support for getting a non-profile-guided version of a given\ncompiler filter.\n\nBug: 27921071\n\n(cherry picked from commit fd97429f258acde6ee24a6f74c9050b2343e40cd)\n\nChange-Id: I54735b61732e6a5c9dc62425d04bc740dd365083\n"
    },
    {
      "commit": "c38be810ce939267c004f72b3cf0b9339414f0f9",
      "tree": "7aef65e547be4dad5e8282d5fda2c36520ae8396",
      "parents": [
        "ef94b5484a75902404e975cba55a7e825941b2fa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 23 15:03:46 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 29 11:04:51 2016 -0700"
      },
      "message": "ART: Update DexFile for compiler-filter pass-down\n\nUpdate getDexOptNeeded. Add implementations for isValidCompilerFilter\nand isProfileGuidedCompilerFilter.\n\nBug: 27689078\n\n(cherry picked from commit 1d23d43e29e41adb3d504332c8833acaacb49e50)\n\nChange-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa\n"
    },
    {
      "commit": "29d38e77c553c6cf71fc4dafe2d22b4e3f814872",
      "tree": "92f34f589af205af56189d221ded293234935c26",
      "parents": [
        "2e89e901b9f303549f3ba64e45d87292e9c986c8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 23 15:31:51 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 23 11:30:29 2016 -0700"
      },
      "message": "Revert \"Revert \"Use compiler filter to determine oat file status.\"\"\n\nThis reverts commit 845e5064580bd37ad5014f7aa0d078be7265464d.\n\nAdd an option to change what OatFileManager considers up-to-date.\nIn our tests we\u0027re allowed to write to the dalvik-cache, so it\ncannot be kSpeed.\n\nBug: 27689078\nChange-Id: I0c578705a9921114ed1fb00d360cc7448addc93a\n"
    },
    {
      "commit": "845e5064580bd37ad5014f7aa0d078be7265464d",
      "tree": "1e621756ba6a1fd345f2fb468eed88cdc81886e7",
      "parents": [
        "a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 06:42:05 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 06:42:05 2016 +0000"
      },
      "message": "Revert \"Use compiler filter to determine oat file status.\"\n\nBots are red. Tentative reverting as this is likely the offender.\n\nBug: 27689078\n\nThis reverts commit a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931.\n\nChange-Id: I3ec6947a5a4be878ff81f26f17dc36a209734e2a\n"
    },
    {
      "commit": "a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931",
      "tree": "d8624bb85016a3301b473b6503324db4d4cf24a3",
      "parents": [
        "48e722432bb6e19df7bba02427e4a707e671af06"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Mar 18 15:05:30 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 22 15:38:36 2016 -0700"
      },
      "message": "Use compiler filter to determine oat file status.\n\nRecord the compiler filter in the oat header. Use that to determine\nwhen the oat file is up-to-date with respect to a target compiler\nfilter level.\n\nNew xxx-profile filter levels are added to specify if a profile should\nbe used instead of testing for the presence of a profile file.\n\nThis change should allow for different compiler-filters to be set for\ndifferent package manager use cases.\n\nBug: 27689078\nChange-Id: Id6706d0ed91b45f307142692ea4316aa9713b023\n"
    },
    {
      "commit": "f8cb1781a4e4be5df1f845206f7b37ed89092b64",
      "tree": "ce2c717d6a99a18f66deace5575357c746f4e2ea",
      "parents": [
        "162629ee8ac0fee2df0c0cdec27dff34bc6f0062"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 18 18:45:41 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 21 11:41:33 2016 -0700"
      },
      "message": "Move process state into runtime\n\nClean up.\n\nBug: 27420435\n\n(cherry picked from commit f8484c8b55f4b423048f94dfabbe44110a039a9b)\n\nChange-Id: Ia20781ee36e6a31c88ca41d3866b26813cff434d\n"
    },
    {
      "commit": "e9e98f12eb5dbe81db90d56c65c8872cabaa855d",
      "tree": "ac547775549ac52c77739b6c6d7f496bf3fa288d",
      "parents": [
        "7f3397bec51bdeb7dfe76a17ea9d3279ddf79345",
        "f448016e70fa91269d3750384aab1ac98d7896fd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 17 20:24:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 17 20:24:30 2016 +0000"
      },
      "message": "Merge \"Do not JIT boot image during native-debugging (keep AOT code instead).\""
    },
    {
      "commit": "f448016e70fa91269d3750384aab1ac98d7896fd",
      "tree": "9bb4414c763d13c2e178472d3bf1ee73bce97392",
      "parents": [
        "8e57978b5f330a322f05644c2db7fa8ce89b1b46"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 16 00:06:24 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 17 11:54:49 2016 +0000"
      },
      "message": "Do not JIT boot image during native-debugging (keep AOT code instead).\n\nThe performance impact is currently significant and being able\nto debug framework is not our primary goal for native debugging.\n\nChange-Id: I3366c2a6317004f9dd16700b271a6c9b974f1c6e\n"
    },
    {
      "commit": "db1f7dac02f6dcecac3e032f10abbcdbf3cf4331",
      "tree": "ce075b131513e65de9354001a37ba90f3a2b6787",
      "parents": [
        "e848c29bb35d91f23bb6f52712aa7f2dff342ea0",
        "a1425a1c9c98ae3fc772834933a5d55566fb5699"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 17 01:03:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 17 01:03:54 2016 +0000"
      },
      "message": "Merge \"ART: Remember whether the cache was pruned\""
    },
    {
      "commit": "8e57978b5f330a322f05644c2db7fa8ce89b1b46",
      "tree": "0e61b8eda07900e22f4fa1e19795485460677b2f",
      "parents": [
        "03fdc90721a1874a4aef9adfd8fc1b9b4b4bc249",
        "346dc993615487e9c645a515dfcbf9a6488f36fe"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 16 17:54:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 16 17:54:52 2016 +0000"
      },
      "message": "Merge \"Remove --native-debuggable compiler option.\""
    },
    {
      "commit": "346dc993615487e9c645a515dfcbf9a6488f36fe",
      "tree": "adf8006d2786c31cae282161491ab7c8f2cc3b2b",
      "parents": [
        "fbc61e19578d281d05728bcd120e1ace57c2fbd8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Mar 13 22:00:07 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 16 17:24:17 2016 +0000"
      },
      "message": "Remove --native-debuggable compiler option.\n\nCheck if both --debuggable and --generate-debug-info are set instead.\n\nHistory: I have recently added the --native-debuggable flag to control\nwhether extra stack maps are generated in order to produce accurate\nnative line number mapping of all generated code. I didn\u0027t want to\ninclude it into --debuggable since we compile boot.oat as debuggable\nand so it would be affected.\n\nOn second thought, it would have been reasonable to generate the extra\nstackmaps only if both --debuggable and --generate-debug-info are set,\ninstead of introducing another compiler flag. This means we do not\naffect boot.oat but we still get the extra stack maps if DWARF debug\ninformation is explicitly requested.\n\nChange-Id: I7e5e557e4850a88b3b6f86178d2cb645fb1e1110\n"
    },
    {
      "commit": "0cb11c3dc6c3e7c3521b49ab0be9138c60037eba",
      "tree": "faae3886e98a34af6a323a9572ad6def1961fa50",
      "parents": [
        "914d71ead70bb6f2084b2ed39a9fd58fd014f67d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 16 15:11:15 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Mar 16 15:12:38 2016 +0000"
      },
      "message": "runtime: delete native/java_lang_Runtime.h.\n\nNow unused, except for an unnecessary include.\n\nbug: 27387202\nChange-Id: Ie77dc0da156a64e8ea03af1878b44d20c16c5ae5\n"
    },
    {
      "commit": "5f97157263d1b52bf4aea523b28294b21d694da1",
      "tree": "46a2a5102b97f4bb0711c721e3580606f3bde093",
      "parents": [
        "5681b6638b0001c62d02795b0853e2e82787edf1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 15 14:47:29 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 15 15:20:00 2016 +0000"
      },
      "message": "runtime: delete native/java_lang_Runtime.cc\n\nWe\u0027re now using Runtime.c from ojluni, which does the same set\nof things via the JVM interface. This removes unnecessary duplication\nof code between Runtime.cc and OpenJdkJvm.cc.\n\nAlso includes a few changes to JVM_NativeLoad to bring it in sync\nwith the version in Runtime.cc.\n\nbug: 27387202\nChange-Id: I92aac81d131661aca588e352aee7a167593e17d4\n"
    },
    {
      "commit": "a1425a1c9c98ae3fc772834933a5d55566fb5699",
      "tree": "46afe5a4d47aa2979b2eca89f834f6c90c94c61b",
      "parents": [
        "5681b6638b0001c62d02795b0853e2e82787edf1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 11 17:44:04 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 15 07:58:07 2016 -0700"
      },
      "message": "ART: Remember whether the cache was pruned\n\nRemember (and expose) whether the cache was pruned when initializing\nthe runtime.\n\nBug: 27618311\n\n(cherry picked from commit 7ef1b4b20bd7cf485f5e443927c1e6fa797a0439)\n\nChange-Id: I178d18d731a9dce5cb11ed0874c9c9c9d36d7d8e\n"
    },
    {
      "commit": "c421907d0df229e96390932503fda4bfbaf3e4d4",
      "tree": "fe8fb6f16eb0c53af51c670dfded97dd7ca8d316",
      "parents": [
        "87aa99c261a7921e28fbe6136197bb640ddef4a4",
        "b077e15d2d11b7c81aacbcd4a46c2b1e9c9ba20d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 11:57:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 09 11:57:36 2016 +0000"
      },
      "message": "Merge \"Update GetDexOptNeeded to handle different levels of compilation\""
    },
    {
      "commit": "87aa99c261a7921e28fbe6136197bb640ddef4a4",
      "tree": "4ce329a356f3289cdcee9b64a1b911d7b25a2590",
      "parents": [
        "a9778b24bfb8007f20caff7a082e8b4531a14dae",
        "c90bc92bc577020ff4d3caced4cee1cdf41fa5de"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 11:57:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 09 11:57:24 2016 +0000"
      },
      "message": "Merge \"Record foreign dex files loaded by the app in the profile\""
    },
    {
      "commit": "b077e15d2d11b7c81aacbcd4a46c2b1e9c9ba20d",
      "tree": "148a47a1aace48313cdfdeede48902563d89c7ee",
      "parents": [
        "c90bc92bc577020ff4d3caced4cee1cdf41fa5de"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 18 18:47:37 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 08 15:53:30 2016 +0000"
      },
      "message": "Update GetDexOptNeeded to handle different levels of compilation\n\nextract-only or profile-guide oat files are considered up to date from\nruntime perspective as they don\u0027t necessary need (re)compilation or\nrelocation. However, it is useful to return a more refined code to the\ncaller so that they can decide whether or not that\u0027s good enough.\n\nFor example, the package manager might decide to still compile a\nprevious extract-only and during profile guide compilation we should\nalways recompile even if we have an oat file.\n\nNote that dex files compiled via ClassLoaders will still be fully\ncompiled.\n\nThis change introduces:\n- a new key in the oat header kCompilationType to capture what type of\ncompilation has been made. Note tha the key might be missing. The\ndistinction is needed in order to avoid recompilation of a previous\nfully compiled file during profile guide compilation analysis.\n- a new argument to GetDexOptNeeded which tells the runtime to cast its\nopinion whether or not the oat file is up to date relative to the\ndesired target type of compilation.\n\nBug: 27189430\n\n(cherry picked from commit d91b8a2464b99625efe03caf7d30c8372bc378ed)\n\nChange-Id: I6ce450350f388451f7bab7d285c1846d539a4b13\n"
    },
    {
      "commit": "629afaba488c5cfdd3ee9ba5b2df24af9de6f2a7",
      "tree": "e662cc005b69023ce4233ad4a5e11e3560438fce",
      "parents": [
        "810ef3768021b5fc7b47e663e037e49c46f8c916"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Feb 19 14:56:43 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Mar 07 11:45:18 2016 -0800"
      },
      "message": "runtime: Add CAS and fences to sun.misc.Unsafe\n\nBug: 26264765\nChange-Id: I68b482e5f9a0a26419af5e58a8d67c8c8a8e01a9\n"
    },
    {
      "commit": "9bab082adb251327b806d537d6710c16b9897de9",
      "tree": "bb7deb63cfea2672cbdea4a882a001d91982dcd9",
      "parents": [
        "19a133b2e26770b900119aaac25e3e73bd287e3f",
        "942dc298d7af3e60fe40c69b4b416ef144e5c723"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Mar 03 17:05:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 03 17:05:16 2016 +0000"
      },
      "message": "Merge \"Simplify LoadNativeLibrary()\""
    },
    {
      "commit": "c90bc92bc577020ff4d3caced4cee1cdf41fa5de",
      "tree": "1a10edfaecfe09cb07b61857a4e22a50cda04047",
      "parents": [
        "f9f3c5b0ebacbfed59af9c5c81fe9752e6b1258c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 24 10:13:09 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 02 13:04:21 2016 +0000"
      },
      "message": "Record foreign dex files loaded by the app in the profile\n\nA foreign dex file is a file which is not owned by the app\n(it\u0027s not part of its code paths or its private data directory).\n\nWhen such a dex file is loaded by the app, the runtime will record\na marker in a dedicated profile folder (foreing_dex_profile_path).\nThe marker is just a file named after the canonical location of the\ndex file where \u0027/\u0027 is replaced by \u0027@\u0027.\n\nThe markers will be used by the system server system server to\ndecide if the apk should be fully or profile guide compiled.\n\nBug: 27334750\nBug: 26080105\n\n(cherry picked from commit 86a9ebe4197e963249ffbbaa1830da97ed642fa5)\n\nChange-Id: I8be1fd4d854fa1e23c3c1054c9c083ad7b27317b\n"
    },
    {
      "commit": "cc3839c15555a2751e13980638fc40e4d3da633e",
      "tree": "4068f602067f7a7f2a3ef5d0655c2aa4ee81e1a4",
      "parents": [
        "c3bcf40e905c53ec857ec40a9ae45f4c86738929"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 29 16:23:48 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 29 16:46:12 2016 +0000"
      },
      "message": "Improve documentation about StringFactory.newStringFromChars.\n\nMake it clear that the native method requires its third\nargument to be non-null, and therefore that the intrinsics\ndo not need a null check for it.\n\nBug: 27378573\nChange-Id: Id2f78ceb0f7674f1066bc3f216b738358ca25542\n"
    },
    {
      "commit": "bc4d218ce2ceef0c4f308d4ff42f7ec1ec43c40e",
      "tree": "a583db9be377183508653607a724dcb8742f4ca2",
      "parents": [
        "01c30e8dbc45bdc5d922cef6e5a404be7bed0e8c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 22 10:03:12 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 26 15:43:14 2016 -0800"
      },
      "message": "ART: Add unstarted-runtime functions\n\nAdd more functions to allow compile-time initialization of\ncode.\n\nBug: 27248115\n\n(cherry picked from commit 0866f4ed6338faa4a193b7e819fc7cd72bd7b0ae)\n\nChange-Id: Iaf8d92deb73547ccd31c0d6dde68da3bc14c3985\n"
    },
    {
      "commit": "942dc298d7af3e60fe40c69b4b416ef144e5c723",
      "tree": "3bfac9efaea9dcf73fbd2aed93f72db7bf7fa1b3",
      "parents": [
        "48a13431f09ff9bbdcd1ee991da6a04e694c5134"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 13:33:33 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Feb 26 11:41:11 2016 -0800"
      },
      "message": "Simplify LoadNativeLibrary()\n\nWith ApplicationLoaders.getClassLoader() ensuring\nlinker-namespace initialization there is no longer\nneed for LoadNativeLibrary() and callers to pass\nalong namespace-specific information to art.\n\nThis change removes unnecessary parameters of such\ncalls.\n\nBug: http://b/27189432\nBug: http://b/22548808\nChange-Id: I341d35a2d5195e634678b352f4361f8712984b69\n(cherry picked from commit c286a7fcd8a446c086127bf03fd07f904e017336)\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": "e4ddacdb1f0798e084b9ce2de7acac797f2c0a75",
      "tree": "338a1fdf31f24f43f3c5c83ad5a22e789f7ead9f",
      "parents": [
        "9fab717bb67e6d141ca7a6d6c33adbf5b9d3dba7",
        "64fdc804f6b4d8a6f7d86bd9672e3bb1cde7056f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 08 21:54:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 21:54:56 2016 +0000"
      },
      "message": "Merge \"Default methods should not be found by getDeclaredMethod\""
    },
    {
      "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": "64fdc804f6b4d8a6f7d86bd9672e3bb1cde7056f",
      "tree": "4cb67ba411e3845054347745657bdc06ca8472ab",
      "parents": [
        "27ec302da670ffddaf1278b5b7155b7742aa37fd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 08 10:30:04 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 08 10:34:36 2016 -0800"
      },
      "message": "Default methods should not be found by getDeclaredMethod\n\nWe were incorrectly returning default methods from getDeclaredMethod\ncalls on an implementing class that uses the default implementation.\n\nBug: 27060609\n\nChange-Id: I2e07023a11585e5f7cd92c4c0e1263f54aea1f5f\n"
    },
    {
      "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": "df187e4cc8b1b2dc6cb0043eb91d1dfd72cb490b",
      "tree": "a2fbb7ec726c57311238eae04a395936b8709cbd",
      "parents": [
        "9f95ba750583735cff1f2921b8014099dd801734"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 01 11:43:26 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 02 10:56:01 2016 -0800"
      },
      "message": "Revert \"Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\"\n\nThis reverts commit 28a2a186537db9fc5a8492e36d9603b48854c04f.\n\nRuntest failure has been fixed in I28c3707e38c1f69ea9d3660f68136f688122ac4e\n\nChange-Id: I1749dc89b790d44b5e40bc8b20aa62885bda792b\n"
    },
    {
      "commit": "0dd8c399e6a3b4f46ce1ba1388507bf0ef93d5ff",
      "tree": "ef750f3956a930c2d2505fffb947b426ef0b4470",
      "parents": [
        "6f2c459c97fad172991d05f96cb6036050c2db97"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 01 13:22:18 2016 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 01 13:47:07 2016 +0000"
      },
      "message": "Track libcore change aa517a356a38b8cd6764667e1edd735aaf5978e9.\n\nChange-Id: I32a995eb62e3268c20fa5c2ac8dc2bf190c6fb7a\n"
    },
    {
      "commit": "28a2a186537db9fc5a8492e36d9603b48854c04f",
      "tree": "31fc65e44fac0d24b53c61df322624fe381a75d8",
      "parents": [
        "c167ee9b65f05f7c6f007d587fd1655388edaee9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:25:01 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:25:01 2016 +0000"
      },
      "message": "Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\n\nBreaks interpreter access checks:\n\n+Exception in thread \"main\" java.lang.InternalError: java.lang.IllegalAccessError: Method \u0027void java.lang.reflect.Proxy.doNewInstanceCheck()\u0027 is inaccessible to class \u0027$Proxy0\u0027 (declaration of \u0027$Proxy0\u0027 appears in generated class)\n\n\nThis reverts commit c167ee9b65f05f7c6f007d587fd1655388edaee9.\n\nChange-Id: I6c9429cb6f298e89a2da22f7ded0728251321446\n"
    },
    {
      "commit": "c167ee9b65f05f7c6f007d587fd1655388edaee9",
      "tree": "57e846f6aaad969020972f55a082e3e22884592e",
      "parents": [
        "2aaf58e90c9229610b2a16644e9866b6741ce9ca"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jan 14 16:05:47 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 27 13:14:10 2016 -0800"
      },
      "message": "reflection: Add new 1.8 AnnotatedElement methods and tests\n\nAlso:\n* Bump the size of the Class vtable size since 3 new virtuals were\nadded to java.lang.Class\n* Refactor Method#isDefault test into a separate file within 048 test.\n\nChange-Id: I8420a4d208bb60874a9cf996766313c7d5058c45\n"
    },
    {
      "commit": "05d241565f36df825cf56a4f1b61bfb7e4dcb056",
      "tree": "4b74483b1c26640c6ca150fbf4d070c7a3a518f0",
      "parents": [
        "f032f3afe513093c508434b17ff1921a114c4424"
      ],
      "author": {
        "name": "Siva Chandra",
        "email": "sivachandra@google.com",
        "time": "Tue Jan 05 17:43:17 2016 -0800"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jan 27 15:09:41 2016 +0000"
      },
      "message": "Add option to never interpret.\n\nChange-Id: Ib6d6170fa60c77c2e6a8844964f14fa0de4c9e7b\n"
    },
    {
      "commit": "a9d82fe8bc6960b565245b920e99107a824ca515",
      "tree": "a6ced4b8bca71232d20d91ff344c7531948b7be3",
      "parents": [
        "1af0204dddc1d99dc17a13eca135c1b57023c1c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 20:06:11 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 12:24:02 2016 -0800"
      },
      "message": "Use mutator lock to guard adding and removing heap spaces\n\nToo hard to add a new lock since dlmalloc ArtMoreCore requires\nlooping through the spaces while holding the allocator lock.\n\nBug: 22858531\nChange-Id: Ieac2136da02c766b6795cd604a58798bee37ef2a\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": "0e7fa6b06e37e7c95509cd234571f469bf5821c2",
      "tree": "887228f1be1a8837d059af5fc83c27a75b281dd9",
      "parents": [
        "d6ff932575b99d51e3c37e77d696160acbf53e21"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 15:28:58 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 15:42:35 2016 +0000"
      },
      "message": "Also print to error stream.\n\nSo we can test between all kinds of configuration (for example\nhost no-dex2oat removes all error logs).\n\nChange-Id: I5936fdd963e3805c49258ee6ed50d8def23d1aca\n"
    },
    {
      "commit": "ae6f23c83e1c8dcfbc4f74186ea1a37f1044414b",
      "tree": "efefa95c7279dbe605fbe32202a373f3db6d96cb",
      "parents": [
        "16f66da0fe69530668de5fb12423f237603d7a14",
        "7ea4c09989b37351e6c17a10d35934812053a746"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 11 12:01:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 11 12:01:16 2016 +0000"
      },
      "message": "Merge \"Emit an error message when looking for String#offset.\""
    },
    {
      "commit": "7ea4c09989b37351e6c17a10d35934812053a746",
      "tree": "2ccc1f223830e30e4c2ca27310764957125476f2",
      "parents": [
        "a90d8bc3a3772877f4490d0509d53053069e5b55"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 07 10:55:14 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 07 12:08:22 2016 +0000"
      },
      "message": "Emit an error message when looking for String#offset.\n\nDebugging two different apps relying on it and swallowing\nthe getDeclaredField exception took too much of my lifetime.\nAdding a LOG(ERROR) can help diagnose quicker.\n\nAlso remove unused method getDeclaredFieldInternal.\n\nChange-Id: I0923556a4fdbad2b06c1811ed741d23dbd4aa0a0\n"
    },
    {
      "commit": "7ede3dd40e2f7da3e3073cc355312021c31820b3",
      "tree": "8ecf4374076c710a128bd47d3fa48e60a1a253e8",
      "parents": [
        "a90d8bc3a3772877f4490d0509d53053069e5b55",
        "5e2b971e468ca73a8e10a120730b3b6f17fad408"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 07 11:45:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 11:45:11 2016 +0000"
      },
      "message": "Merge \"Assume the profile file was created before saving.\""
    },
    {
      "commit": "5e2b971e468ca73a8e10a120730b3b6f17fad408",
      "tree": "5168766339acfd7c61852ca38595fe3459b2eb81",
      "parents": [
        "b7371a5517f78f61759f7e6124f2d957d974d9cd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 18 14:10:00 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 04 19:01:13 2016 +0000"
      },
      "message": "Assume the profile file was created before saving.\n\nbug: 26080105\nChange-Id: I9969a4abd8533614922076551fcbae2cdf695525\n"
    },
    {
      "commit": "ac9e66e4a8ed9c5fa8864f4556322c5040be2ed6",
      "tree": "abbefb73307d3c87893a32176474439de244a460",
      "parents": [
        "4bb356123b13ec5f41ea80158766df676ae08679"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 17 11:18:27 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 31 14:15:18 2015 -0800"
      },
      "message": "Revert \"Temporary disable linker-namespaces\"\n\nThis reverts commit 9aefb12cc91eb459d87392700f1199ee07580cd6.\n\nChange-Id: Iac567c03699d65f97c380c2f32ef5a2a56d44721\n"
    },
    {
      "commit": "7f65b4669c52976cd5713dae47b901707ed77110",
      "tree": "b1c6399751c98babd3839bd4d5ff4a1f6a5c274c",
      "parents": [
        "b7f644b3ef0b23350d83f10612b80e27112f2478",
        "da6e49016dc37704f45b13217a8c6f8e726ab8e1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 02:43:58 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 24 02:43:58 2015 -0800"
      },
      "message": "Merge \"Save profile information in a separate thread.\" am: 58b2329de7\nam: da6e49016d\n\n* commit \u0027da6e49016dc37704f45b13217a8c6f8e726ab8e1\u0027:\n  Save profile information in a separate thread.\n"
    },
    {
      "commit": "58b2329de74a73d2f0a7ed001e50cc39df33d9da",
      "tree": "7c8b322acd0a0c0b0d7fd6467df8ff68cf7844fa",
      "parents": [
        "875773770ae34c623153aac3941828a9e3831f14",
        "4d77b6a511659f26fdc711e23825ffa6e7feed7a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 10:38:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 24 10:38:45 2015 +0000"
      },
      "message": "Merge \"Save profile information in a separate thread.\""
    },
    {
      "commit": "4d77b6a511659f26fdc711e23825ffa6e7feed7a",
      "tree": "7ac013467a20fcdf64cb6cf4c79a8ff67dc7690a",
      "parents": [
        "66f55237679db90cb0a0a265043a787932b466f8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 01 18:38:09 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 24 12:02:12 2015 +0200"
      },
      "message": "Save profile information in a separate thread.\n\nPreviously we would save the profiling information only when the app\nwas sent to background. This missed on an important number of updates\non the jit code cache and it didn\u0027t work for background processes.\n\nBug: 26080105\n\nChange-Id: I84075629870e69b3ed372f00f4806af1e9391e0f\n"
    },
    {
      "commit": "18d209582e0bb1caed97102a86b416173f5aad42",
      "tree": "5c79afefe9f895a6b752d98d92127a6c0884f846",
      "parents": [
        "424446ba807186a374e1789296d651ddfe6f214c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 22 14:56:59 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Dec 22 19:17:45 2015 +0000"
      },
      "message": "Override notice file for OpenJdk based modules.\n\nChange-Id: Iff63708c83c2a18b82f0de6aa884e1388ed8b32b\n"
    },
    {
      "commit": "d5a3e2c99f784c6ebe8d99032a0988edf6afa586",
      "tree": "722dd4f7777de3d9f2ec5cf854d37dda1b115997",
      "parents": [
        "5ae964f43ccee7b770d34f95b22b3421cbeb0e29",
        "ae66db49535fcddc2b1d24fe7c8324317071dfe9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 21 23:35:01 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 21 23:35:01 2015 +0000"
      },
      "message": "Merge \"Treat thread state kWaitingWeakGcRootRead as kJavaRunnable.\" am: 1201804d18\nam: ae66db4953\n\n* commit \u0027ae66db49535fcddc2b1d24fe7c8324317071dfe9\u0027:\n  Treat thread state kWaitingWeakGcRootRead as kJavaRunnable.\n"
    },
    {
      "commit": "1201804d1813d7db0accead9721d67c40b3de564",
      "tree": "38e9cb34b3090278c9e7c3803d97299f3f24a659",
      "parents": [
        "10e2607281ae3d6c5fa814b9986bac5f8b47d325",
        "2ddc6bf88a1c49ebc78bf35b46d486078fe9051a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 21 23:25:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 21 23:25:23 2015 +0000"
      },
      "message": "Merge \"Treat thread state kWaitingWeakGcRootRead as kJavaRunnable.\""
    },
    {
      "commit": "aa944b9d4d447d2746f13327084a19daebf83ee4",
      "tree": "086244a8f5758a736e21d59ac41eea931eb94119",
      "parents": [
        "d255fe5c11ff0fa13a2ca9f73c7c43a290dc370e",
        "d5bbadf44032510b1ce12d9e5f2adad9234cf6b9"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 21 23:10:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 21 23:10:49 2015 +0000"
      },
      "message": "Merge \"Use shared namespaces for bundled apps\""
    },
    {
      "commit": "2ddc6bf88a1c49ebc78bf35b46d486078fe9051a",
      "tree": "68254097a6ef2094fdd424ababad2a4241e86c05",
      "parents": [
        "045d37ae20ae9481f6c967ab5db4240991ff151f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 21 14:06:23 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 21 14:06:23 2015 -0800"
      },
      "message": "Treat thread state kWaitingWeakGcRootRead as kJavaRunnable.\n\nLike kSuspended, kWaitingWeakGcRootRead means temporarily waiting for\nGC\u0027s purpose rather than the thread is waiting on a monitor.\n\nThis may fix some jsr166 test failures.\n\nBug: 25883050\nBug: 12687968\n\nChange-Id: Ib53e18c0fb2ff95aa0491b1531201e583288684e\n"
    },
    {
      "commit": "6b1a50b561d3f1a282871f30e85e74433e2984af",
      "tree": "e592e69ddea871126d566fcaf5b3309a5c2e8643",
      "parents": [
        "28ee8dbece62bf1ed9a7dfd3c581fd5860ed8867",
        "8a5e8d0118de17210316100e740d0417239256e9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 21 12:15:39 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 21 12:15:39 2015 -0800"
      },
      "message": "Merge \"Rename NullHandle to ScopedNullHandle\" am: 76b90e37df\nam: 8a5e8d0118\n\n* commit \u00278a5e8d0118de17210316100e740d0417239256e9\u0027:\n  Rename NullHandle to ScopedNullHandle\n"
    },
    {
      "commit": "9865bde5d822f56c4732214c2005dfcaa41f94cf",
      "tree": "cd2eae058f4f4f13b5a82ff557b7eaaf13a1ecfb",
      "parents": [
        "115a02b737dd5f4d485b2f6c359e02988df66b83"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 21 09:58:16 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 21 09:58:16 2015 -0800"
      },
      "message": "Rename NullHandle to ScopedNullHandle\n\nThis makes it clearer that is invalid to do things like:\nHandle\u003cT\u003e h \u003d ScopedNullHandle\u003cT\u003e();\n\nBug: 26233305\nChange-Id: I6d8f54eae01ec2e901cb7043afa853ea77db79fe\n"
    },
    {
      "commit": "28ee8dbece62bf1ed9a7dfd3c581fd5860ed8867",
      "tree": "1cfd6b4c67eb6c276d5aa22abda9306ee2d4f985",
      "parents": [
        "d5aeb13585f682f9090b76eb9d5878bec801f9af"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sun Dec 20 20:32:01 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Dec 21 16:58:01 2015 +0000"
      },
      "message": "Update header for OpenjdkJvm.cc.\n\nChange-Id: I19d25531fe71d0511ee3887a2ffd5697a8a00249\n"
    },
    {
      "commit": "d5aeb13585f682f9090b76eb9d5878bec801f9af",
      "tree": "ae17e7b970d6b6a87db8b0e3bc57ea56e88898da",
      "parents": [
        "aa0fab302b762c776ecda4a5dd80625ccd64bde3",
        "d264bab81efdc40500b41620d65a8b3930854719"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 09:50:04 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 21 09:50:04 2015 +0000"
      },
      "message": "Merge \"Pass down to the runtime the application code paths.\" am: 115a02b737\nam: d264bab81e\n\n* commit \u0027d264bab81efdc40500b41620d65a8b3930854719\u0027:\n  Pass down to the runtime the application code paths.\n"
    },
    {
      "commit": "115a02b737dd5f4d485b2f6c359e02988df66b83",
      "tree": "92326bbe40b2541aac8096312d25791a329f7c28",
      "parents": [
        "2f125e3c7ab02cbbbcede533dc53a454a439be13",
        "66f55237679db90cb0a0a265043a787932b466f8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 09:43:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 21 09:43:09 2015 +0000"
      },
      "message": "Merge \"Pass down to the runtime the application code paths.\""
    },
    {
      "commit": "d5bbadf44032510b1ce12d9e5f2adad9234cf6b9",
      "tree": "d47fc3cbe11567db0e539eaa818b07e569eeed0a",
      "parents": [
        "2f125e3c7ab02cbbbcede533dc53a454a439be13"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 14:08:18 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 23:38:06 2015 -0800"
      },
      "message": "Use shared namespaces for bundled apps\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/26165097\nBug: http://b/22548808\nChange-Id: Ia90b603a0ca97194618b82fb191d6790a4b1f281\n(cherry picked from commit 986f650d8b552e8b7dbebef1f50f015e7850edfc)\n"
    },
    {
      "commit": "df0de0459ccd661c1c79aec3035dc64d4997ad3d",
      "tree": "49d42ae2892f44b9b8cac6f163fbbaf042874b05",
      "parents": [
        "ae1dec9318a4b2a873954a26ac8bf9d210d3a577",
        "986f650d8b552e8b7dbebef1f50f015e7850edfc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Dec 19 00:49:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 19 00:49:07 2015 +0000"
      },
      "message": "Merge \"Use shared namespaces for bundled apps\""
    },
    {
      "commit": "9c5572957bf357897f0969d002132fc647bfa649",
      "tree": "84e853d076d2a7449e0eba1710b2a4b3d0872fda",
      "parents": [
        "90f5250d4ba7bcf6066edb022f8325df66d686f3",
        "9f784b26a13101222c5e5927cafd7f500d3cff67"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 15:48:01 2015 -0800"
      },
      "message": "resolve merge conflicts of 9f784b26a1 to master.\n\nChange-Id: I9ebcb6e3d51be922e08e5f867fb8dcaf5cb9788d\n"
    },
    {
      "commit": "db92e153c2c29b7f0b59e5f6cc9d0abbdcdce635",
      "tree": "97f354242e9e9c233a0ce7382c85f5811ff39112",
      "parents": [
        "3f185f84f4fe3f00e045c45c19811b4621458a6c",
        "e667c7622e20b9644c4b2e46e35ba147428ed62c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 17 23:38:23 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 17 23:38:23 2015 +0000"
      },
      "message": "Merge \"Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\" am: fb9f4ad455\nam: e667c7622e\n\n* commit \u0027e667c7622e20b9644c4b2e46e35ba147428ed62c\u0027:\n  Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\n"
    },
    {
      "commit": "986f650d8b552e8b7dbebef1f50f015e7850edfc",
      "tree": "0862ac202e46c1fa434d025f344d7fc0b749bd35",
      "parents": [
        "6280ef88a9231d2a14f2b0bbe6d39770c994787d"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Dec 15 14:08:18 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 17 11:33:06 2015 -0800"
      },
      "message": "Use shared namespaces for bundled apps\n\nShared namespaces clone the list of loaded native\nlibraries from the caller namespace. This allows\nclassloaders for bundled apps to share already loaded\nlibraries with default namespace.\n\nBug: http://b/26165097\nBug: http://b/22548808\nChange-Id: Ia90b603a0ca97194618b82fb191d6790a4b1f281\n"
    },
    {
      "commit": "ec178ee58447ba23e5954eb824265e9b30f95009",
      "tree": "a53ddba8fcc76291687b4ef26bf8892427c4b729",
      "parents": [
        "14c4e90f67e71430dade7d4f20920e6352be386e",
        "e64300b8488716056775ecbfa2915dd1b4ce7e08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 17 18:33:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 18:33:57 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\"\""
    },
    {
      "commit": "6280ef88a9231d2a14f2b0bbe6d39770c994787d",
      "tree": "9035286aafa8eaeb12316cf8849e137836317e74",
      "parents": [
        "333a943d67e890ef90f4c706ceafa717c65b0ba0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Dec 17 12:34:57 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Dec 17 12:34:57 2015 +0000"
      },
      "message": "Fix typo in LOG_TAG.\n\nChange-Id: I9d87af857bc2206d70bb9ec7bc3efc8f82c01899\n"
    },
    {
      "commit": "66f55237679db90cb0a0a265043a787932b466f8",
      "tree": "50784132be869b47562e8ce41ea318d79c6cf6ab",
      "parents": [
        "fb9f4ad455eced3a07bef1d4772ab1fe34ec133b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 08 15:09:10 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 17 12:38:27 2015 +0200"
      },
      "message": "Pass down to the runtime the application code paths.\n\nWhen registering the app with the runtime the framework needs to pass\ndown the list of application code paths. This will be used by JIT to\nknow what profile info to persist.\n\nThis fixes the reliance on OatFileManager::GetPrimaryOatFile which may\nproduce inconsistent results based on external factors (i.e. class path\norder or failing to compile the first dex file from the class path)\n\nBug: 26080105\nChange-Id: Iadcebd2684fcd48569e8f76ef21bd4d117fedc05\n"
    },
    {
      "commit": "fb9f4ad455eced3a07bef1d4772ab1fe34ec133b",
      "tree": "e93979f3c2edc7ce3c2a70cedba2fb0b62223ab3",
      "parents": [
        "d16bb3f0dc17d77db7022150d0710fcbb8b6fd9d",
        "cc78f3f87b0b8c6b0fb759e698840898940d4865"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Dec 17 08:08:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 17 08:08:12 2015 +0000"
      },
      "message": "Merge \"Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\""
    },
    {
      "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": "cc78f3f87b0b8c6b0fb759e698840898940d4865",
      "tree": "a32c3976753da46d5368a1863c1b9072b75d5cfd",
      "parents": [
        "277da370dd517af0d6a27bef3b86d5f259feda62"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Dec 11 15:51:04 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Dec 16 11:54:42 2015 -0800"
      },
      "message": "Fix (non-intrinsic) UnsafeCASObject for the read barrier config.\n\nMake sure the field contains a to-space reference before attempting the\nCAS with a special read barrier to avoid an incorrect CAS failure.\n\nThis is only about the non-intrinsic UnsafeCASObject.\n\nThis seems to fix some jsr166 test failures.\n\nAlso, remove the unused template parameter kMaybeDuringStartup.\n\nBug: 25883050\nBug: 12687968\n\nChange-Id: Ia6f0d882fa3d90c42f14968672d547babcdf6309\n"
    },
    {
      "commit": "bc90a0538e56f98b8e138cb622e6b9d834244ad9",
      "tree": "fd85833863a13ce4abc7baaea1d2059c2419ad1e",
      "parents": [
        "0bbc1727c446ee5f4cc3c28e68127164ef379594",
        "ae358c1d5cef227b44d6f4971b79e1ab91aa26eb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 22:17:21 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "533d63aa028949e393320ad2ffec0ba6e6a8f627",
      "tree": "05038200d2277f69aa7de0165bb8d0243b6fc2ac",
      "parents": [
        "f64ddd3acdfa37d8e03d827e3c98e27ffd627179",
        "2efb0aa57da168944f99a2d13aed2a426cfa76e7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 22:16:25 2015 +0000"
      },
      "message": "Merge \"Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\""
    },
    {
      "commit": "2efb0aa57da168944f99a2d13aed2a426cfa76e7",
      "tree": "5ca742f9a2a89f9c3c588f6f1863ab55bbdb5c5c",
      "parents": [
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 22:15:34 2015 +0000"
      },
      "message": "Revert \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\"\n\nThis reverts commit 9539150b85142c18e9e8c2264b5b6100942667c3.\n\nChange-Id: I596876cd643ec0ad524a56621efb6b89e8886230\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": "e6f84a505e074da4ce14df1f067ed68a8fdcabb3",
      "tree": "db5e2dbb4d9c61aeff6d7565789fe67a97f4957c",
      "parents": [
        "b3ea82b37b14842dde81de0833e515f97f31a76c",
        "9539150b85142c18e9e8c2264b5b6100942667c3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 18:53:58 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "7d5a577c1f256a7703361afb071dcd4ecc7d275f",
      "tree": "d5d151bf0502af93fe8826f368807ab1df7734aa",
      "parents": [
        "ad94d64719c2a82cdd312b318b8e50d80e2956c5",
        "6286a97bea0f584342803a215550038852b24776"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 15 18:11:08 2015 +0000"
      },
      "message": "Merge \"Combine direct_methods_ and virtual_methods_ fields of mirror::Class\""
    },
    {
      "commit": "9539150b85142c18e9e8c2264b5b6100942667c3",
      "tree": "733f2af56f94cbac19ac29f62d85850df2fd7b7d",
      "parents": [
        "1997d7cef12ac9906c23b59fdaa9f7f68344b98d"
      ],
      "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:54:01 2015 -0800"
      },
      "message": "Combine direct_methods_ and virtual_methods_ fields of mirror::Class\n\nManual cherry-pick of 6286a97 to master\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": "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": "1f54026d329693841810439f062de0dcf7ef4a5c",
      "tree": "6cae0e5d6a0acc225f1cc583f3688c597f7e9ac5",
      "parents": [
        "ace41c0aab81f817fe37788d9d5cdf295324e9a4",
        "861e58d1c5eeac5bfa97765c93f20649f916bde8"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 13:37:54 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 14 13:37:54 2015 -0800"
      },
      "message": "Merge \"Temporary disable linker-namespaces\" am: a8be6ae6fc\nam: 861e58d1c5\n\n* commit \u0027861e58d1c5eeac5bfa97765c93f20649f916bde8\u0027:\n  Temporary disable linker-namespaces\n"
    },
    {
      "commit": "7f57579b473749ce9bb13fd4ca25ec0adbdf0ca0",
      "tree": "510362d679009c6f4067c2375636e1a191cb3434",
      "parents": [
        "377cb3ba2e1cfe51967e5292268a9aae71ceca8c"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 09:57:56 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Dec 14 09:59:31 2015 -0800"
      },
      "message": "Temporary disable linker-namespaces\n\nBug: http://b/26178910\nBug: http://b/26165097\nChange-Id: I858c70dc72ec164ea7a79ad625ddda91367dae06\n"
    },
    {
      "commit": "f6082992319d3d71ff64411fb3083e4da8dd60cc",
      "tree": "9fa329833faac3acfa80123ce60e63c56e604452",
      "parents": [
        "155579d1a3ea50d4cec91d90c1d37c3c4f84452d",
        "d66c8621610dc18d324132c8e5b081520f719777"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 14 13:04:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 14 13:04:04 2015 +0000"
      },
      "message": "Merge \"Special case system_server to not create the JIT code cache.\""
    },
    {
      "commit": "3e381723658e8a0bce24071b53f57bf22af76a1e",
      "tree": "68d0a601981507b38a1fbcfde6e20c8247c0bbb7",
      "parents": [
        "44409d33e05cd2f73d69e0a98daa5c9e2fe38089"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Nov 23 17:40:11 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 13:28:00 2015 -0800"
      },
      "message": "Port isolated namespace changes over to OpenJdkJvm.cc\n\nBug: http://b/22548808\nChange-Id: I6f11102e828ee5ef4b5107590c598fd0db787fe1\n"
    },
    {
      "commit": "44409d33e05cd2f73d69e0a98daa5c9e2fe38089",
      "tree": "19876c9e094f163fe9cc8549e64e6ebb92453c39",
      "parents": [
        "900805d75bdc63f3f6d612a6076a5c49673ab35d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 11 14:18:55 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 13:28:00 2015 -0800"
      },
      "message": "Use isolated namespaces for app native libs\n\nLinker namespaces provide necessary level\nof isolation for application native libraries.\n\nThe native libraries will no longer be able to\nmistakenly depend on platform private libraries\nlike /system/lib/libssl.so\n\nThis change creates one namespace for each instance\nof class-loader and uses it when loading native libraries.\n\nFor backwards compatibility with older apps we keep\nusing default namespace and LD_LIBRARY_PATH if target\nsdk version is \u003c\u003d 23. (currently set to 0 for testing)\n\nBug: http://b/22548808\nChange-Id: I64e97af7450fbf7e3740ccddda96bb2f7c52e03b\n(cherry picked from commit f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc)\n"
    },
    {
      "commit": "d66c8621610dc18d324132c8e5b081520f719777",
      "tree": "c2de3aeaa995e57b5d45ea9646ac9be5f6ac6529",
      "parents": [
        "70cdba196cef4cfd7955f331a892f6dbe8cd073e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 14:59:16 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 11 15:00:16 2015 +0000"
      },
      "message": "Special case system_server to not create the JIT code cache.\n\nChange-Id: I34485c709b0c70b8d9c34bebcf399781aebaf11b\n"
    },
    {
      "commit": "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc",
      "tree": "5f07f3ea531240643f4f637c9d3abbad6feafa52",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 11 14:18:55 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 17:25:14 2015 -0800"
      },
      "message": "Use isolated namespaces for app native libs\n\nLinker namespaces provide necessary level\nof isolation for application native libraries.\n\nThe native libraries will no longer be able to\nmistakenly depend on platform private libraries\nlike /system/lib/libssl.so\n\nThis change creates one namespace for each instance\nof class-loader and uses it when loading native libraries.\n\nFor backwards compatibility with older apps we keep\nusing default namespace and LD_LIBRARY_PATH if target\nsdk version is \u003c\u003d 23. (currently set to 0 for testing)\n\nBug: http://b/22548808\nChange-Id: I64e97af7450fbf7e3740ccddda96bb2f7c52e03b\n"
    },
    {
      "commit": "4b6c01b2cebd08762f8880b4ca2dab07942b9e0e",
      "tree": "9f920b7fda2843fe0571df7f263f8eb5191975e6",
      "parents": [
        "cc3b18a0366bbf508c38fa32ea9dc84ae582d171",
        "829d8f4435623e8995b7e6fe0bfde23cd6893458"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 16:37:41 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 25 16:37:41 2015 +0000"
      },
      "message": "Merge \"Save jit profiling info to file.\" am: e8bc4ec44a am: 449f62e059\nam: 829d8f4435\n\n* commit \u0027829d8f4435623e8995b7e6fe0bfde23cd6893458\u0027:\n  Save jit profiling info to file.\n"
    },
    {
      "commit": "31f2c155975c5794d481df03eb0947cb48d2c6b5",
      "tree": "b0ed3a2235fc115f73060ab4b51bda31e3ada596",
      "parents": [
        "22c20ef131812a6e7ff01f8c57ffe1eb0942fc39"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 23 17:56:15 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 24 19:31:16 2015 +0000"
      },
      "message": "Save jit profiling info to file.\n\nCurrently saves only the hot method references and omits the inline\ncache.\n\nChange-Id: I79e91f855f6b52dc19a9a86662604f2eee16613c\n"
    },
    {
      "commit": "a7a4759946d9f11c88dc108b2b6a9518ce9c1e18",
      "tree": "f5522eb632ff53b4c285ff76a3966d37a995777a",
      "parents": [
        "099ab4d06857ccbe642d98ba25df1eb02aee99c7"
      ],
      "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 10:54:16 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\n(cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380)\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\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": "3ddd593cbeac6fc0e310e604d56fb732476b1699",
      "tree": "01743b3775d2b18d3be50d550886d46852e2952e",
      "parents": [
        "b8bce05ec116183bb72768039a0899a772439025"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Nov 23 16:08:03 2015 +0000"
      },
      "committer": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Nov 23 16:53:59 2015 +0000"
      },
      "message": "Further fix for class deduction for ctor access checks\n\nPrevious fix went one frame to far, to get Constructor.newInstance\ncaller we need to look 2 frames in the past.\n\nBug: 25713446\nBug: 25753241\nBug: 24764403\n\nChange-Id: Ieb9c144f1ef4df569302793243457f4623977b35\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\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": "689a700d1c8a7c9e7ce74e6a2b45dae94c79cb7c",
      "tree": "b4ad3f6f77554a146656c5b575ffd5bd60613441",
      "parents": [
        "039404cb8d6b994e6fc247d287a0efa45c7362d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 20 10:29:42 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 20 10:35:18 2015 -0800"
      },
      "message": "Pass DexPathList.Element array to openDexFileNative\n\nApp images will use this to check for conflicts. It is required to\npass down since the class loader won\u0027t have the element array until\nafter all of the elements in the dex path list are loaded.\n\nBug: 22858531\nChange-Id: I4f3d85b5e0ad542298fc8458bafe6504c263dc41\n"
    },
    {
      "commit": "e0915821252b68e363d0ecfff07606e9d274f5fa",
      "tree": "5592db1ce5ebb097e8a0c4e44a7c6f74a8eefc32",
      "parents": [
        "bcfce6a67ff71f225b08525e8ec8c482efe9eaf6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 13:00:18 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 15:43:42 2015 +0000"
      },
      "message": "Fix caller class deduction for constructor access checks.\n\nnative method newInstance0 is called from Constructor.newInstance\nto the caller frame is a level deeper. Fixes 042-new-instance.\n\nbug: 25713446\nbug: 25753241\n\nChange-Id: I1db5bd4bdcc0081f17a9d7e901e542e0e5964206\n"
    }
  ],
  "next": "ba69a51724d33444064443e456ce78b71db2fd16"
}
