)]}'
{
  "log": [
    {
      "commit": "169722b0d6c680db33a6a2d602735a09db83e71d",
      "tree": "a616720d9e00f7e078d0689b616b29b39ac751a9",
      "parents": [
        "43e07b6b16d3a84014bb4747211635b9ef3d1801"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 14:01:59 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 22:03:36 2017 +0000"
      },
      "message": "Add hooks to avoid collecting code for run-tests.\n\nensureJitCompiled ensures a method gets compiled, but does\nnot prevent it from being GC\u0027ed. Add a hammer hook to avoid\ndoing any JIT code cache GC.\n\ntest: test-art-host with gcstress and jit.\nChange-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf\n"
    },
    {
      "commit": "4e03c5286321f5285369c9e2bd3813288f5cf2dc",
      "tree": "2a56b3d2606c081e7d27464d761b3b849a811dc2",
      "parents": [
        "49a694b84b42df28ee08f97a3660bda3a2cb264a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jan 14 01:48:01 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 17 10:15:36 2017 -0800"
      },
      "message": "Revert \"Revert \"Try really hard for JIT in test 916\"\"\n\nWe were looping forever waiting for the entrypoint to be switched\ndespite the JIT being disabled by the tracing instrumentation.\n\nThis reverts commit ca4feac9484464a858990ca588398fceead55354.\n\nReason for revert: Problem with ensureJitCompiled fixed\n\nTest: ART_TEST_TRACE\u003dtrue        \\\n      ART_TEST_OPTIMIZING\u003dfalse  \\\n      ART_TEST_INTERPRETER\u003dtrue  \\\n      ART_USE_READ_BARRIER\u003dfalse \\\n      mma -j40 test-art-host-run-test-916-obsolete-jit\n\nChange-Id: I11f1e3f6cf65f90509a1ba66625a7988f3d94af6\n"
    },
    {
      "commit": "4cddd03950bb21e950afd72cad87e963bc53ea10",
      "tree": "d7dc428c8a0d451d57460ba813a1560dafe77cac",
      "parents": [
        "dd1dd32c87ee88b3810191dcaac94f094a9a856f",
        "ca4feac9484464a858990ca588398fceead55354"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jan 14 01:46:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 14 01:46:29 2017 +0000"
      },
      "message": "Merge \"Revert \"Try really hard for JIT in test 916\"\""
    },
    {
      "commit": "ca4feac9484464a858990ca588398fceead55354",
      "tree": "7dca9967f22efb10ef1807e98065b87ca5ec85d0",
      "parents": [
        "a64fa43345124eb7891b9d6a6258f6ed0cbd1504"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 22:47:50 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 22:49:33 2017 +0000"
      },
      "message": "Revert \"Try really hard for JIT in test 916\"\n\nThis reverts commit a64fa43345124eb7891b9d6a6258f6ed0cbd1504.\n\nReason for revert:  makes test-art-host-run-test-debug-prebuild-interpreter-relocate-trace-cms-checkjni-picimage-npictest-ndebuggable-916-obsolete-jit fail\n\nTest: Treehugger\nChange-Id: Idce6fc9310fe85ae62dd19da1e978299951c19ee\n"
    },
    {
      "commit": "8799ea0a82bbe7d4fbd2375ae20fa8a720c887d4",
      "tree": "81a88fa015b8c31cffe3122a4cfaedc8280320f7",
      "parents": [
        "2f12c6581b334e81949016cf262f7ae1dd0737ea",
        "a64fa43345124eb7891b9d6a6258f6ed0cbd1504"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 13 19:53:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 13 19:53:13 2017 +0000"
      },
      "message": "Merge \"Try really hard for JIT in test 916\""
    },
    {
      "commit": "a64fa43345124eb7891b9d6a6258f6ed0cbd1504",
      "tree": "2fb76004760fe9e8894c533d154a373b9dd958db",
      "parents": [
        "20e9474df95e099f58b5310188fea3631e9f7c36"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 09 13:31:06 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 13 08:34:05 2017 -0800"
      },
      "message": "Try really hard for JIT in test 916\n\nSometimes we would fail to jit stuff due to high load. This makes us\ntry even harder to JIT so we won\u0027t fail in these scenarios.\n\nTest: mma -j40 test-art-host\nTest: stress --cpu 60 \u0026; while ./test/run-test --host 916; do ; done\n\nChange-Id: Ic944582bf021f119b8bc3f135af508ed8a8586c4\n"
    },
    {
      "commit": "7e25123127b0b02678a5101d0faa18b65895d723",
      "tree": "5df01b0d066df2ab177af77e8416c13cdc9e97d9",
      "parents": [
        "6f4b55bd48f6d1dd8e92f147b6c52e21a18c62f9",
        "d5f56272d5b87d76b5fc6fca3d5ab65ed543acb6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 13 15:10:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 13 15:10:47 2017 +0000"
      },
      "message": "Merge \"ART tests: do not retrieve OatQuickMethodHeader for bridge methods\""
    },
    {
      "commit": "dba61481035b7944173181ec9ee02aea41dd0e29",
      "tree": "8629775e657cc8968e2f8fa2af6256c7a58c7dd4",
      "parents": [
        "cb2ce333ee2d1053919fe0acc390369bea3ad77e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 08:20:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 21 11:43:14 2016 -0800"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\"\n\nA GetDeclaringClass()-\u003eGetDexCache() got inserted during the\nmerge/review process meaning that we would try to access incorrect\ndex-cache in obsolete methods in some situations.\n\nAlso when using tracing we would loop forever (or at least until an\nOOM error) in test 916 due to tracing forcing InterpretOnly mode\nmeaning methods would never be jitted.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nThis reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.\n\nChange-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48\n"
    },
    {
      "commit": "857f058d4b7bd07c5c99eda416ad91516a10b4da",
      "tree": "aafff6fc7ac9578955661366e779c858945ae71c",
      "parents": [
        "0966558b075b9b454e1a7864306eb206bf0c0094"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 14:36:59 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 20 16:15:24 2016 +0000"
      },
      "message": "Fix JIT crash due to unverified dead code\n\nThe JIT compiler assumes that it only gets completely verified code. To\nwork around potential unverified dead code it uses kAccDontBotherCompile\nflag set during runtime verification. However, if a class is verified\nduring a prior dex2oat the flag is not persisted and JIT happily things\nthat everything is ok.\n\nThe simplest fix is to mark classes with potential unverified dex code\nas verify at runtime. We only do this for apps and assume that\neverything in the boot image is well formed.\n\nTest: m test-art-host\nBug: 31000839\nChange-Id: I092d2e9553cd1c577036d78e8563a7a39d6cb7b9\n"
    },
    {
      "commit": "ad0c8bdc2c2e4d2a469455bcde7aeb5fc7482875",
      "tree": "fe5fe711a574386472408bda17b13a2ca2668c7e",
      "parents": [
        "132eb43396bdb0b9bdacf069289f019d85d358fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 19 19:31:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 19 19:31:26 2016 +0000"
      },
      "message": "Revert \"Fix JIT crash due to unverified dead code\"\n\nBroke method_verifier_test and image_test.\n\nBug: 31000839\n\nThis reverts commit 132eb43396bdb0b9bdacf069289f019d85d358fc.\n\nChange-Id: I85923e6bdb3e76f54978658aad816d4c79fc339e\n"
    },
    {
      "commit": "132eb43396bdb0b9bdacf069289f019d85d358fc",
      "tree": "097ad8979e90555fd46e49eda32fe4b0c579acfd",
      "parents": [
        "71464a10a434e5b8aac75998d08b2cdcbce57bab"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 28 20:09:56 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 19 15:36:41 2016 +0000"
      },
      "message": "Fix JIT crash due to unverified dead code\n\nThe JIT compiler assumes that it only gets completely verified code. To\nwork around potential unverified dead code it uses kAccDontBotherCompile\nflag set during runtime verification. However, if a class is verified\nduring a prior dex2oat the flag is not persisted and JIT happily things\nthat everything is ok.\n\nThe simplest fix is to mark classes with potential unverified dex code\nas verify at runtime. We only do this for apps and assume that\neverything in the boot image is well formed.\n\nTest: m test-art-host-706-jit-skip-compilation\nBug: 31000839\n\nChange-Id: Ib73de1888581bb7202474cfd7aca70af4cc2cc00\n"
    },
    {
      "commit": "51c17faee9ff0b93914ae2d308cfa24f0bc71d0a",
      "tree": "84db285eec16e04dd5c14ce3138521dfcfcf1e4b",
      "parents": [
        "3d32bf0b1e9469ffcb7fd7793d56d0193e1d5d5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 25 15:56:12 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 05 13:12:17 2016 +0000"
      },
      "message": "Create empty VerifiedMethod after vdex verification.\n\nThe compiler and quicken require the existence of a\nVerifiedMethod for compiling a method.\n\nThis fixes the regression of not doing any compilation when\npassed --input-vdex.\n\nTest: 629-vdex-speed\n\nChange-Id: Ie65578eadd09099df1c1a403d96c15e5da78a901\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "b2aaf1d63f94852960796603d6872c11eafb789f",
      "tree": "afcaf62c62d4acf920fd9b2d6bd5b344ed1ffb0a",
      "parents": [
        "ca6a71943230cd91061cfaa2bbd8f2a776a673d9",
        "44cea196f8cc18ba5c72e29754ab11bf51437e06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 01 09:11:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 01 09:11:22 2016 +0000"
      },
      "message": "Merge \"Address missed review comment.\""
    },
    {
      "commit": "44cea196f8cc18ba5c72e29754ab11bf51437e06",
      "tree": "92e908b405171b3c49a8434b2f636c3f2fe8f995",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 03 20:48:13 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 28 18:55:14 2016 +0100"
      },
      "message": "Address missed review comment.\n\nBug: 30351473\ntest: m test-art-host\n\nChange-Id: I8d0d536e9280555d156280d87055631cabf5b2b7\n"
    },
    {
      "commit": "d5f56272d5b87d76b5fc6fca3d5ab65ed543acb6",
      "tree": "9e0487c5308fa17a938cec2a6f1b864851fe1485",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Sep 28 10:38:25 2016 +0700"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 03 09:19:26 2016 +0100"
      },
      "message": "ART tests: do not retrieve OatQuickMethodHeader for bridge methods\n\nSome ART tests (e.g. 604-hot-static-interface) call\nOatQuickMethodHeader::FromEntryPoint() for a method\u0027s quick compiled\ncode entry. If the entry has not been set to a compiled code then it\ncan be set to art_quick_to_interpreter_bridge. This method does not\nhave a OatQuickMethodHeader and FromEntryPoint() must not be called.\n\nThis patch fixes ART tests to retrieve OAT header only for methods\nthat reside in the JIT code cache.\n\nChange-Id: I21105735f146e6c67c24c970a42451e3300c067c\nTest: test-art-host-run-test-debug-prebuild-jit-relocate-ntrace-cms-checkjni-picimage-npictest-ndebuggable-604-hot-static-interface32\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "3a21e386fa55a8b86dffa5250985b263fcfd2155",
      "tree": "ce6fecaae067f86e094ae7844ee5fa4ae8ee63e8",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 12:38:38 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 15:15:28 2016 +0100"
      },
      "message": "Clean up some includes.\n\nRemove some unnecessary includes from header files, replace\nothers with forward references and add includes to source\nfiles as needed. Reduce dependency on stack.h by pulling\nStackReference\u003c\u003e out to its own file.\n\nTest: m test-art-host\nChange-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2\n"
    },
    {
      "commit": "d55f4ab2e119395bbae92488707929b8075c126b",
      "tree": "4d9f823fb03f07e7172e0aae05c1820d33ef8e20",
      "parents": [
        "8055598c8dd4f3cd4d8490b5fc576161467f8bcb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 18:49:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 22:21:52 2016 +0100"
      },
      "message": "Scope the compilation and Create the ProfilingInfo in the loop.\n\nWe need to release the mutator lock to avoid being in a deadlock.\n\nAlso allocating the profiling just before compiling in the unlickely\nevent that it got collected after releasing the mutator lock.\n\nbug:30351473\nChange-Id: I98dba646536d857152949b92f6c69ff9a03cf783\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "491617a612c8a1c890e72d8ba780a151ddee8e11",
      "tree": "3f10b3af3363d70173f43a4235a782e166a5afe2",
      "parents": [
        "2be946bbf995496fe56364d9b7c4957fcb6aeec5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 19 17:06:23 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 19 17:46:29 2016 +0100"
      },
      "message": "JIT: Don\u0027t update the dex cache of another class loader.\n\nThis only works for properly delegating class loaders. But Java allows\nnon-delegating ones :(\n\nbug:29964720\n\nChange-Id: I8b785e6cdfe9a2b77322521a02b8e59ec332ad83\ntest:612-jit-dex-cache\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": "0dfc9bc0cca3ae15dc75bbea3ca9b6d7508ce893",
      "tree": "abdc76069da7142d899eb776a0d82bdbbe316c94",
      "parents": [
        "1aba494df441c31836e5b7d4d8e408420a93cb8d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 17:13:59 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 05 08:57:04 2015 -0700"
      },
      "message": "ART: Add more deopt tests\n\nExtend libarttest with the ability to turn off asserts for method\nstate. Use this to put asserts into test functions, but turn them\noff if the test wouldn\u0027t react as we want, e.g., when we\u0027re in\ninterpreter mode.\n\nExtend run-test 449 by adding asserts for the method state for the\nexpected deopt cases. This tests both standard behavior, as well\nas single-frame deoptimization.\n\nBug: 21611912\nChange-Id: I27fa5e3e44d8c5eab57962d144c6aec96587bf45\n"
    },
    {
      "commit": "89df7bfc41a4de9685f84e7db07f77db3fd485fc",
      "tree": "f1a266870d0020b9b814022698569affc90e3844",
      "parents": [
        "931e26843bbb688eacfa67b40414c6b8f221a56a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 13:13:21 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 13:13:21 2015 -0700"
      },
      "message": "ART: Refactor libarttest C++ code\n\nRefactor some libarttest JNI functions into a common directory, so\nthey can be easily used by multiple tests without code duplication.\nThis is preparation for better deoptimization state testing.\n\nChange-Id: I43f7340b699b26930aabfd665c707e0485b17fc8\n"
    }
  ]
}
