)]}'
{
  "log": [
    {
      "commit": "8ed6e5c69b4d36454adb82cfd8bf38c913bce0d5",
      "tree": "687b57461305a39eb5fcb9a57a898902a01e4039",
      "parents": [
        "e2a298fc085817e4874026d4b9cdf8cbd5a9a04a",
        "b10cef442594dd0d6c5f1a5784643931a25cc431"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 25 01:38:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 25 01:38:07 2016 +0000"
      },
      "message": "Only call jit_load after the zygote fork\nam: b10cef4\n\n* commit \u0027b10cef442594dd0d6c5f1a5784643931a25cc431\u0027:\n  Only call jit_load after the zygote fork\n"
    },
    {
      "commit": "b10cef442594dd0d6c5f1a5784643931a25cc431",
      "tree": "9b3af5a7b9e947d6115edffdbedcceb85adf4c38",
      "parents": [
        "d0482a8cb4c43b4f440813fe11ae33856a0f100c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 17:22:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 17:22:52 2016 -0700"
      },
      "message": "Only call jit_load after the zygote fork\n\nOtherwise we always get that enable_debug_features is false since\nthat flag passed as a compiler option post zygote fork.\n\nNo significant change to libart-compiler PSS on calculator.\n\nBug: 27810774\nChange-Id: I9854716902c79e16bdfd64754cc1ed05e852a5de\n"
    },
    {
      "commit": "5c4371a966d018577c6918b08a289883a847b6da",
      "tree": "f89cf00ff5aa48be5aedf4d501d4729c6eac81f7",
      "parents": [
        "2be47edc9055824e935164b3b5e97ab0041704ad",
        "d0482a8cb4c43b4f440813fe11ae33856a0f100c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 20:11:25 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 24 20:11:25 2016 +0000"
      },
      "message": "Merge \"Load jit compiler pre zygote fork\" into nyc-dev\nam: d0482a8\n\n* commit \u0027d0482a8cb4c43b4f440813fe11ae33856a0f100c\u0027:\n  Load jit compiler pre zygote fork\n"
    },
    {
      "commit": "ff2376770c1c6d301778c41e5c27c808a38e6968",
      "tree": "193c7023e3fe8c1ce5e93297091705382726792c",
      "parents": [
        "5a614682b7b293138769341aa59414a54ccdf5c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 11:07:06 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 24 11:27:59 2016 -0700"
      },
      "message": "Load jit compiler pre zygote fork\n\nReduces PSS for libart-compiler.so from 115KB to 2KB per app.\n\nAlso some clean-up.\n\nBug: 27810774\n\nChange-Id: I9938b022e90c58e7978c5038338d0bcbe2a1dc2b\n"
    },
    {
      "commit": "7bcfcb80a31f57a84d754e00bca8698829365208",
      "tree": "ad987ae592e4b42348319565e7d394e0e7f9c87b",
      "parents": [
        "748438ed62dbd130c2f52f2f0ede1ce75b6c28f0"
      ],
      "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 13:16:59 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\n(cherry picked from commit 29d38e77c553c6cf71fc4dafe2d22b4e3f814872)\n\nBug: 27689078\nChange-Id: I6274188610f31dcd9d086fc080b2be93afae5a6b\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": "40c68c690546e8c15dcb2de6137e72c74f573a75",
      "tree": "ec74da146d809e87b388d8d8a1c5241d4dab694c",
      "parents": [
        "3920099f578fd8015777bc3c1c7392a08b1e08e7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 16:35:51 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 16:35:51 2016 +0000"
      },
      "message": "Fix dex2oat/oatdump cross-compilation.\n\nOnly set the ImtConflictTable when not in AOT, to not mess up\nwith the image.\n\nChange-Id: I8f2926ad30dc913d61b0c8957affc25fc8056ada\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": "a373a33d33b8a5b4fd0d4c35645e2e4353ebde9b",
      "tree": "e739e5fe6f2f034edd91312b316c8dddd1352503",
      "parents": [
        "e2aad5d8dba805e510476ded22737a2adffbef72",
        "c6b1b93f47f5694025b35e8417112b303091dc7c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 11:09:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 22 11:09:37 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable compilation of secondary dex files\"\"\""
    },
    {
      "commit": "c6b1b93f47f5694025b35e8417112b303091dc7c",
      "tree": "51dfd67b5d08142da7b8024faacf20104b2e8402",
      "parents": [
        "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 09:52:40 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 09:52:40 2016 +0000"
      },
      "message": "Revert \"Revert \"Enable compilation of secondary dex files\"\"\n\nBug: 26719109\n\nThis reverts commit d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7.\n\nChange-Id: I523675eb6d647fe773dd57b6e1cc398927bb066e\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": "04680f3d7b021a0afb460266d442f564186a3b6f",
      "tree": "47acec9c78b982555e7a4fdfa2c685ded0d46a76",
      "parents": [
        "0205b58a0d7a9ce5832393857c19c086c78996e9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 17 11:56:54 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 17 13:51:47 2016 +0000"
      },
      "message": "Dump oat file information as part of DumpForSigQuit.\n\nChange-Id: Ie8d256d8fa16565105cfe5c39cc96826983469da\n"
    },
    {
      "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": "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": "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": "e70cda6147e2e49384a219b167a6c734a8db28f5",
      "tree": "ea627d88f7423c50b0ba7d2627c09f970a86f91f",
      "parents": [
        "14cc147fbd09d5ef0ba5c724a7287ac6770ae330",
        "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 14 15:54:55 2016 +0000"
      },
      "message": "Merge \"Revert \"Enable compilation of secondary dex files\"\""
    },
    {
      "commit": "d98a52f0bc6c58e8e538de8335ab9bcb6ae73aa7",
      "tree": "4490895063571fb10eac32ba0b4a2a5b8a749c14",
      "parents": [
        "770b39eb564ec16c672ace83515535b055edb2b1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:39 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 14 15:54:39 2016 +0000"
      },
      "message": "Revert \"Enable compilation of secondary dex files\"\n\nReverting until we fix the buildbot failures on jdwp and libcore.\n\nBug: 26719109\n\nThis reverts commit 770b39eb564ec16c672ace83515535b055edb2b1.\n\nChange-Id: Ifba366d2ddc9311737b6ea29c007475a40cc803f\n"
    },
    {
      "commit": "fb8932eec4c09c34dfe759ba151e751293245c0d",
      "tree": "c4691de9880d423d14e08d9a03882a7292ae8c77",
      "parents": [
        "971c69db916d66096dccd481df621cee7147d20c",
        "770b39eb564ec16c672ace83515535b055edb2b1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 14 11:38:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 14 11:38:24 2016 +0000"
      },
      "message": "Merge \"Enable compilation of secondary dex files\""
    },
    {
      "commit": "770b39eb564ec16c672ace83515535b055edb2b1",
      "tree": "51dfd67b5d08142da7b8024faacf20104b2e8402",
      "parents": [
        "f529e9bc50abb507e75ac425f6333b2406d405af"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 17:17:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 17:17:03 2016 +0000"
      },
      "message": "Enable compilation of secondary dex files\n\nDexClassLoader should be allowed to compile the secondary dex files if\nneeded. Adding interpret-only flag when using JIT prevented that.\n\nNote that primary apks are loaded with a PathClassLoader and which\nshould not attempt to compile the dex files.\n\nBug: 26719109\nChange-Id: I29323bc48160c3c70fea4244e502e43a4b0a678c\n"
    },
    {
      "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": "32ce2adefb8a3d0eda59a29f5e87c1eb43eef796",
      "tree": "50aaa40b31ede355359765259edc7989485cc7d5",
      "parents": [
        "c71dc3852edfa8e0cd2083d12845ff8607e189ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 14:58:03 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 18:37:19 2016 -0800"
      },
      "message": "Add more systracing everywhere\n\nAdded to:\nJIT\nDexFile functions\nOat file manager\n\nAdded helper ScopedTrace to prevent errors and reduce excess code.\n\nBug: 27502458\n\n(cherry picked from commit dabdc0fe183d4684f3cf4d70cb09d318cff81b42)\n\nChange-Id: Ifaeff8913d79eefc797380987d13cc00456266f8\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": "25e0456b6ea13eba290b63ea88b6b7120ed89413",
      "tree": "212c7433997a9e498ce68136ab511ae366e983e9",
      "parents": [
        "47bce25b3eaf5c0e1d46f0555eaf4676f958a7a7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 01 13:17:58 2016 +0000"
      },
      "message": "Give the JIT its own arena pool to avoid lock contentions.\n\nSharing it with the verifier and the class loader is not ideal,\nespecially at startup time.\n\nbug:27398183\nbug:23128949\nChange-Id: I1b91663a13f6c5b33ad3b4be780d93eb7fe445b4\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": "c66577ece35b73250f2078d8d59ac661a95a63d0",
      "tree": "927de986fc4eeb270428a07fda91569c09ac6abe",
      "parents": [
        "ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 25 08:50:50 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 25 08:50:50 2016 +0000"
      },
      "message": "Revert \"Preload public libraries on Runtime::Start()\"\n\nBreaks anyone not working on up-to-date devices/trees. I\u0027ll work on a revert of the revert.\n\nBug: http://b/27245894\n\nThis reverts commit ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9.\n\nChange-Id: Ie8fc286a64de4db2c905502a528005022803ed94\n"
    },
    {
      "commit": "ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9",
      "tree": "f75edd10a60aab5b7c1ac1bf210b35cd2913d425",
      "parents": [
        "4e4e64511e530db37b33f450016afe49db3c4b20"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Feb 22 14:26:48 2016 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Feb 24 16:42:50 2016 -0800"
      },
      "message": "Preload public libraries on Runtime::Start()\n\nPreloading public libraries on Runtime::Start()\ninstead of doing it in native_loader c-tor\nensures that the libraries are loaded only for\nbinaries that are using Android Runtime, and not\njust linking against libandroid_runtime or libart.\n\nLoading public libraries on Runtime::Start()\nalso helps some apps to save startup time and space\nby ensuring that all NDK libraries are loaded\nand ready to use.\n\nBug: http://b/27245894\nChange-Id: I15679a72450f3d18a7dd503d0ae977cebcfd7f52\n(cherry picked from commit 7bca74e53d3665bcd243d4e0277f6561c0c80271)\n"
    },
    {
      "commit": "e4c77b4d37024c1ed74e72494e69605942fead61",
      "tree": "5f0de5a63585b661ec0e551c6d172a441150569f",
      "parents": [
        "08e992e41e5e234ecc6b38a4ab53d4876fd077b6",
        "ca76a1a0c1737b3e04961ba382c113102fdc00bf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 10:52:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 23 10:52:23 2016 +0000"
      },
      "message": "Merge \"Dex-wide ArenaPool scoping for AOT compilation\""
    },
    {
      "commit": "ca76a1a0c1737b3e04961ba382c113102fdc00bf",
      "tree": "c2a2adce6d3bc78be4b34ed7f7982155b4c5eefc",
      "parents": [
        "99da8cd8818e015b21d1c2af73ac40749698c930"
      ],
      "author": {
        "name": "Jean-Philippe Halimi",
        "email": "jean-philippe.halimi@intel.com",
        "time": "Tue Feb 02 19:48:52 2016 +0100"
      },
      "committer": {
        "name": "Jean-Philippe Halimi",
        "email": "jean-philippe.halimi@intel.com",
        "time": "Fri Feb 19 13:43:24 2016 +0100"
      },
      "message": "Dex-wide ArenaPool scoping for AOT compilation\n\nThe Arena Pool is a structure that holds memory allocated by the Arena\nAllocator, preventing system allocations and deallocations to occur too often\nduring AOT compilation. Currently, the Arena Pool holds memory it allocates\nduring the whole AOT compilation process. Unfortunately, such a behavior\ngenerates memory usage overhead, which is exacerbated by bigger applications\nsuch as Facebook.\n\nIn this particular app, method size imbalance provokes unnecessary memory\npressure, as one method might require a lot of arena allocations that won\u0027t be\nused in the remaining compilation. Because the compiler memory footprint keeps\nincreasing during AOT compilation, the memory pressure becomes very high.\n\nThe proposed patch is an attempt to find a tradeoff between allocations /\ndeallocations time overhead, and the aforementioned memory pressure overhead\nresulting of the allocations being held by the Arena Pool. The patch adds a\nfeature freeing up all memory allocated in the Arena Pool after each dex file\nis done compiling.\n\nWe have measured no significant AOT compile-time overhead with the patch\n(\u003c0.3%), because the selected dex-file granularity is coarse enough. In the\nmeantime, it provides significant memory footprint improvements. The impact is\nespecially big with Facebook, because this app has a few methods generating\nhuge memory footprint peaks (peak native heap footprint goes down 34%).\n\nChange-Id: I27e867e6a20b8a6c28a82cb83140941a8c2b5847\nSigned-off-by: Jean-Philippe Halimi \u003cjean-philippe.halimi@intel.com\u003e\n"
    },
    {
      "commit": "5b82d339955d1a0dc23eeb8d2d5659459ff987ba",
      "tree": "79540d831ec7ac82f5520dc6bc53ac8c39f47972",
      "parents": [
        "d9c05309e8fab26a6087abd5773859f112cdefe9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:22:32 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:33:13 2016 +0000"
      },
      "message": "The JIT does not need VerifedMethod nor CompilerCallbacks.\n\nbug:27173201\n\nChange-Id: I971659f9ff6a8b780c94a7bed84de90fa9fc3456\n"
    },
    {
      "commit": "a73280df8cac1279b6dea0424722f42ef0048613",
      "tree": "22adc28cc88bc440b8e28a13a389c3a3c2b22341",
      "parents": [
        "47a2a45a6673ddf3322115ff5058763f82a9368f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 13:05:16 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 16:24:56 2016 +0000"
      },
      "message": "Add an option to disable native stack dumping on SIGQUIT.\n\nSome of our (stress) run-tests do ANR dumping, which end up\nstressing libunwind, that has known problems. To avoid getting\nflakes due to libunwind, disable native stack dumping on SIGQUIT\nfor our run-tests.\n\nbug:27185632\nbug:24664297\nChange-Id: I69085e48db903d6240448d71666ae2dcd091922e\n"
    },
    {
      "commit": "6eb6a39bdcf669655190d40d20f8d2e663b262f4",
      "tree": "1b56bd9527b56c8d24598245de0597bbb4f73d50",
      "parents": [
        "0665090c880ec22655ff8b82084746c4407ea792"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 10 20:18:37 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 12 16:26:03 2016 -0800"
      },
      "message": "ART: Simplify patchoat\n\nRemoved unused configurations. Cut out cruft that isn\u0027t used anymore\nsince multi-image. Make it smaller to not require new selinux\npermissions for OTAs.\n\nSplit up the main function, to make the flow clearer for image vs\napp/oat.\n\nBug: 25612095\nBug: 26317072\n\n(cherry picked from commit 02bc0b70beedfe258c2147c2b4a205fbf3d6eebc)\n\nChange-Id: Ieb55bd1a13cbb44fd0e2979a8a61a509df9c1e7e\n"
    },
    {
      "commit": "b331febbab8e916680faba722cc84b66b84218a3",
      "tree": "35f985b021e476914bfe91492da23fee218014a7",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 16:51:53 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:11:54 2016 +0000"
      },
      "message": "Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\n\nThis reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.\n\nChange-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44\n"
    },
    {
      "commit": "27c6b4890264444e2724972d2aa6c2c9a5bb65bb",
      "tree": "d7fbbd318c75f65eb2680db3739b099bb44ca4c0",
      "parents": [
        "62340033078bcd965e940b8ee390bf07b7867cab",
        "d3e7c6c76f564b58e66010c30b62bb56ef046f2c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:14:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 04 19:14:40 2016 +0000"
      },
      "message": "Merge \"Don\u0027t use native bridge for non zygote-spawn processes\""
    },
    {
      "commit": "d3e7c6c76f564b58e66010c30b62bb56ef046f2c",
      "tree": "bc67f7f152bf1786fbad6f15390e3dec4149a659",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:07:51 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 04 19:07:51 2016 +0000"
      },
      "message": "Don\u0027t use native bridge for non zygote-spawn processes\n\n... unless we force it for testing purposes.\n\nBug: 26954924\nChange-Id: Ib4660a35175abb479d0399e18b6194eb04dbc248\n"
    },
    {
      "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": "4a26f17b055cadc949c3e9fdfa637fe5656339d9",
      "tree": "d3cee26249b5ac72c57a7125ae2a73765bf77d96",
      "parents": [
        "caef579e906abc5c3174ba65e5205ea7fd5c44ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 14:26:18 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 17:49:12 2016 -0800"
      },
      "message": "Remove GetImageRoots read barrier for image relocation\n\nFixes CC assertion that failed if an app image was loaded when the GC\nwas running.\n\nBug: 26786304\nChange-Id: I47bea7b4b947332b57be2e2db604c2c25d92b7e2\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": "9bdf108885a27ba05fae8501725649574d7c491b",
      "tree": "a4ddf98b6cf10b343f15164f18e7089bc54c29ca",
      "parents": [
        "a92ee11b9b0ed4033efc5982269e3c0a075315e0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:15:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:19:08 2016 +0000"
      },
      "message": "Revert \"Revert \"Write dex files to oat file early.\"\"\n\nThis reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61.\n\nFix linker error (Mac build):\nReplace inline definition of art::ZipArchive::~ZipArchive()\nwith an out-of-line definition in zip_archive.cc to avoid\ndirect reference to CloseArchive() from libart-compiler due\nto inlining. Note that libart is linked against -lziparchive\nbut libart-compiler is not.\n\nChange-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8\n"
    },
    {
      "commit": "1ee101ac001561a40a3b654bab9c62f9369f0350",
      "tree": "13a4b03ad1465349184b932d32af7a4cfb500773",
      "parents": [
        "7997bafd29c483583bcaa3135d958403caef94e3",
        "919f5536182890d2e03f59b961acf8f7c836ff61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Write dex files to oat file early.\"\""
    },
    {
      "commit": "919f5536182890d2e03f59b961acf8f7c836ff61",
      "tree": "8e8b9c330ae9c886611c6e5ae598e21d9b3ea17a",
      "parents": [
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "message": "Revert \"Write dex files to oat file early.\"\n\nThis reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5.\n\nBreaks the Mac build:\n\nUndefined symbols for architecture i386:\n  \"_CloseArchive\", referenced from:\n      ... in oat_writer.o\nld: symbol(s) not found for architecture i386\n\nChange-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e\n"
    },
    {
      "commit": "a8108303b31f76b7cd0292942885585d0f9d9391",
      "tree": "4b24fde686f2fd948212122c0b1e3d1282545f39",
      "parents": [
        "440ef2cbc76d7e2bc76cf5f15b69fc0478d7e853",
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "message": "Merge \"Write dex files to oat file early.\""
    },
    {
      "commit": "fffbee4d158259633ec7b7f712eaf75be86bd4e5",
      "tree": "05b9ae8b23be722cf8c2a6a979cc3706437ecf71",
      "parents": [
        "55380bbe098bace4375d77a2b77d05ef88dfe6f6"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Jan 15 13:09:34 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 18 14:35:14 2016 +0000"
      },
      "message": "Report types loaded during init to the native debugger\n\nThe runtime loads a lot of type before it creates the jit from the\nboot image and from hard coded source code (e.g. primitive arrays).\nThis change emits type information for these types after the jit has\nbeen created. At the same time we remove the type info generation\nthat happens during AOT compilation because that type information can\nbe modified by a class loader at runtime.\n\nChange-Id: Ie5b3b3df9d01c7200a1f670a98d9cbee796234e9\n"
    },
    {
      "commit": "625a64aad13905d8a2454bf3cc0e874487b110d5",
      "tree": "49035d031166ce9fe0c5dd2f4b34157100e1703f",
      "parents": [
        "e1b0f475e851072d0083faf6e07d274e9f1fe6a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 26 14:44:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 12:28:06 2016 +0000"
      },
      "message": "Write dex files to oat file early.\n\nWrite dex files to oat file before we actually open and\nverify them. Instead, open and verify the copies from the\noat file and use these. This way, in the most common case\nof zipped dex files, we have mmapped dex files instead of\ninflated dex files. That reduces the number of dirty pages\nused by dex2oat.\n\nReading /proc/self/statm after we write the oat file for\na compilation of a certain large app on Nexus 5 AOSP build\nwith -j1, three attempts before and after this CL gave\n    before: 346061 189462 6269 26 0 140723 0\n            346189 189450 6269 26 0 140851 0\n            346061 189463 6269 26 0 140723 0\n    after:  346186 185808 23040 27 0 140468 0\n            346186 185819 23040 27 0 140468 0\n            346186 185822 23040 27 0 140468 0\nThese values are in pages (4KiB), so while the \"size\"\n(\u003dVmSize) is essentially unchanged, the \"resident\" (\u003dVmRSS)\nis over 14MiB less and the \"shared\" (i.e. backed by a file)\nis 65.5MiB more. That is, the amount of dirty non-pageable\nmemory used is reduced by about 80MiB.\n\nThe oat file format has changed slightly, the class offset\ntable has been moved from the OatDexFile to its own section.\nThis actually fixes the alignment of these offsets as they\ncould have been unaligned previously, yet accessed as normal\nwith significant performance impact if the kernel has to\nemulate the unaligned access (say, mips).\n\nChange-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a\n"
    },
    {
      "commit": "1452bee8f06b9f76a333ddf4760e4beaa82f8099",
      "tree": "8ffb80498cd8fdff66a4ab272723cf4d4e69e57b",
      "parents": [
        "7f9ea1451bb74055ee5d51ae04fc869faa06cbdd"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 06 14:43:04 2015 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Jan 11 13:04:49 2016 -0800"
      },
      "message": "Fast Art interpreter\n\nAdd a Dalvik-style fast interpreter to Art.\nThree primary deficiencies in the existing Art interpreter\nwill be addressed:\n\n1.  Structural inefficiencies (primarily the bloated\n    fetch/decode/execute overhead of the C++ interpreter\n    implementation).\n2.  Stack memory wastage.  Each managed-language invoke\n    adds a full copy of the interpreter\u0027s compiler-generated\n    locals on the shared stack.  We\u0027re at the mercy of\n    the compiler now in how much memory is wasted here.  An\n    assembly based interpreter can manage memory usage more\n    effectively.\n3.  Shadow frame model, which not only spends twice the memory\n    to store the Dalvik virtual registers, but causes vreg stores\n    to happen twice.\n\nThis CL mostly deals with #1 (but does provide some stack memory\nsavings).  Subsequent CLs will address the other issues.\n\nCurrent status:\n   Passes all run-tests.\n   Phone boots interpret-only.\n   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute\n       microbenchmark, 5x faster than gcc-compiled goto interpreter.\n   1.6x faster than Clang goto on Caffeinemark overall\n   2.0x faster than Clang switch on Caffeinemark overall\n   68% of Dalvik interpreter performance on Caffeinemark (still much slower,\n       primarily because of poor invoke performance and lack of execute-inline)\n   Still nearly an order of magnitude slower than Dalvik on invokes\n       (but slightly better than Art Clang goto interpreter.\n   Importantly, saves ~200 bytes of stack memory per invoke (but still\n       wastes ~400 relative to Dalvik).\n\nWhat\u0027s needed:\n   Remove the (large quantity of) bring-up hackery in place.\n   Integrate into the build mechanism.  I\u0027m still using the old Dalvik manual\n       build step to generate assembly code from the stub files.\n   Remove the suspend check hack.  For bring-up purposes, I\u0027m using an explicit\n       suspend check (like the other Art interpreters).  However, we should be\n       doing a Dalvik style suspend check via the table base switch mechanism.\n       This should be done during the alternative interpreter activation.\n   General cleanup.\n   Add CFI info.\n   Update the new target bring-up README documentation.\n   Add other targets.\n\nIn later CLs:\n   Consolidate mterp handlers for expensive operations (such as new-instance) with\n       the code used by the switch interpreter.  No need to duplicate the code for\n       heavyweight operations (but will need some refactoring to align).\n   Tuning - some fast paths needs to be moved down to the assembly handlers,\n       rather than being dealt with in the out-of-line code.\n   JIT profiling.  Currently, the fast interpreter is used only in the fast\n       case - no instrumentation, no transactions and no access checks. We\n       will want to implement fast + JIT-profiling as the alternate fast\n       interpreter.  All other cases can still fall back to the reference\n       interpreter.\n   Improve invoke performance.  We\u0027re nearly an order of magnitude slower than\n       Dalvik here.  Some of that is unavoidable, but I suspect we can do\n       better.\n   Add support for our other targets.\n\nChange-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc\n"
    },
    {
      "commit": "0de47bb78a53dbae5da77badafb95f03e4bc1138",
      "tree": "cabd1fb24a7d04a5d592f184d442f44a28edbb2d",
      "parents": [
        "8566a91502db625ff9428a3c2418714488ecd5d9",
        "10edbb159afae232817c86fc06a6801349f05bae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 11 16:34:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 11 16:34:49 2016 +0000"
      },
      "message": "Merge \"ART: Use libopenjdkd\""
    },
    {
      "commit": "10edbb159afae232817c86fc06a6801349f05bae",
      "tree": "ab487114d0f5e906471fa5459a075b3648b72a8e",
      "parents": [
        "fcad0099eeceb6f2c09a6de28d8e8f05dab69ed5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 06 17:59:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 08 09:48:43 2016 -0800"
      },
      "message": "ART: Use libopenjdkd\n\nLoad libopenjdkd in debug mode. Add dependencies for libopenjdkd\nin the Makefiles.\n\nBug: 26421792\nChange-Id: Ie64cd56f73901b9c7645e46384d753752bbd5351\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": "b94a8906b82ed05ccf67be68d9d329b85c514d46",
      "tree": "53c9810ed6449e4bc00472e47751e104c8cdf6ad",
      "parents": [
        "bf157c3f50ab4790bae5a763c677e174b80e7f9a",
        "fb6db4c841e928feb35a985923fe2d41848f8f31"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 07 02:21:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 07 02:21:52 2016 +0000"
      },
      "message": "Merge \"Add systrace output to runtime shutdown\""
    },
    {
      "commit": "fb6db4c841e928feb35a985923fe2d41848f8f31",
      "tree": "59130aec4e26c0ca42aac3f800ef6bef85550cd8",
      "parents": [
        "5af190cb6f11a651afe0f0abc5ba0844246970d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 17:23:25 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 18:20:05 2016 -0800"
      },
      "message": "Add systrace output to runtime shutdown\n\nHelp debug why am command shutdown is slow.\n\nFindings:\n~200ms spent in deleting thread list on N5.\n\nBug: 26351700\nChange-Id: Icb59390a5267ae8bade4ced12252743c48206bb1\n"
    },
    {
      "commit": "205b7624e434050125ada92a318cdc2655ac7b4a",
      "tree": "fc0742acf17f434b72eaf9eb355711636060033a",
      "parents": [
        "5af190cb6f11a651afe0f0abc5ba0844246970d6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 15:47:09 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 15:47:44 2016 -0800"
      },
      "message": "Address some intern table comments\n\nChange-Id: I7ffaa463272015c2924ba03e006041daee498ad4\n"
    },
    {
      "commit": "ea0831f60d26e3297e6463634a9fbb6384f00661",
      "tree": "6b970dced071048d59d1857e4703521d76566f99",
      "parents": [
        "664d7cfba0e734ba8917c260e424ea559b7e8f9f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 29 13:17:37 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 06 10:17:01 2016 -0800"
      },
      "message": "Re-enable adding intern table to image\n\nChanged intern table to have a stack of tables similarily to\nClassTable. Adding an image intern table adds to the front of the\nintern table stack. Also some cleanup.\n\nBug: 26317072\n\nChange-Id: I7bbf9485b5dbbbf3707fed21e29de3beccfb8705\n"
    },
    {
      "commit": "1c1a342ba4e029ea1868a41ed0310756b7d78f45",
      "tree": "7310ba40021c1b6de0a1d12769d662071ead3cec",
      "parents": [
        "68ead6495715c44c60e4faa27db8255e3ba7491b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 05 14:13:00 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 05 15:35:51 2016 -0800"
      },
      "message": "Fix multi-image TODOs in class linker, runtime, and oat file.\n\n- Modified SanityCheckArtMethodPointerArray in class linker\n- Put back warnings in OatFile::GetOatDexFile\n- Reinstated ImageSpace VerifyImageAllocations in Runtime::Init\n\nBug: 26317072\n\n(cherry-picked from commit 0dfef949bb824accde27f8cfe1b233ec9e087355)\n\nChange-Id: I3bdb8f87d885213795c82c41e5095fec6daf00c4\n"
    },
    {
      "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": "8994a04162a92759f8ec531d18ee8901145dfda0",
      "tree": "802550252d5ad02060abf66fbbbc43530b09cfcb",
      "parents": [
        "1e65a78577ed71f5e3d79edaa0e6735ea4a3371b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 19:03:17 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 12:41:29 2015 -0800"
      },
      "message": "Revert \"Revert \"ART: Fix up some multi-image cases\"\"\n\nThis reverts commit de38b797c3e5ba3ee44c480db7093386975c51eb.\n\nFix up imgdiag for std::string and multi-image.\n\nBug: 26317072\nBug: 26320300\n\nChange-Id: I94ce9528e9fea6fb3231a70c32db02d567143db9\n"
    },
    {
      "commit": "de38b797c3e5ba3ee44c480db7093386975c51eb",
      "tree": "66fdb4f09ffe5d62f491f53b9d311ea3e7349f71",
      "parents": [
        "288b1e9a0dddfb91e85067fe81de55174f313c7c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "message": "Revert \"ART: Fix up some multi-image cases\"\n\nFails imgdiag_test on device.\n\nBug: 26317072\nBug: 26320300\n\nThis reverts commit 288b1e9a0dddfb91e85067fe81de55174f313c7c.\n\nChange-Id: Iccd05827b0630281b6f959331eaa4202526df78e\n"
    },
    {
      "commit": "288b1e9a0dddfb91e85067fe81de55174f313c7c",
      "tree": "3b8926db8ed6a575975540694c2bc81b4197b7de",
      "parents": [
        "6147f7520a1279b58d58c5d73a707dea2fbdd376"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 10:41:49 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 19:21:26 2015 -0800"
      },
      "message": "ART: Fix up some multi-image cases\n\nChange the auto-generated multi-image names to include the path\ncomponents from the first image, as well as prefix them with the\nfirst image\u0027s name to disambiguate. This fixes vogar-style usage.\n\nFix an out-of-bounds issue in dex2oat when dex files are missing.\n\nForbid generating or patching multi-image parts when loading images.\nInstead just fail loading them.\n\nRemember ImageSpace instances that have been added while trying to\nload a multi-image set. Remove all loaded instances when the overall\nloading process fails.\n\nRefactor the dex location adaptation into ImageSpace. Reuse the code\nin the Runtime path for fallback, so that all dex files can be found\ncorrectly.\n\nFix an out-of-bounds access in OatFileAssistant in fallback mode.\n\nPartially reverts d895961d07a1d320b29f2045a48bc5a1944a4d3c. Push an\nactual image name, that is, something with an art extension, to\nthe vogar scripts.\n\nPartially reverts c525604b313bb77a2077e1fec43dfab76cb1b9b1. Test\n119-noimage-patchoat works again.\n\nBug: 26317072\nBug: 26320300\nChange-Id: I3f05fa77f22a2b9ca54c3105ffc53646c1928604\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": "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": "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": "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": "471fb5beb826a8dead12600bffb8729a9ced9c47",
      "tree": "c3c63e9069f733b633878a919fbb45cdf0e7bcab",
      "parents": [
        "db92e153c2c29b7f0b59e5f6cc9d0abbdcdce635",
        "88e3342e07d607c07d886eebf195e2d0359067ed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 17 23:38:34 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 17 23:38:34 2015 +0000"
      },
      "message": "Merge \"Add some dumping when SIGQUIT for the JIT.\" am: bdd12e0e04\nam: 88e3342e07\n\n* commit \u002788e3342e07d607c07d886eebf195e2d0359067ed\u0027:\n  Add some dumping when SIGQUIT for the JIT.\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": "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": "aee2156e308f3f346ac4df76ba1d33ee9b11be84",
      "tree": "15873ce5421d8a3856a6049c715d61a5136cae20",
      "parents": [
        "3b0ec017185a6d694f5041e79cc7a85d51943cff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:39:44 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:50:27 2015 +0000"
      },
      "message": "Add some dumping when SIGQUIT for the JIT.\n\nChange-Id: Iad68bdc8a4ab53e810feb3bc8507b7f42e79b1f7\n"
    },
    {
      "commit": "e86c0e62d560f6f707b97eaae495d8aca78ffbcb",
      "tree": "a37e03e5a39c5c3767c73e08b873f624bdc2081d",
      "parents": [
        "85f2c5fff79b15611e060803f4c5cf1ccb8cbdd4",
        "b38da83736ff325719f18424177022d68e283964"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 06:46:08 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 14 06:46:08 2015 -0800"
      },
      "message": "Merge \"Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\" am: 8cf97d7295\nam: b38da83736\n\n* commit \u0027b38da83736ff325719f18424177022d68e283964\u0027:\n  Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\n"
    },
    {
      "commit": "8cf97d729592774afa495717626ac4e4525a499f",
      "tree": "0f00febf35d851fdd63a51c4ef7786f4f26c9f9b",
      "parents": [
        "84c3d48a6ce4d2c9396364973b3d7f43893ab468",
        "226501b317e148aa8a8983355e85acb59c1eee83"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\""
    },
    {
      "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": "98d46d2d287c8081995517770392a21b4d59d2e9",
      "tree": "ed8a1ce97cca924207da598fe7333c4ae7083f77",
      "parents": [
        "277da370dd517af0d6a27bef3b86d5f259feda62",
        "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "message": "Merge \"Use isolated namespaces for app native libs\""
    },
    {
      "commit": "226501b317e148aa8a8983355e85acb59c1eee83",
      "tree": "e580485b79123403b7436793e1fdea40cdb585ea",
      "parents": [
        "66278646b5b332142d1474703ac7d945dfbf7c78"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:41:31 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 18:41:35 2015 +0000"
      },
      "message": "Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\n\nThis reverts commit 2306ae0d412cc53cbf64877e4a8c37292dd907d8.\n\nChange-Id: I50640009c2fac88ea703812b76549a0e8a6d7584\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": "d38b1b715733b09341d3d37b1247f741e00d62d9",
      "tree": "d9854e1abcee4eff6dbcb485c3618357ec1428fc",
      "parents": [
        "0fa75b6c62e408d9ca2a4ded7878adfdd8b91312",
        "f6e504d5ff301048f545905c01c4734f2b583713"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 06:10:46 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 06:10:46 2015 -0800"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\" am: 66278646b5\nam: f6e504d5ff\n\n* commit \u0027f6e504d5ff301048f545905c01c4734f2b583713\u0027:\n  Revert \"Enable profiled guided compilation in dex2oat\"\n"
    },
    {
      "commit": "66278646b5b332142d1474703ac7d945dfbf7c78",
      "tree": "eedcbf057dabe78c46e63c645ff833a657a7187d",
      "parents": [
        "919b6d5fc9b18dd7c00f5fa8eb90411b2ca8998b",
        "2306ae0d412cc53cbf64877e4a8c37292dd907d8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\""
    },
    {
      "commit": "2306ae0d412cc53cbf64877e4a8c37292dd907d8",
      "tree": "fcda284846a6a468e39aec2783812d2d1129a35e",
      "parents": [
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nThe test still have some flakiness in it which didn\u0027t reproduce locally.\n\nThis reverts commit 500c9be1f261a8a95ae7a25f4f8084f43207f313.\n\nChange-Id: I132aff62bf03c2f926aafde6869707573bae9b36\n"
    },
    {
      "commit": "22df2db1b65975fcb21b807dc900ffa2a8cbd17f",
      "tree": "4425444bb262ab489d7f54a2c3ca988d493db779",
      "parents": [
        "bdb859f2e07dbb16e68f6ada1caeea5a558ade64",
        "f17b1e3158da8deec4a3df75055402d82326780b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 03:45:48 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 11 03:45:48 2015 -0800"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\" am: a79c717fd4\nam: f17b1e3158\n\n* commit \u0027f17b1e3158da8deec4a3df75055402d82326780b\u0027:\n  Enable profiled guided compilation in dex2oat\n"
    },
    {
      "commit": "a79c717fd4de0d7361a51bee1e3cf4f2ff5f085a",
      "tree": "7a2a08b0be2a350c612d3afc23835a10580c80f6",
      "parents": [
        "bf479be3a9b25b2126d2c73a3267f18ee52811fb",
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\""
    },
    {
      "commit": "7d2b04c227b73257d7c282ca9f7147418091e9f6",
      "tree": "3dd88f5b7def624238d06e21c751581650ce0410",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 20:00:26 2015 -0800"
      },
      "message": "Skip DumpForSigQuit if debugger is active\n\nOtherwise, the SIGQUIT dumping may get blocked on the mutator lock\nand freeze the debugger.\n\nFuture work: Ideally we want to dump what we can instead of nothing.\n\nBug: 26118154\n\n(cherry picked from commit 0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc)\n\nChange-Id: I28e5352dab3b8abce0b39850e3e58282ae454b51\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": "0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc",
      "tree": "bb82300941265c6f9093b699c5d4b8d75b97f827",
      "parents": [
        "a84784cab1021cb4b432dde2e4a7f421f9717cf0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "message": "Skip DumpForSigQuit if debugger is active\n\nOtherwise, the SIGQUIT dumping may get blocked on the mutator lock\nand freeze the debugger.\n\nFuture work: Ideally we want to dump what we can instead of nothing.\n\nBug: 26118154\nChange-Id: I365612a3a34ca6d3215892e6c54b649b93365c80\n"
    },
    {
      "commit": "500c9be1f261a8a95ae7a25f4f8084f43207f313",
      "tree": "e36173ca0ea9dfa88e6e605f156c3992414d7d1b",
      "parents": [
        "836ee764c86892aff1dca6b0f8b27e32c7374cc7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 15:59:14 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 10 17:34:06 2015 +0000"
      },
      "message": "Enable profiled guided compilation in dex2oat\n\n- add parsing of the profile info saved during JIT.\n- don\u0027t compile methods which are not part of the profile info.\n- delete old profile hooks.\n- add test for reading/writing profile. The test is disable in:\n   * interpreter modes: the test needs JIT.\n   * no-dex2oat/no-prebuild: we only save profiling info for the primary\n     oat file. In these modes we don\u0027t create oat files and thus nothing\n     is saved.\n\nBug:26080105\n\nChange-Id: Ifdc63dc9d4b537fc79e54c3edc3ae3a462bc30fb\n"
    },
    {
      "commit": "8701fc20130939b9a11f801992607daee7f70871",
      "tree": "e998ab6d3aab4e8dfd36f999ca216b07eecb609e",
      "parents": [
        "7c21c7cb329990fed53e9878ef2479e3009bf286",
        "0b81f1715d6af9f98f982d6511e48973aa5a836a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "message": "Merge \"Allow initializing runtime with parsed options.\" am: e0d25b156e am: 2433d4e17c\nam: 0b81f1715d\n\n* commit \u00270b81f1715d6af9f98f982d6511e48973aa5a836a\u0027:\n  Allow initializing runtime with parsed options.\n"
    },
    {
      "commit": "88b2b80aed15bb1f931cddd40e44ca525ef10018",
      "tree": "04b2f9d27863cd469dae8050335f197496f24ff2",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 14:19:04 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 07 12:38:21 2015 +0000"
      },
      "message": "Allow initializing runtime with parsed options.\n\nNeeded by upcoming refactoring of dex2oat to allow\nearly writing of dex files to the oat file.\n\nChange-Id: Ia13c26132846801522f181f51f64035d625e8416\n"
    },
    {
      "commit": "acb3040aa9d33b71c3db43d577cee96fd3a4474b",
      "tree": "4208658c416583c91e10045188706397b2fd3ad5",
      "parents": [
        "81b4f93407fe0b656a756b6c33c30093cab8a001",
        "ef769dc0eaacda0e2be4ad485610e86879c4fe76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 03 19:42:35 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 03 19:42:35 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\" am: 68cebffee2 am: e6527ffc11\nam: ef769dc0ea\n\n* commit \u0027ef769dc0eaacda0e2be4ad485610e86879c4fe76\u0027:\n  Revert \"Enable profiled guided compilation in dex2oat\"\n"
    },
    {
      "commit": "9fdb129b90c9a985f606f9d95627b4852171dc11",
      "tree": "c7b1e1da1450f61a504cdf6e21cda62541e93ee7",
      "parents": [
        "57989d6f7292155f4d91ce423cede17d04dd9343"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 22:44:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 23:00:53 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nTest has flakes:\n\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     string: \u0027��gy�\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     input: \u0027\u003c0x80\u003e 0xd8 0x67 0x79 0x8e 0x7f\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     in call to NewStringUTF\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)\n\nThis reverts commit 27e17fd81cc30e16e86c9c15498cae7f920c9dfe.\n\nChange-Id: Id224b5970c3620c4c71fc0d39ed4a2e4755e5f29\n"
    },
    {
      "commit": "7fa9723f95ebffa0a93b98a22d6700741b7ff663",
      "tree": "88c863d9916f1bf8a99815bd0dd87d45389954e6",
      "parents": [
        "ba5db10147cfbbe3f943fd5340b0a11b45bacb86",
        "4c4f22e5d4d9bf20f2d75e284473262331a5cf94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 19:16:23 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 02 19:16:23 2015 +0000"
      },
      "message": "Merge \"ART: Refactor oat_file.h/cc for better maintainability\" am: dbec5e71e0 am: 98acd60161\nam: 4c4f22e5d4\n\n* commit \u00274c4f22e5d4d9bf20f2d75e284473262331a5cf94\u0027:\n  ART: Refactor oat_file.h/cc for better maintainability\n"
    },
    {
      "commit": "dbec5e71e0108cff373dce9e315a95a0187bc14f",
      "tree": "abd562c94736c487034ebd89d7cdd3a3fcf776cf",
      "parents": [
        "c1c2ce460b30940a4f4ce39c688f7b3d080d90f8",
        "049cff0ed5e28aa17a17e456efe3121b6d58910f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "message": "Merge \"ART: Refactor oat_file.h/cc for better maintainability\""
    },
    {
      "commit": "049cff0ed5e28aa17a17e456efe3121b6d58910f",
      "tree": "995c2cf8359f9638c6a5832482e4e5365a8f25c6",
      "parents": [
        "f4c539395244ccfc14aebaf53fdc1122287f65a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 01 23:27:12 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 10:30:28 2015 -0800"
      },
      "message": "ART: Refactor oat_file.h/cc for better maintainability\n\nRefactor the code so that generic oat file initialization (checking\nART symbols etc) is common between dlopen and ART\u0027s ElfFile\nimplementation. Reduce methods and fields exposed in the oat_file\nheader.\n\nChange-Id: I5bf65dd8b7047a007c6bf435b55bdde306595e8d\n"
    }
  ],
  "next": "b70e694cdaf520eeea6471e8916e3e487f89cd48"
}
