)]}'
{
  "log": [
    {
      "commit": "dfb325e0ddd746cd8f7c2e3723b3a573eb7cc111",
      "tree": "0b63738b04404f42015da7164dfe5ec506452b02",
      "parents": [
        "eda6df7374bf61c933d4a36635e2a9a30c9892a0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 30 01:00:44 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 30 01:00:44 2013 -0700"
      },
      "message": "Don\u0027t use UTF16 length as length for MUTF8.\n\nBug 11367555.\n\nChange-Id: Ia0b07072a1a49d435c3b71ed9a668b316b7ff5d8\n"
    },
    {
      "commit": "eda6df7374bf61c933d4a36635e2a9a30c9892a0",
      "tree": "72b199f5bc1d1ed67205389f90ce9b420cdd63e9",
      "parents": [
        "652e0ff0ce438385d1268ff0214d0eef6e8623ff",
        "d4beb6bc2b42b176c6d04fdd91d6c758e542c7c2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 29 08:35:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 29 08:35:16 2013 +0000"
      },
      "message": "Merge \"Inline field and method resolution.\" into dalvik-dev"
    },
    {
      "commit": "0d3bbff796454aca1495131ab4a866ebfef2e857",
      "tree": "4f2f1f3ad474093f193ebe9b72f9fd397e78876c",
      "parents": [
        "ba150c37d582eeeb8c11ba5245edc281cf31793c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 15:21:32 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 15:21:32 2013 -0700"
      },
      "message": "Fix DexFile_isDexOptNeeded to clear an error_msg in a recoverable case\n\nChange-Id: Id4a6d0ab8fb259fa0edcc18ce768b33e95afc28a\n"
    },
    {
      "commit": "d4beb6bc2b42b176c6d04fdd91d6c758e542c7c2",
      "tree": "083f8c75e44105e98688eff3e206e5a7fd188912",
      "parents": [
        "57e6d8a99058e5c74d5244b68a5f4d53526fa108"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 02 17:07:20 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Oct 28 18:12:22 2013 +0100"
      },
      "message": "Inline field and method resolution.\n\nAccording to profiling results, field and method resolutions are hot points\nduring interpreter execution. This CL attempts to speed up these resolutions.\n\nForces aggressive inlining of FindFieldFromCode and FindMethodFromCode. This\nallows to reduce the overhead of access check code when the interpreter runs\nwithout these checks. Templatize these functions to optimize inlining and their\ncallers.\n\nAlso spread the use of C++11 \"nullptr\" in place of \"NULL\" in field access and\ninvoke helpers.\n\nChange-Id: Ic1a69834d8975b2cddcddaae32f08a7de146a951\n"
    },
    {
      "commit": "ba150c37d582eeeb8c11ba5245edc281cf31793c",
      "tree": "ca12cf82602e4b78b2a6ca463e9d0e35fc5e3ff6",
      "parents": [
        "3c2a6e2468e3e519ade6c3cfcaad7cd34243cdf1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 27 17:31:03 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 28 00:06:03 2013 -0700"
      },
      "message": "Omit OatMethodOffsets for classes without compiled code\n\nChange-Id: If0d290f4aebc778ff12d8fed017c270ad2ac3220\n"
    },
    {
      "commit": "75fabbe71ec82836787b34e7250d992da64c6be0",
      "tree": "5d12ac66548f514901af41c22080afd23e3755d2",
      "parents": [
        "e2179ebd18f9b3c7b0ad4c1ce1a2b76a5781064c",
        "83883d7fddf30fdb8b6903560fa1337ab991e74c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 25 22:07:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 25 22:07:22 2013 +0000"
      },
      "message": "Merge \"Populate dex cache for sharpened calls.\" into dalvik-dev"
    },
    {
      "commit": "83883d7fddf30fdb8b6903560fa1337ab991e74c",
      "tree": "d08809deef3a4ab19a57dd4e2ed629a79b60ce74",
      "parents": [
        "8584a68279efc0f9a409a3555ae5ebf3ec2cc4ac"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 21:07:24 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 25 14:22:26 2013 -0700"
      },
      "message": "Populate dex cache for sharpened calls.\n\nWe ensured the resolved method was in the dex cache, but for a sharpened call\nthis is abstract. Ensure that the concrete method is also resolved.\nLimit the use of direct dex cache based dispatch to cases where we know how to\npatch the dex cache.\n\nBug 11389002\n\nChange-Id: I08252686a53b5948650632837c74bcd5cbf8a862\n"
    },
    {
      "commit": "e2179ebd18f9b3c7b0ad4c1ce1a2b76a5781064c",
      "tree": "06bbbb32153613666994a09474b1ef3d898c4f6a",
      "parents": [
        "dbf39a79d17f226936430b025ce1f0beeac2f441",
        "881392f55e566a7c6407e7d321a31836d2d8865f"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Oct 25 13:09:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 25 13:09:49 2013 -0700"
      },
      "message": "am 881392f5: Adjust the name of setTargetSdkVersion native method.\n\n* commit \u0027881392f55e566a7c6407e7d321a31836d2d8865f\u0027:\n  Adjust the name of setTargetSdkVersion native method.\n"
    },
    {
      "commit": "881392f55e566a7c6407e7d321a31836d2d8865f",
      "tree": "35043d24b73a5af6d90706aae9cffd96243c5b7e",
      "parents": [
        "7510d4cc0111258b53ae74cf8292f31c6ca5f001"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Oct 24 16:31:56 2013 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Thu Oct 24 16:31:56 2013 -0700"
      },
      "message": "Adjust the name of setTargetSdkVersion native method.\n\nChange-Id: I60f1febc1f8ddf2a97925a48ddf232508d5c44f9\n"
    },
    {
      "commit": "fd7e33f67d535e9f4363ef8c1b56ca7aede3b1a6",
      "tree": "c7673fda356f7b8019a51f2ad416453ee9471dea",
      "parents": [
        "8f8389e7d7ca5b005e0418640255c5a5eeda4a0a",
        "8d31bbd3d6536de12bc20e3d29cfe03fe848f9da"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 24 16:24:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 24 16:24:09 2013 +0000"
      },
      "message": "Merge \"Throw IOException at source of failing to open a dex file.\" into dalvik-dev"
    },
    {
      "commit": "8f8389e7d7ca5b005e0418640255c5a5eeda4a0a",
      "tree": "47b92d8a732f4aef23632aa504684235b4c838be",
      "parents": [
        "79b4f38dd35b83206e8166aaafb94bd75c3318b3",
        "59fe2a68b94daa4d215d69facec1b3079846df9e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 24 08:33:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 24 08:33:55 2013 -0700"
      },
      "message": "am 59fe2a68: Add -Wl,--no-fatal-warnings to x86 build\n\n* commit \u002759fe2a68b94daa4d215d69facec1b3079846df9e\u0027:\n  Add -Wl,--no-fatal-warnings to x86 build\n"
    },
    {
      "commit": "59fe2a68b94daa4d215d69facec1b3079846df9e",
      "tree": "eabc638dc6affcabfe35f80eb17618fb9d9db14f",
      "parents": [
        "5d79c5deba3fa27825a2d5a399713b9490f5ca28"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 23 17:21:05 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Oct 23 17:24:11 2013 -0700"
      },
      "message": "Add -Wl,--no-fatal-warnings to x86 build\n\nlibart.so has text relocations. When -Wl,--fatal-warnings is added\nto the global LDFLAGS, these text relocations will become a compile\nerror.\n\nThis is a short term workaround until the text relocations can be\nfixed properly.\n\nBug: 11358761\nBug: 11353056\nChange-Id: I886d668a1bd6ed326f6552693d8c38c5d5a6b43d\n"
    },
    {
      "commit": "79b4f38dd35b83206e8166aaafb94bd75c3318b3",
      "tree": "335bd7217c03932c0875697d431e475b56111cc5",
      "parents": [
        "1984152ac92aad244ae15184d12f9ceade686b7b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 23 15:21:37 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 23 15:38:26 2013 -0700"
      },
      "message": "Fix incorrect initial dex cache size.\n\nWe were previously setting it to be sizeof(DexCacheClass) instead\nof sizeof(DexCache). This was causing some problems with\ncompaction when I relied on the object sizes being accurate to\nvisit objects in the bump pointer space.\n\nBug: 8981901\nChange-Id: Iede04763aced041986b1b239368fc867143ad70d\n"
    },
    {
      "commit": "1984152ac92aad244ae15184d12f9ceade686b7b",
      "tree": "ab072cbc867d09b4f84cd8e80c336d36e7f06752",
      "parents": [
        "a8d24bf578a1022ff14f89f650074dc39b9667fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 22 11:29:00 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 22 14:40:49 2013 -0700"
      },
      "message": "Add missing callee save restore to quick entrypoints.\n\nAdded callee save restoration to art_quick_proxy_invoke_handler,\nart_quick_resolution_trampoline, art_quick_to_interpreter_bridge.\n\nBug: 8981901\n\nChange-Id: Iaa5bf862834b49cc48bce4f4ffa34a6797024e6d\n"
    },
    {
      "commit": "8d31bbd3d6536de12bc20e3d29cfe03fe848f9da",
      "tree": "2373ae08ddddaf1034623df85d647ecf9ac6c831",
      "parents": [
        "57e6d8a99058e5c74d5244b68a5f4d53526fa108"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 13 10:44:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 17:01:11 2013 -0700"
      },
      "message": "Throw IOException at source of failing to open a dex file.\n\nBefore is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\nAnd after is:\njava.lang.ClassNotFoundException: Didn\u0027t find class \"GCBench\" on path: DexPathList[[zip file \"/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\"],nativeLibraryDirectories\u003d[/disk2/dalvik-dev/out/host/linux-x86/lib]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n        Suppressed: java.io.IOException: Zip archive \u0027/disk2/dalvik-dev/out/host/linux-x86/framework/GCBench.jar\u0027 doesn\u0027t contain classes.dex\n                at dalvik.system.DexFile.openDexFile(Native Method)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:80)\n                at dalvik.system.DexFile.\u003cinit\u003e(DexFile.java:59)\n                at dalvik.system.DexPathList.loadDexFile(DexPathList.java:268)\n                at dalvik.system.DexPathList.makeDexElements(DexPathList.java:235)\n                at dalvik.system.DexPathList.\u003cinit\u003e(DexPathList.java:113)\n                at dalvik.system.BaseDexClassLoader.\u003cinit\u003e(BaseDexClassLoader.java:48)\n                at dalvik.system.PathClassLoader.\u003cinit\u003e(PathClassLoader.java:38)\n                at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:128)\n                at java.lang.ClassLoader.access$000(ClassLoader.java:65)\n                at java.lang.ClassLoader$SystemClassLoader.\u003cclinit\u003e(ClassLoader.java:81)\n                at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:137)\n        Suppressed: java.lang.ClassNotFoundException: GCBench\n                at java.lang.Class.classForName(Native Method)\n                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n                ... 1 more\n        Caused by: java.lang.NoClassDefFoundError: Class \"LGCBench;\" not found\n                ... 5 more\n\nAlso, move dex file verifier messages out of logs.\nIn the process the ClassLinker::dex_lock_ needed tidying to cover a smaller\nscope. Bug 11301553.\n\nChange-Id: I80058652e11e7ea63457cc01a0cb48afe1c15543\n"
    },
    {
      "commit": "57e6d8a99058e5c74d5244b68a5f4d53526fa108",
      "tree": "bca484bbb16e9222a30337fa1c094b5b985df23c",
      "parents": [
        "4e6274692288d3e04b91e1319b0b48fc9d5b6deb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 20 22:53:26 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 20 22:53:26 2013 -0700"
      },
      "message": "Tracking change to InternTable::VisitRoots\n\nChange-Id: I260e8f07ae4c4dde048a1ad4bb6208624af965e9\n"
    },
    {
      "commit": "4e6274692288d3e04b91e1319b0b48fc9d5b6deb",
      "tree": "ab356d25b69c9a87b9719a510770e2757174538e",
      "parents": [
        "77a41a69201579792397ba33bc93f5f5a77da981",
        "5d79c5deba3fa27825a2d5a399713b9490f5ca28"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 20 21:44:11 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 20 21:44:11 2013 -0700"
      },
      "message": "resolved conflicts for merge of 5d79c5de to dalvik-dev\n\nChange-Id: I0afb78246053c5adf4b5ed4a062c9e0cfda8d398\n"
    },
    {
      "commit": "5d79c5deba3fa27825a2d5a399713b9490f5ca28",
      "tree": "7e96cad9f533c880693b9eb04abc04a9e1947e4e",
      "parents": [
        "77129ff50fc0234b62684e556d2c0bcb86123e80",
        "e810452722ac83b294d1f7aa80bdd88e547d5af0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 21 04:40:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 21 04:40:15 2013 +0000"
      },
      "message": "Merge \"Preload DexCaches\""
    },
    {
      "commit": "e810452722ac83b294d1f7aa80bdd88e547d5af0",
      "tree": "6000d7851d7e60936a2ec6e7ef6ca935bc374832",
      "parents": [
        "67fe2b41a6afccf6ab1a58879eae3e0e8f3d6c7a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 15 21:56:36 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 20 21:38:53 2013 -0700"
      },
      "message": "Preload DexCaches\n\nBug: 11045348\nChange-Id: I6f9c0d11613b6b4933a04ae23dbf4bc7879cea65\n"
    },
    {
      "commit": "77a41a69201579792397ba33bc93f5f5a77da981",
      "tree": "c91b6c3d9b53659083c32e47ffc4d57c938a56b6",
      "parents": [
        "26425c2fee354cd04658b1f70e6e7c4825801220",
        "c765c9c7c1a64854ac026a71b7ae8b2f4790f21e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 01:58:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 21 01:58:14 2013 +0000"
      },
      "message": "Merge \"Build fix.\" into dalvik-dev"
    },
    {
      "commit": "c765c9c7c1a64854ac026a71b7ae8b2f4790f21e",
      "tree": "5f31b9c3710dd78b3ab77c5494f59a77b721da68",
      "parents": [
        "1eb512d33f94d1dd7ea38263307ba0f7a0dfa653"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 20 18:56:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 20 18:56:20 2013 -0700"
      },
      "message": "Build fix.\n\nAdd file missed in commit 1eb512d33f94d1dd7ea38263307ba0f7a0dfa653.\n\nChange-Id: Id3e13d8f302502400543cd47e8452fcfdd98ea4d\n"
    },
    {
      "commit": "26425c2fee354cd04658b1f70e6e7c4825801220",
      "tree": "83f6e9dd80b43cf1f7b3619a581383de0442224b",
      "parents": [
        "eb0df290872575e583a216602411a494d5ad4eac",
        "1eb512d33f94d1dd7ea38263307ba0f7a0dfa653"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 21 01:15:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 21 01:15:43 2013 +0000"
      },
      "message": "Merge \"Fast JNI support.\" into dalvik-dev"
    },
    {
      "commit": "1eb512d33f94d1dd7ea38263307ba0f7a0dfa653",
      "tree": "b4d4d9b16013ab90fb4b40d23013d7ef44bb5852",
      "parents": [
        "b917ea1a62aa0ab8eca3f689ef64b5be34e11abb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 18 15:42:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 20 14:55:26 2013 -0700"
      },
      "message": "Fast JNI support.\n\nUse a modifier to signal a native method is a fast JNI method. If the\nmodifier is set then don\u0027t perform runnable transitions.\n\nChange-Id: I7835b4d837bfdd1cb8e2d54b919c0d5e6cf90499\n"
    },
    {
      "commit": "eb0df290872575e583a216602411a494d5ad4eac",
      "tree": "849c46cd1ab9b2b800cc3ce7e2393d0f076409cb",
      "parents": [
        "b917ea1a62aa0ab8eca3f689ef64b5be34e11abb",
        "77129ff50fc0234b62684e556d2c0bcb86123e80"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 18 13:15:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 13:15:46 2013 -0700"
      },
      "message": "am 77129ff5: Remove kNoCopyMagic.\n\n* commit \u002777129ff50fc0234b62684e556d2c0bcb86123e80\u0027:\n  Remove kNoCopyMagic.\n"
    },
    {
      "commit": "77129ff50fc0234b62684e556d2c0bcb86123e80",
      "tree": "74b09bd465730c3a5e88576588df4e73099ebdac",
      "parents": [
        "64e63d6fa55df6fd5c728f3dfc223610136b5dcb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 18 11:36:46 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 18 11:37:10 2013 -0700"
      },
      "message": "Remove kNoCopyMagic.\n\nWas needed by jniGetNonMovableArrayElements which is now removed.\n\nChange-Id: Ie71eda5c5c3643c12db07d249597dbb2df41e88e\n"
    },
    {
      "commit": "2c88b38ec22278c325c2917fdc60f0674e8b7976",
      "tree": "8179daf7af605b98b13f37d6a88f2c2f27b507b0",
      "parents": [
        "f6e4a59cf58471ba69b0eafb34b3a43b2b95caa1"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Oct 18 10:35:39 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Oct 18 10:38:13 2013 +0200"
      },
      "message": "Make goto-based interpreter the default interpreter.\n\nChange-Id: Id21b57893864a72b77a78ef7df874c2c06209dc9\n"
    },
    {
      "commit": "f6e4a59cf58471ba69b0eafb34b3a43b2b95caa1",
      "tree": "ca1f63c18fd92a085c1456174494b01bf7dc5787",
      "parents": [
        "6cddafbdd4b092565664195a25256b907f5d2ccd",
        "ee1997a3b83334985e757f369c09e111b121661b"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Oct 17 15:10:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 17 15:10:53 2013 +0000"
      },
      "message": "Merge \"Improve interpreter handler table management.\" into dalvik-dev"
    },
    {
      "commit": "ee1997a3b83334985e757f369c09e111b121661b",
      "tree": "8745229cde52990208b27af54d7e80ea2fc274c4",
      "parents": [
        "9f69b62e6b009b29e6420c49e7444e91466a6a33"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Sep 19 14:47:09 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Oct 17 11:15:43 2013 +0200"
      },
      "message": "Improve interpreter handler table management.\n\nWe still have two handlers table:\n- the \"main\" table which holds execution handlers of each instruction,\n- the \"alternative\" table which holds handlers supporting instrumentation\nbefore jumping to the corresponding instruction handler from the \"main\" table.\n\nInstrumentation holds the index of the handler table the interpreter must use.\nThis index is represented by the InterpreterHandlerTable enum and is stored in\nthe Instrumentation::interpreter_handler_table_ field.\n\nInterpreter\u0027s current handler table update happens:\n- on backward branch\n- after invoke\n- when throwing exception.\nIn the case of the backward branch and exception, we only update the table if\nany thread\u0027s flags is set. This allows to only do one test for handling thread\nsuspension and handler table update.\n\nThis CL also removes the local variable \"instrumentation\". Every handler which\nneeds it will get it from Runtime::Current()-\u003eGetInstrumentation().\n\nChange-Id: Id886ea7ebf3dac1285f0ca701c098aee7ebaab8d\n"
    },
    {
      "commit": "6cddafbdd4b092565664195a25256b907f5d2ccd",
      "tree": "7b13e75617fa185aeb2a3e7b83fdc7c65e1dbdd1",
      "parents": [
        "ba5352f8393a9e4fdc06c6b63e57fc241a9770c1",
        "67fe2b41a6afccf6ab1a58879eae3e0e8f3d6c7a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:42:50 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 19:42:50 2013 -0700"
      },
      "message": "am 67fe2b41: Fix backwards check in CheckStaticMethod\n\n* commit \u002767fe2b41a6afccf6ab1a58879eae3e0e8f3d6c7a\u0027:\n  Fix backwards check in CheckStaticMethod\n"
    },
    {
      "commit": "ba5352f8393a9e4fdc06c6b63e57fc241a9770c1",
      "tree": "1518d384958b7bd3b07d5934e7ad88e9d45e2bcb",
      "parents": [
        "8348939bbb6aa582a8abb33189e452354e597026",
        "19a083603128c2cded84f0e5ad59db2044b1d6b6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:34:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 19:34:58 2013 -0700"
      },
      "message": "am 19a08360: Fix dumpsys meminfo for art\n\n* commit \u002719a083603128c2cded84f0e5ad59db2044b1d6b6\u0027:\n  Fix dumpsys meminfo for art\n"
    },
    {
      "commit": "67fe2b41a6afccf6ab1a58879eae3e0e8f3d6c7a",
      "tree": "2ef8c68d3a1524bf6249d96714515698e6b1a977",
      "parents": [
        "19a083603128c2cded84f0e5ad59db2044b1d6b6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 15 18:51:42 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:33:27 2013 -0700"
      },
      "message": "Fix backwards check in CheckStaticMethod\n\nBug: 11243757\nChange-Id: I559d1163ce72ab7831bd328c621519acb72975e0\n"
    },
    {
      "commit": "19a083603128c2cded84f0e5ad59db2044b1d6b6",
      "tree": "9674ec8c522b82f9221394c5c3164e3ac6589826",
      "parents": [
        "8293f74d1232775b9f94b5a2381bfefe856d0ba5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 14:37:22 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 16 19:22:24 2013 -0700"
      },
      "message": "Fix dumpsys meminfo for art\n\nBug: 10112253\n\n(cherry picked from commit fb2f70c7678d33c2027cdd0285d8b5421876e6aa)\n\nChange-Id: I149c30242f3c9ef1f67b95e26731c2505e840171\n"
    },
    {
      "commit": "2a6c7b7c21adcd4493542604305585b852ccf554",
      "tree": "233e08d8d022536d02c136e41c23b2fabf645d72",
      "parents": [
        "dd1b9a2be0dac835c6acbcb287ce3051cead755e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 16 11:16:33 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 16 12:01:31 2013 -0700"
      },
      "message": "Restore callee save registers.\n\nThe callee saves weren\u0027t all being restored as an optimiation, but\nthis breaks compaction if register promotion is enabled. The reason\nfor this is that these registers may contain references which the\nGC will update.\n\nChange-Id: I810f56b4ed1f92c632155e30c0838269cb95f3c5\n"
    },
    {
      "commit": "ed9bd3ac20c6d841ff0c3f9920ea8e02554a1c4e",
      "tree": "f5a38a81711f845f12348ab1281bcd3a04407bae",
      "parents": [
        "773aab1e8992b2834153eb23c976a4eb0da51a71",
        "921270a3c925a88e813f65edebe37076609a3443"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 15 19:08:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 15 19:08:58 2013 -0700"
      },
      "message": "am 921270a3: am 8ab30e0c: am 31b9d664: Hold proxy classes live in class linker.\n\n* commit \u0027921270a3c925a88e813f65edebe37076609a3443\u0027:\n  Hold proxy classes live in class linker.\n"
    },
    {
      "commit": "921270a3c925a88e813f65edebe37076609a3443",
      "tree": "553aeb7c9b2f743c142851218bd0eb23afa6f266",
      "parents": [
        "b926b3c6821726bf24245478cf24788c57910f0c",
        "8ab30e0cee32a012a36dc0b57b8c6f036df986dd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 15 19:06:18 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 15 19:06:18 2013 -0700"
      },
      "message": "am 8ab30e0c: am 31b9d664: Hold proxy classes live in class linker.\n\n* commit \u00278ab30e0cee32a012a36dc0b57b8c6f036df986dd\u0027:\n  Hold proxy classes live in class linker.\n"
    },
    {
      "commit": "31b9d6644cce958ddde939e8c26a08e3f704e3df",
      "tree": "f6182da0b1d99645f7ead50df30ebf8448ad0164",
      "parents": [
        "ce88853ab316c70ef7b598978a3609611db60552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 14 11:53:12 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 15 10:44:14 2013 -0700"
      },
      "message": "Hold proxy classes live in class linker.\n\nWe currently assume that class loaders hold proxy classes live, but\nthis is not always the case (e.g. class loader gets freeed). This\nwas resulting in a bug where we were freeing a class when there\nwas still a live object referencing it.\n\nBug: 11141694\nChange-Id: I318e9fee41c86b7790431d09ba5e83633fab547b\n"
    },
    {
      "commit": "c353e515f940263a43cb0247d50a5533c34826d9",
      "tree": "8b64b88c537a6adacba6d30b70b9bab8bed44478",
      "parents": [
        "775c496f989f0e37d2e9a43274c0b55f201b4116",
        "13c479e7e9b62115fe0409e5273c1e976a1c09f9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 11 16:07:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 11 16:07:48 2013 +0000"
      },
      "message": "Merge \"Notify doesn\u0027t inflate, rename helper.\" into dalvik-dev"
    },
    {
      "commit": "13c479e7e9b62115fe0409e5273c1e976a1c09f9",
      "tree": "2c3fa2fd752f8e80ea888887c4ef46fd00bdb696",
      "parents": [
        "9822c33a66157b7a4c96222befb0848e204dcc5b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 11 07:59:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 11 07:59:01 2013 -0700"
      },
      "message": "Notify doesn\u0027t inflate, rename helper.\n\nChange-Id: I85c93b522478b3116a66630856a2370ec0fda490\n"
    },
    {
      "commit": "775c496f989f0e37d2e9a43274c0b55f201b4116",
      "tree": "edfd801b7081aa06016b9a16517b09653dc849b2",
      "parents": [
        "73fd3195bd1f8af54f5a6273775186974078068c",
        "b926b3c6821726bf24245478cf24788c57910f0c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 11 00:17:42 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 11 00:17:42 2013 -0700"
      },
      "message": "resolved conflicts for merge of b926b3c6 to dalvik-dev\n\nChange-Id: Ic56131b49ddfa1ffbc9b50f15e79a0210bd07a41\n"
    },
    {
      "commit": "b926b3c6821726bf24245478cf24788c57910f0c",
      "tree": "9c0a18434a11c486ad984367ba8aab0a35abb4a9",
      "parents": [
        "5d7cb3493e8f3552f42f54d143e130f4c10c7b98",
        "920d7fd575cc42b11b278f6bb10760f291db7e38"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 11 00:11:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 00:11:34 2013 -0700"
      },
      "message": "am 920d7fd5: am ce88853a: Have JNI FindClass fall back to system ClassLoader Bug: 10994325\n\n* commit \u0027920d7fd575cc42b11b278f6bb10760f291db7e38\u0027:\n  Have JNI FindClass fall back to system ClassLoader Bug: 10994325\n"
    },
    {
      "commit": "73fd3195bd1f8af54f5a6273775186974078068c",
      "tree": "ea76a5334101b79eb024ea5e35b329ed65e9df78",
      "parents": [
        "9822c33a66157b7a4c96222befb0848e204dcc5b",
        "5d7cb3493e8f3552f42f54d143e130f4c10c7b98"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 19:30:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 19:30:04 2013 -0700"
      },
      "message": "am 5d7cb349: am 3a50fe88: am 3a22361a: Validate ELF file segment lengths against file length when loading\n\n* commit \u00275d7cb3493e8f3552f42f54d143e130f4c10c7b98\u0027:\n  Validate ELF file segment lengths against file length when loading\n"
    },
    {
      "commit": "5d7cb3493e8f3552f42f54d143e130f4c10c7b98",
      "tree": "cc82fecf80641df416b9e5d4dbb68e8a82b80134",
      "parents": [
        "ed51dca05ca81dc753d86f26c3b372a6a87f5260",
        "3a50fe88c4a2ace9892a4ff3579cc9ca39ef8c30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 19:26:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 19:26:28 2013 -0700"
      },
      "message": "am 3a50fe88: am 3a22361a: Validate ELF file segment lengths against file length when loading\n\n* commit \u00273a50fe88c4a2ace9892a4ff3579cc9ca39ef8c30\u0027:\n  Validate ELF file segment lengths against file length when loading\n"
    },
    {
      "commit": "ce88853ab316c70ef7b598978a3609611db60552",
      "tree": "4388d3d8faa16943f9f5718a3bd74c8ef7e2df77",
      "parents": [
        "3a22361a4d7bb7ae5558640873c375692f1e242a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 00:32:58 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 17:37:23 2013 -0700"
      },
      "message": "Have JNI FindClass fall back to system ClassLoader\nBug: 10994325\n\nChange-Id: Id0a46e78eecfe8a9eb91008765c4fff48697cc58\n"
    },
    {
      "commit": "9822c33a66157b7a4c96222befb0848e204dcc5b",
      "tree": "571197915a07a99546ef07c35aebadada53a6a50",
      "parents": [
        "657d498c3e644cfae4ee25d8e04749840f137249",
        "241b5de2d3cf06868ac31f1153aa0b32ddb07b20"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 11 00:36:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 11 00:36:12 2013 +0000"
      },
      "message": "Merge \"Clinits may not have the kAccConstructor flag.\" into dalvik-dev"
    },
    {
      "commit": "241b5de2d3cf06868ac31f1153aa0b32ddb07b20",
      "tree": "6161a90ea504c3907d171f16ca7d94817bbf8b9a",
      "parents": [
        "252a00273bc945ebe4a1d77d82d085fdff2ae769"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 09 17:58:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 10 17:26:04 2013 -0700"
      },
      "message": "Clinits may not have the kAccConstructor flag.\n\nBug: 11157540\nSet the clinit access flag when we load the method and warn about badly\nformed access flags.\n\nChange-Id: I515c692095051f84f98510722ab764591185918e\n"
    },
    {
      "commit": "3a22361a4d7bb7ae5558640873c375692f1e242a",
      "tree": "3cc7ee8dd78fde8a363b4c3509a504e119231267",
      "parents": [
        "8e3fb14615f20677da8421ada131b5f2fcd8eb56"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 17:18:24 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 17:18:24 2013 -0700"
      },
      "message": "Validate ELF file segment lengths against file length when loading\n\nBug: 11152153\nChange-Id: I31047b9bb607aac478b79dea4ed9a72abe1bd775\n"
    },
    {
      "commit": "657d498c3e644cfae4ee25d8e04749840f137249",
      "tree": "76a56ad873dab4890f9c6963517c7ac731aa7658",
      "parents": [
        "fe29f369ea6dca8999cf61912c65193d60c203e6",
        "ed51dca05ca81dc753d86f26c3b372a6a87f5260"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 14:20:53 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 14:20:53 2013 -0700"
      },
      "message": "am ed51dca0: am 9fbe6cbd: am 8e3fb146: Revert \"Add Jack modifier.\"\n\n* commit \u0027ed51dca05ca81dc753d86f26c3b372a6a87f5260\u0027:\n  Revert \"Add Jack modifier.\"\n"
    },
    {
      "commit": "ed51dca05ca81dc753d86f26c3b372a6a87f5260",
      "tree": "e5c4613bb08c178a9040297091463adb86034f00",
      "parents": [
        "e3cd888a6186916a5cba72c87f959adf4ed5f933",
        "9fbe6cbd42677736afeb6eae0546d9102eb93df2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 10 14:18:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 14:18:09 2013 -0700"
      },
      "message": "am 9fbe6cbd: am 8e3fb146: Revert \"Add Jack modifier.\"\n\n* commit \u00279fbe6cbd42677736afeb6eae0546d9102eb93df2\u0027:\n  Revert \"Add Jack modifier.\"\n"
    },
    {
      "commit": "fe29f369ea6dca8999cf61912c65193d60c203e6",
      "tree": "0c57908f23cf04ab1f1315b203877a00661e3bba",
      "parents": [
        "252a00273bc945ebe4a1d77d82d085fdff2ae769",
        "be031fff278799984166ec866c2dd202447e0f23"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 10 19:47:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 10 19:47:29 2013 +0000"
      },
      "message": "Merge \"Remove four counter increments out of the allocation path.\" into dalvik-dev"
    },
    {
      "commit": "252a00273bc945ebe4a1d77d82d085fdff2ae769",
      "tree": "5c422cf5d5ccfc408a6a558af678c65a41a63f16",
      "parents": [
        "262d3e27ec512c4acb86321fc10d2f1cd11120a1",
        "74e256b8e442417d4ba2054c771c1e4f41062768"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Oct 10 07:48:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 10 07:48:18 2013 +0000"
      },
      "message": "Merge \"Add missing references.\" into dalvik-dev"
    },
    {
      "commit": "8e3fb14615f20677da8421ada131b5f2fcd8eb56",
      "tree": "a06c3cbc6d8ea544fd221765af770921fd340d77",
      "parents": [
        "31c9763a1b5f45ee51cef272244a58fb1115945a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 09 21:00:27 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 09 21:00:27 2013 -0700"
      },
      "message": "Revert \"Add Jack modifier.\"\n\nThis reverts commit 6ffd0967027c092a62d7100ca42ceded369c8ca1.\n\nChange-Id: Ia69241a5100e8f740379e2ed944279de4daaf9ed\n"
    },
    {
      "commit": "be031fff278799984166ec866c2dd202447e0f23",
      "tree": "48c60def3d4727cd5d8ba5a83b12ed27092bbb4b",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 08 16:42:37 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 09 17:29:11 2013 -0700"
      },
      "message": "Remove four counter increments out of the allocation path.\n\n- This change removes the four allocation counters (the number of\nbytes allocated, the number of objects allocated, the number of bytes\nallocated ever, the number of objects allocated ever) from the\ndlmalloc space allocation path. Now those counter values are computed\non the fly based on a combination of the two new counters that are\nincremented by the GC side (the number of bytes freed ever and the\nnumber of objects freed ever) and mspace_inspect_all() calls.\n\n- This results in a 1-2% speedup (though with some noise) in Ritz\nMemAllocTest on Nexus 4.\n\nBug: 9986565\nChange-Id: Id9a8e05a745ac1e5ea7a2b5fd9319814a9d4af13\n"
    },
    {
      "commit": "e861ebd5d9490cc86200f3859f3d36fadad4588c",
      "tree": "be9ad31a9175198758491e6bcd3eef5c252c2c38",
      "parents": [
        "d50f8c8e4456263e169c9998d3a1c3a6c5c51435"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 09 15:01:21 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 09 15:17:12 2013 -0700"
      },
      "message": "Fix interpreter bugs.\n\nThese showed up in compaction work.\n\nChange-Id: Iac8eb0a1395c25aabba9f2e0ff6b01fc6180bdca\n"
    },
    {
      "commit": "74e256b8e442417d4ba2054c771c1e4f41062768",
      "tree": "8060d58f101c7d0ea7493728c658aad7bfa535d3",
      "parents": [
        "9f69b62e6b009b29e6420c49e7444e91466a6a33"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Oct 04 10:40:37 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Oct 09 19:48:54 2013 +0200"
      },
      "message": "Add missing references.\n\nThis mainly avoids implicit copies when extracting an object from a container.\n\nChange-Id: If4d0e6153e8c2b48345fde5bb546b4c65649fcf3\n"
    },
    {
      "commit": "6bcd163d322b867578fbcfe60e4e3b247c42974b",
      "tree": "50ca85d5de030970aaced699fada2558d7f8593f",
      "parents": [
        "e73fadc7fd4082bbaed8b985dd86a794c7189f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 18:50:47 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 18:50:47 2013 -0700"
      },
      "message": "Fix exception throwing in monitor-enter for MIPS.\n\nNeed to deliver pending exception.\n\nChange-Id: I1bceb1b0d866acc7b3190e7c661993ad43fc1769\n"
    },
    {
      "commit": "a9a8254c920ce8e22210abfc16c9842ce0aea28f",
      "tree": "56614ee997940e8e3b88fef43b890e8a33e78112",
      "parents": [
        "34633b22f74393344987a50b8aaee548a9dadc18"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 04 11:17:26 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 08 15:54:54 2013 -0700"
      },
      "message": "Improve quick codegen for aput-object.\n\n1) don\u0027t type check known null.\n2) if we know types in verify don\u0027t check at runtime.\n3) if we\u0027re runtime checking then move all the code out-of-line.\n\nAlso, don\u0027t set up a callee-save frame for check-cast, do an instance-of test\nthen throw an exception if that fails.\nTidy quick entry point of Ldivmod to Lmod which it is on x86 and mips.\nFix monitor-enter/exit NPE for MIPS.\nFix benign bug in mirror::Class::CannotBeAssignedFromOtherTypes, a byte[]\ncannot be assigned to from other types.\n\nChange-Id: I9cb3859ec70cca71ed79331ec8df5bec969d6745\n"
    },
    {
      "commit": "34633b22f74393344987a50b8aaee548a9dadc18",
      "tree": "f4df741c3563b1299781a5bfe32bea844cf619f2",
      "parents": [
        "f1603c2d1c9da70a8e2e4d6af8cf62776ce6b035",
        "5ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 17:43:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 17:43:55 2013 -0700"
      },
      "message": "am 5ce6f04f: am 3057d341: am a6b22c5b: Verifier allows arguments of integral types to be interchangeable.\n\n* commit \u00275ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157\u0027:\n  Verifier allows arguments of integral types to be interchangeable.\n"
    },
    {
      "commit": "5ce6f04f4ae2ea3a105a2bf77cc3ef57c856b157",
      "tree": "b4f99ff0c77989d3da6ed4f34663afc9b8a2fba8",
      "parents": [
        "bf1f0cdc4f4601abf281921d130bd4ff036af985",
        "3057d341c253070621075c9bea8e1ba56c1ccf36"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 17:37:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 17:37:24 2013 -0700"
      },
      "message": "am 3057d341: am a6b22c5b: Verifier allows arguments of integral types to be interchangeable.\n\n* commit \u00273057d341c253070621075c9bea8e1ba56c1ccf36\u0027:\n  Verifier allows arguments of integral types to be interchangeable.\n"
    },
    {
      "commit": "a6b22c5be364a4ea926bfd2d0ea6169b22bdd10b",
      "tree": "cae85ffc74f27444b55ed27a049ad27fb7837010",
      "parents": [
        "756ee4e090bc1e1812b41fb7b4661df601a32ef9"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 14:33:22 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 04 16:07:13 2013 -0700"
      },
      "message": "Verifier allows arguments of integral types to be interchangeable.\n\nThis fixes a bug where code was passing an int into a method with a\nbyte argument. The RI allows this, but the verifier was rejecting it.\n\nBug: 11033423\nChange-Id: I2a6af3bbbc6e9288fc000f711ae1337ab5786d1a\n"
    },
    {
      "commit": "f1603c2d1c9da70a8e2e4d6af8cf62776ce6b035",
      "tree": "1dad6dd312e9d8fbb87517f5855ef614ed974229",
      "parents": [
        "44d1f9bedd5cc8af795aa3b8a41ef848798622de",
        "bf1f0cdc4f4601abf281921d130bd4ff036af985"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:24 2013 -0700"
      },
      "message": "am bf1f0cdc: am 7ba7936d: am 756ee4e0: Find OatDexFile by DexFile name and checksum, not just checksum\n\n* commit \u0027bf1f0cdc4f4601abf281921d130bd4ff036af985\u0027:\n  Find OatDexFile by DexFile name and checksum, not just checksum\n"
    },
    {
      "commit": "44d1f9bedd5cc8af795aa3b8a41ef848798622de",
      "tree": "dccb7328a49fd71ac3d72d4c14b266ca804ea9f0",
      "parents": [
        "1449f1dbd4174c8bee5a3a1dbdbc256216342fce",
        "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:23 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:23 2013 -0700"
      },
      "message": "am dfb2c8bf: am 9421003a: am eeb98884: Use ElfFile instead of dlopen for Quick\n\n* commit \u0027dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999\u0027:\n  Use ElfFile instead of dlopen for Quick\n"
    },
    {
      "commit": "1449f1dbd4174c8bee5a3a1dbdbc256216342fce",
      "tree": "f7d620c48a52a08bc3f2a9da5abe4e5941b852e2",
      "parents": [
        "a9650dd5e7195aec987a69a6ebbdaf33f73a6b00",
        "80f85137828f3ada45de7beb0acd2888ed7b3b24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 12:00:22 2013 -0700"
      },
      "message": "am 80f85137: am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u002780f85137828f3ada45de7beb0acd2888ed7b3b24\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "bf1f0cdc4f4601abf281921d130bd4ff036af985",
      "tree": "44d39aae3cd8f2c05978eef2e5dd5f22d81570b4",
      "parents": [
        "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999",
        "7ba7936d212634eef17120d190dcfdfdf09f365e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:41 2013 -0700"
      },
      "message": "am 7ba7936d: am 756ee4e0: Find OatDexFile by DexFile name and checksum, not just checksum\n\n* commit \u00277ba7936d212634eef17120d190dcfdfdf09f365e\u0027:\n  Find OatDexFile by DexFile name and checksum, not just checksum\n"
    },
    {
      "commit": "dfb2c8bf5e82f70fc6407c9fbf86a0d9cfdc8999",
      "tree": "b9235efadb44cc59fdb246aa18e2474c3c53d05c",
      "parents": [
        "80f85137828f3ada45de7beb0acd2888ed7b3b24",
        "9421003ad7284063e31bd8e558c39d9901e4e801"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "message": "am 9421003a: am eeb98884: Use ElfFile instead of dlopen for Quick\n\n* commit \u00279421003ad7284063e31bd8e558c39d9901e4e801\u0027:\n  Use ElfFile instead of dlopen for Quick\n"
    },
    {
      "commit": "80f85137828f3ada45de7beb0acd2888ed7b3b24",
      "tree": "e87734c162a6da19f28edb3bd18ff7620fce747c",
      "parents": [
        "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a",
        "7c79841982c3f3c2fd7fba0d338a52a27c50bc52"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:10:40 2013 -0700"
      },
      "message": "am 7c798419: am 7c3d13ae: Use file magic to determine file type, not file extension.\n\n* commit \u00277c79841982c3f3c2fd7fba0d338a52a27c50bc52\u0027:\n  Use file magic to determine file type, not file extension.\n"
    },
    {
      "commit": "756ee4e090bc1e1812b41fb7b4661df601a32ef9",
      "tree": "b456ca4a582d5e75d20b418ab4c27ed56b46f40d",
      "parents": [
        "eeb9888421b696990f45b89286ad9d0908c70a69"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:46:12 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:14:18 2013 -0700"
      },
      "message": "Find OatDexFile by DexFile name and checksum, not just checksum\n\nBug: 10614658\nChange-Id: Ie0b5a34fd396b6299000c37909108c5e7e6ab80f\n"
    },
    {
      "commit": "eeb9888421b696990f45b89286ad9d0908c70a69",
      "tree": "b5f7c891e2e0a4600a781ea723047717afc0fc3f",
      "parents": [
        "7c3d13aebdd8611cae58a1048bffb13cbdc465cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:53:49 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:13:32 2013 -0700"
      },
      "message": "Use ElfFile instead of dlopen for Quick\n\nBug: 10614658\nChange-Id: I6a7e2cb0960a5d468a55d220c3fafa80bc239fa9\n"
    },
    {
      "commit": "7c3d13aebdd8611cae58a1048bffb13cbdc465cb",
      "tree": "23f2415bb38e77b0d53c1de06c37a133c7b08e51",
      "parents": [
        "f15242943a7a836966cd521e3095a4b731695c71"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 04 17:15:11 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 17:00:39 2013 -0700"
      },
      "message": "Use file magic to determine file type, not file extension.\n\nBug: 10614658\nChange-Id: I9156dfca78ac8cd1c62fb258825cc791629270a4\n"
    },
    {
      "commit": "9f69b62e6b009b29e6420c49e7444e91466a6a33",
      "tree": "945a8b95c9b32f76aa71b0de951cff2aa52cdc25",
      "parents": [
        "49fddff6f0e9628de419a2d911b5dcc393626f6e",
        "253ea073ec03a0be1e22df98957257594e316a39"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Oct 03 00:46:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 03 00:46:36 2013 +0000"
      },
      "message": "Merge \"Fix an Art debug build boot failure.\" into dalvik-dev"
    },
    {
      "commit": "253ea073ec03a0be1e22df98957257594e316a39",
      "tree": "804fbc5b00ef7d0b399aa70960793ce5b50eb2ae",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 02 12:44:17 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 02 13:34:17 2013 -0700"
      },
      "message": "Fix an Art debug build boot failure.\n\n(The original change is 3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5.)\n\nBug: 11003273\nBug: 9986565\nChange-Id: Iaaf6395f171eb6e6b8c99386c20c4970c53ee00d\n"
    },
    {
      "commit": "49fddff6f0e9628de419a2d911b5dcc393626f6e",
      "tree": "f2f2528acc39c7a52f0161a8c2271d6c8e2cecec",
      "parents": [
        "e8acf91ebd0ebf76535c157500c22d3dfc7a14f3",
        "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 02 10:01:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 10:01:19 2013 -0700"
      },
      "message": "am acab9fa3: am 13f4f408: am f1524294: Merge \"Fix OatFile leak causing dlopen to return stale OatFile contents\" into klp-dev\n\n* commit \u0027acab9fa3b3b45e5cd0d63d06073f6a6008eb720a\u0027:\n  Fix OatFile leak causing dlopen to return stale OatFile contents\n"
    },
    {
      "commit": "acab9fa3b3b45e5cd0d63d06073f6a6008eb720a",
      "tree": "37ac90c9212f941c49395f2dbeedbc157ff8de44",
      "parents": [
        "334d017c2c66731e545a416a76db7fcd621461e3",
        "13f4f4086874d908df417ba338460b601dd9a1be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 02 09:57:20 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 09:57:20 2013 -0700"
      },
      "message": "am 13f4f408: am f1524294: Merge \"Fix OatFile leak causing dlopen to return stale OatFile contents\" into klp-dev\n\n* commit \u002713f4f4086874d908df417ba338460b601dd9a1be\u0027:\n  Fix OatFile leak causing dlopen to return stale OatFile contents\n"
    },
    {
      "commit": "d9c4fc94fa618617f94e1de9af5f034549100753",
      "tree": "1305efbbc3d4bc306c0947bb6d4b01553667f98e",
      "parents": [
        "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 01 19:45:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 02 09:31:55 2013 -0700"
      },
      "message": "Inflate contended lock word by suspending owner.\n\nBug 6961405.\nDon\u0027t inflate monitors for Notify and NotifyAll.\nTidy lock word, handle recursive lock case alongside unlocked case and move\nassembly out of line (except for ARM quick). Also handle null in out-of-line\nassembly as the test is quick and the enter/exit code is already a safepoint.\nTo gain ownership of a monitor on behalf of another thread, monitor contenders\nmust not hold the monitor_lock_, so they wait on a condition variable.\nReduce size of per mutex contention log.\nBe consistent in calling thin lock thread ids just thread ids.\nFix potential thread death races caused by the use of FindThreadByThreadId,\nmake it invariant that returned threads are either self or suspended now.\n\nCode size reduction on ARM boot.oat 0.2%.\nOld nexus 7 speedup 0.25%, new nexus 7 speedup 1.4%, nexus 10 speedup 2.24%,\nnexus 4 speedup 2.09% on DeltaBlue.\n\nChange-Id: Id52558b914f160d9c8578fdd7fc8199a9598576a\n"
    },
    {
      "commit": "7ef126ce0593929bcf8fb73d8b1119ce3b95b3f2",
      "tree": "fc5642798c75ccb61cba12ec5e5b35432bca44d3",
      "parents": [
        "5b7d0f35e5e884f53fb4a973d13ca5c98e25951a",
        "c67148594b1580c278ae71e3ce5c6fd59bfa6bd3"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Oct 01 08:47:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 08:47:42 2013 +0000"
      },
      "message": "Merge \"Enable thread analysis on template functions.\" into dalvik-dev"
    },
    {
      "commit": "1c82982f4eab8f0e84829fec25e3f899da44e7ce",
      "tree": "56e453806661fd61a0596f9eb5027875465ff371",
      "parents": [
        "a95be97148b2b2c5095cf80edbebaa771202290e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 18:18:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 21:21:23 2013 -0700"
      },
      "message": "Early exit for static fixup if no direct methods.\n\nChange-Id: I401746e48259a98fb0c80144ff5310380889b154\n"
    },
    {
      "commit": "b00309f1aece094de16e0e542cc30cb2e27f2326",
      "tree": "527686184d3f77ca160efd7b88c4a08eb8ed7fc6",
      "parents": [
        "eb1efc4575e93543ed459c7ee5c6c36109e69b5f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:23:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:34:41 2013 -0700"
      },
      "message": "Fix OatFile leak causing dlopen to return stale OatFile contents\n\nBug: 10917637\nChange-Id: If6b7bb8dd9c7aa3d870bd43964f31512385c5d39\n"
    },
    {
      "commit": "6ea12d2011ab8b4abb5b5c06600266098d240825",
      "tree": "44c2a1c05f66d2da42263ac954cf6c04da30fcc7",
      "parents": [
        "9905e740e3eded5d2ff403f7533cb52fdfb46bc1",
        "eb1efc4575e93543ed459c7ee5c6c36109e69b5f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 30 14:16:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:16:41 2013 -0700"
      },
      "message": "am eb1efc45: MIPS fix.\n\n* commit \u0027eb1efc4575e93543ed459c7ee5c6c36109e69b5f\u0027:\n  MIPS fix.\n"
    },
    {
      "commit": "c67148594b1580c278ae71e3ce5c6fd59bfa6bd3",
      "tree": "4413606a3c8d0d8426c891574047c9256a43abda",
      "parents": [
        "a95be97148b2b2c5095cf80edbebaa771202290e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 16:42:32 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 18:17:05 2013 +0200"
      },
      "message": "Enable thread analysis on template functions.\n\nAll template functions using thread analysis must be explicitly instantiated\nwith the thread analysis attributes to enable thread analysis. We use macros\nto do this since there are many variants of a same function depending the\nnumber of template arguments.\n\nAlso add documentation of these functions.\n\nChange-Id: I3c79acc2f0a6a8dfb5c42924439145292dd68812\n"
    },
    {
      "commit": "a95be97148b2b2c5095cf80edbebaa771202290e",
      "tree": "7470422341b8cee7be9953ad1c6dd4969fef47fb",
      "parents": [
        "003d297a8760c0d00630820fce2c02730601946e",
        "9ace87b47a756d519e8897d6c1f0f4664ed82f86"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 07:18:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 07:18:26 2013 +0000"
      },
      "message": "Merge \"Optimize shadow frame initialization during invoke.\" into dalvik-dev"
    },
    {
      "commit": "9ace87b47a756d519e8897d6c1f0f4664ed82f86",
      "tree": "41e805925e7c338ddc8ae97cbc8c0f82fb316a9d",
      "parents": [
        "c61124bdeaae94f977ffc36ac69535e792c226f2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Sep 27 11:48:09 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 09:17:23 2013 +0200"
      },
      "message": "Optimize shadow frame initialization during invoke.\n\nThis CL improves the initialization of the new shadow frame (callee) from the\ncurrent shadow frame (caller) following invoke format (non-range or range).\n\nThis also removes the use of Instruction::GetArgs for non-range invoke when we\ncan go the fast route (no use of shorty). This avoids decoding arguments into\nthe stack from the instruction and then read these arguments from the stack. We\nnow do both at once. Note the slow path (doing runtime checks) is not modified\nsince it should be rarely used.\n\nPerformance improved by 3% in average on our benchmarks. Good news it is more\nimportant on benchmark doing lots of invokes:\n- Dhrystone: +11%\n- DeltaBlue: +7%\n- CaffeineMark Method: +16%\n\nBug: 10668955\nChange-Id: I5c230777b2388a78dca7b3a88189e007c1c2bb7a\n"
    },
    {
      "commit": "003d297a8760c0d00630820fce2c02730601946e",
      "tree": "ebc098952e6c96603218e1fdf982e8e52663b6de",
      "parents": [
        "65d1b22d0b02fb0111f69013163c8170e68392f1",
        "c61124bdeaae94f977ffc36ac69535e792c226f2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 07:02:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 07:02:33 2013 +0000"
      },
      "message": "Merge \"Cleanup invoke in interpreter.\" into dalvik-dev"
    },
    {
      "commit": "c61124bdeaae94f977ffc36ac69535e792c226f2",
      "tree": "41ba8619a6dea88a8c607836db21531b05a3787a",
      "parents": [
        "7541c745e00b49983f277d6b6b18bc4c174c7e39"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Sep 10 11:44:19 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Sep 30 08:57:33 2013 +0200"
      },
      "message": "Cleanup invoke in interpreter.\n\nSome cleanup in invocation stuff:\n- Get the number of invoke arguments from instruction (vA) rather than get it\nfrom its code item. This benefits to native invoke since we no longer need to\nparse the method\u0027s shorty. Also pass the low 16 bits of instructions to avoid\nfetching it twice when reading vA.\n- Remove \"is_static\" tests by taking advantage of invoke type template argument\nrather than testing method\u0027s access flags.\n- Ensure Instruction::GetArgs is inlined.\n- Check exception when initializing method\u0027s class when transitioning from\ninterpreter to compiled code (artInterpreterToCompiledCodeBridge).\n- Move UnstartedRuntimeInvoke function to interpreter_common.cc and make it\nstatic as it\u0027s only used by DoInvoke and DoInvokeVirtualQuick functions.\n- Avoid duplicating code in ShadowFrame::Create.\n\nPerformance remains the same according to benchmarks. Hopefully, this should be\naddressed in next CLs, especially by improving new shadow frame initialization.\n\nBug: 10668955\nChange-Id: I514b8f098d0ef3e35921ceb770383aac1a9c7902\n"
    },
    {
      "commit": "eb1efc4575e93543ed459c7ee5c6c36109e69b5f",
      "tree": "4966b4609f0dc5ba8921e32aa80331bf0ecd4108",
      "parents": [
        "deb43702e611d6c75b459ea352a00f5d98fc0aa9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 18:04:16 2013 +0000"
      },
      "message": "MIPS fix.\n\nBug 10094803.\nResolution stub needs to set $t9 to ensure the global pointer is calculated\ncorrectly.\nFix copy-paste error in resolution stub in function being invoked.\n\nChange-Id: I330b3052f87f47c10cbde2f7e6b271664185d7b0\n(cherry picked from commit 65d1b22d0b02fb0111f69013163c8170e68392f1)"
    },
    {
      "commit": "65d1b22d0b02fb0111f69013163c8170e68392f1",
      "tree": "7a031e64179ef59f7254be703a2e086b905528a1",
      "parents": [
        "d91d6d6a80748f277fd938a412211e5af28913b1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 27 10:59:41 2013 -0700"
      },
      "message": "MIPS fix.\n\nBug 10094803.\nResolution stub needs to set $t9 to ensure the global pointer is calculated\ncorrectly.\nFix copy-paste error in resolution stub in function being invoked.\n\nChange-Id: I330b3052f87f47c10cbde2f7e6b271664185d7b0\n"
    },
    {
      "commit": "d91d6d6a80748f277fd938a412211e5af28913b1",
      "tree": "5c45f4ae53aab3f530284a97dc328b4e38ce7c94",
      "parents": [
        "9c11b56296b8cffc94b0b854ce6cff7e014b8d57"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 25 20:26:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 26 21:08:25 2013 -0700"
      },
      "message": "Introduce Signature type to avoid string comparisons.\n\nMethod resolution currently creates strings to then compare with strings formed\nfrom methods in other dex files. The temporary strings are purely created for\nthe sake of comparisons. This change creates a new Signature type that\nrepresents a method signature but not as a string. This type supports\ncomparisons and so can be used when searching for methods in resolution.\n\nWith this change malloc is no longer the hottest method during dex2oat (now its\nmemset) and allocations during verification have been reduced. The verifier is\ncommonly what is populating the dex cache for methods and fields not declared\nin the dex file itself.\n\nChange-Id: I5ef0542823fbcae868aaa4a2457e8da7df0e9dae\n"
    },
    {
      "commit": "9c11b56296b8cffc94b0b854ce6cff7e014b8d57",
      "tree": "aa50c90aba8959732ee44b8ea94d52176904e785",
      "parents": [
        "58ff84450a28966a4d2b1f1f4cec527a6a586905",
        "530825ba92e317822116efffd470577ddfd142d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 26 22:37:45 2013 +0000"
      },
      "message": "Merge \"Make InternalStackTraceToStackTraceElementArray compaction safe.\" into dalvik-dev"
    },
    {
      "commit": "58ff84450a28966a4d2b1f1f4cec527a6a586905",
      "tree": "70217a42f68c8d9d870e291c1d17c6e358b76468",
      "parents": [
        "7287601984059902aebde00ea4e077ead42fb149",
        "07d447bebe6cc358e05ef041db84a5095a69e4f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 22:34:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 26 22:34:08 2013 +0000"
      },
      "message": "Merge \"Make artQuickResolutionTrampoline fix up references after GC points.\" into dalvik-dev"
    },
    {
      "commit": "7287601984059902aebde00ea4e077ead42fb149",
      "tree": "0e447ee15b42954081f02eda7899935d294a41a1",
      "parents": [
        "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 15:14:49 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 26 15:14:49 2013 -0700"
      },
      "message": "Fix a portable build breakage\n\n  http://android-build/builds/git_dalvik-dev-linux-mysid-userdebug_portable/848398/logs/build.log\n\n due to\n\n  https://googleplex-android.googlesource.com/platform/art/+/3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5\n\nChange-Id: I89ef5f77dfc640efbe3378549e22bb699da3149f\n"
    },
    {
      "commit": "07d447bebe6cc358e05ef041db84a5095a69e4f1",
      "tree": "0ed9d07628e7fe07b49261c9562200a3fd18d6ba",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 11:57:43 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 26 13:20:37 2013 -0700"
      },
      "message": "Make artQuickResolutionTrampoline fix up references after GC points.\n\nRequired for compaction.\n\nBug: 8981901\nChange-Id: I53a5f942af2a4428fe3548ba1856967632c2df9f\n"
    },
    {
      "commit": "3b4c18933c24b8a33f38573c2ebcdb9aa16efeb5",
      "tree": "5298ccd9c1f1f6b329c0cb6cefac6a8df43dd633",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 12 21:33:12 2013 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 25 20:28:49 2013 -0700"
      },
      "message": "Split the allocation path into \u0027instrumented\u0027 and \u0027uninstrumented\u0027\nones.\n\nThe instrumented path is equivalent to the existing allocation path\nthat checks for three instrumentation mechanisms (the debugger\nallocation tracking, the runtime allocation stats collection, and\nvalgrind) for every allocation. The uinstrumented path does not\nperform these checks. We use the uninstrumented path by default and\nenable the instrumented path only when any of the three mechanisms is\nenabled. The uninstrumented version of Heap::AllocObject() is inlined.\n\nThis change improves the Ritz MemAllocTest by ~4% on Nexus 4 and ~3%\non Host/x86.\n\nBug: 9986565\nChange-Id: I3e68dfff6789d77bbdcea98457b694e1b5fcef5f\n"
    },
    {
      "commit": "530825ba92e317822116efffd470577ddfd142d4",
      "tree": "b8b2d8966a21a9ce630dd0e57949326e79a56bfc",
      "parents": [
        "f7e090ebcded6d6693894c018d89c4add79253ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 17:56:49 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 18:01:14 2013 -0700"
      },
      "message": "Make InternalStackTraceToStackTraceElementArray compaction safe.\n\nAdded more SOA decodes.\n\nChange-Id: Idbfd546467582a848be91c358c6926a6e472fbff\n"
    },
    {
      "commit": "f7e090ebcded6d6693894c018d89c4add79253ff",
      "tree": "8a7065bde4a404dfafc5b41a034eeb3f2b62bd3a",
      "parents": [
        "7541c745e00b49983f277d6b6b18bc4c174c7e39",
        "11409ae81a3eaf84d7fd2b3c85b8b06d2bae27f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 21:05:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 25 21:05:13 2013 +0000"
      },
      "message": "Merge \"Refactor and improve mod-union tables.\" into dalvik-dev"
    },
    {
      "commit": "11409ae81a3eaf84d7fd2b3c85b8b06d2bae27f0",
      "tree": "a6f10a6360c4ed8012e5893264e68ac4869fde90",
      "parents": [
        "b605a4f9a8797046ea1aa05f3405a77fb9a80a76"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 23 11:49:36 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 25 13:55:02 2013 -0700"
      },
      "message": "Refactor and improve mod-union tables.\n\nAllow support for adding more mod union tables, reduces the amount\nof baked in logic. Adds support for updating mod union table references\nfrom compaction (not for ReferenceCache table yet).\n\nChange-Id: I1beeda00839ed86ef0e853beff5ce10d0ab2b9d1\n"
    },
    {
      "commit": "d0fbd85a82a266c21d6b72c61d6dc098ec362de7",
      "tree": "14f431e4bd889b6c7ec6b29322594786828d3bb1",
      "parents": [
        "fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 18:17:04 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 21:17:06 2013 -0700"
      },
      "message": "Reduce memory allocation in verifier.\n\nRemove the use of a map PcToRegisterLineTable for efficiency (matches Dalvik).\nPlace the register line register values inside the RegisterLine, saves a\nsecondary allocation and indirection.\nAvoid the use of a deque in RegisterLine to avoid an allocation.\nSimplify the SirtRef destructor in non-debug builds.\nSaves \u003e100ms from the two threaded compile time of ThinkFree on host.\n\nChange-Id: I2dacba61dbaf284ca02d4c194413e1da221dcb76\n"
    },
    {
      "commit": "9905e740e3eded5d2ff403f7533cb52fdfb46bc1",
      "tree": "56c8479177bf0ff7ead5e04181fbe755f580ec3c",
      "parents": [
        "91f98d8bab30f3d32c71efccd9b791f734b24c2e",
        "b08e3a876366110d0d4214a2cec859c806e86781"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 17:49:30 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 17:49:30 2013 -0700"
      },
      "message": "am b08e3a87: am deb43702: Fix handling of unresolved references in verifier.\n\n* commit \u0027b08e3a876366110d0d4214a2cec859c806e86781\u0027:\n  Fix handling of unresolved references in verifier.\n"
    },
    {
      "commit": "fc0e94bed3f88ed7e50854fd8dfaf5dcb345250f",
      "tree": "5cfbe05084351576e9659cb8f7b66dcb6163a37b",
      "parents": [
        "576fe9d4181c749aa510e32d2521ed4192bdfda0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 23 23:51:32 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 24 17:07:24 2013 -0700"
      },
      "message": "StringPiece clean up.\n\nProfile guided clean up.\nTry to avoid creating StringPieces with the contents of a dex file where\nthe length is known.\nTry to avoid RegTypeCache::FromDescriptor when there\u0027s a class available.\nMake ConstantType::ConstantValue inlinable.\nSaving of about 50ms from a 2 threaded ThinkFree compile on host.\n\nChange-Id: I47a12c3c76f46e2c9805be1c3a3e3870fe1f5d85\n"
    },
    {
      "commit": "deb43702e611d6c75b459ea352a00f5d98fc0aa9",
      "tree": "3a85938cf895bbdf3082eb5cf6a235514818a2ec",
      "parents": [
        "abcf7ae8deba4ee81dec44f3d1a2f0ecaf032859"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 03 19:07:00 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 16:26:02 2013 -0700"
      },
      "message": "Fix handling of unresolved references in verifier.\n\nThe verifier should not treat use of unresolved references as a reason to reject\nthe entire class. Instead, the verifier treats the instruction as a throw. If\nthat class is run, the interpreter with extra checks will throw an exception.\n\nBug: 10457426\n\n(cherry picked from commit a3faaf4bece7f42529c013fe87bd41de59798656)\n\nChange-Id: I161bfdbfa116890ffa9e7a593c756229bd939eb4\n"
    },
    {
      "commit": "576fe9d4181c749aa510e32d2521ed4192bdfda0",
      "tree": "482bd8c6db13c3ad6037604dda1afb0baae96026",
      "parents": [
        "2de3587a557b0dcb7ac149b3e01e61dc027e5ed0",
        "a3faaf4bece7f42529c013fe87bd41de59798656"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 22:19:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 24 22:19:43 2013 +0000"
      },
      "message": "Merge \"Fix handling of unresolved references in verifier.\" into dalvik-dev"
    },
    {
      "commit": "a3faaf4bece7f42529c013fe87bd41de59798656",
      "tree": "933e312a4aa4d69b2d7da7eda4d592419cec4729",
      "parents": [
        "a9a624b2be2180e6bd33f02c89fb8521376a2e8c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 03 19:07:00 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Sep 24 15:18:36 2013 -0700"
      },
      "message": "Fix handling of unresolved references in verifier.\n\nThe verifier should not treat use of unresolved references as a reason to reject\nthe entire class. Instead, the verifier treats the instruction as a throw. If\nthat class is run, the interpreter with extra checks will throw an exception.\n\nBug: 10457426\n\nChange-Id: I3799da843a7ffb3519bbf6dc13a6276519d9cb95\n"
    },
    {
      "commit": "2de3587a557b0dcb7ac149b3e01e61dc027e5ed0",
      "tree": "e8c9554abed3f03e28d65b2ede8e7e79b89dc06a",
      "parents": [
        "4ce9e68bd648551379648df34d2267cd3d75e46c",
        "91f98d8bab30f3d32c71efccd9b791f734b24c2e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 24 10:29:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:29:37 2013 -0700"
      },
      "message": "am 91f98d8b: am 15ae8191: am abcf7ae8: Fix overly restrictive assert\n\n* commit \u002791f98d8bab30f3d32c71efccd9b791f734b24c2e\u0027:\n  Fix overly restrictive assert\n"
    }
  ],
  "next": "4ce9e68bd648551379648df34d2267cd3d75e46c"
}
