)]}'
{
  "log": [
    {
      "commit": "d5f2ccc7ea09ae87ff704786daa6d20c10be21db",
      "tree": "6c50e7624144a1670acb3d8dbd9f7ca34300df08",
      "parents": [
        "88b7c37163836b4c26dbd05733bfc116987e58bc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 19 13:37:48 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 19 13:44:34 2017 -0700"
      },
      "message": "ART: Refactor run-test 912 (1/3)\n\nRefactor the test for CTS. Break out the ART-specific part. Move\nthe rest into the regular layout. Move class events to their own\nthread, and report them on the Java side. Use InMemoryDexClassLoader\nfor classloaders to avoid explicit files.\n\nBug: 32072923\nTest: none\nChange-Id: I80e27cc9c21646bbecd1de1a246f583a0d388e05\n"
    },
    {
      "commit": "78d63418bf6d5358fb0d49951a04c434c4e8e7b9",
      "tree": "776b8e82a119c252b12ca2f116443b2200acd628",
      "parents": [
        "3ccf980505e8b62280cb08616efce28113037f28"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 14 16:20:53 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 17 20:15:44 2017 +0000"
      },
      "message": "Enable some redefinition run-tests in CTS\n\nWe added the tests to run-test-jvmti-java-library\ntarget and made some small changes to tests to\nensure that everything works without linking to\nlibart.so.\n\nBug: 32072923\nTest: ./test.py --host -j40\nChange-Id: I8fdad180c77b125c22c043cd61305cee79801cc7\n"
    },
    {
      "commit": "d5e1a7937fc3f80856309f76c921c2242d4f34ce",
      "tree": "743203708b98ffff11f330b91a817dc4e1405ef3",
      "parents": [
        "8af5efdb1d734d8e78e78651b0de559feeb3267e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 17 08:36:14 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 17 08:36:14 2017 -0700"
      },
      "message": "Remove native code from test 944 for CTS\n\nReplaced native code in test 944 with java reflection based code.\n\nBug: 32072923\nTest: ./test/testrunner/testrunner.py --host -j40 -t 944\nChange-Id: I678d805936009a33ce8fe6b8570bfb788a8da72d\n"
    },
    {
      "commit": "e0f8ed966a22834815c8ec1a9ddbf0bfd35865ea",
      "tree": "940ca3d349ad1168abb041d92b5b8d8dd9ba3250",
      "parents": [
        "c1be9f2b776b4900e0603013f7c4d84e534f0bb0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 13 16:52:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 13 19:52:38 2017 -0700"
      },
      "message": "ART: Refactor run-test 913\n\nRemove references to ART. Filter roots from the JIT. Canonicalize\nsome thread IDs. Move the test to its own thread, and filter\nstack-locals of other threads.\n\nThese changes ensure that the test is less dependent on the main\nthread and its environment, which is required to use it in CTS.\n\nAlso fix a reporting issue for roots.\n\nBug: 32072923\nTest: art/test/testrunner/testrunner.py --host -t 913\nChange-Id: I8480ba7751fb6420c256db87cba11b8a65e25ea5\n"
    },
    {
      "commit": "2e410d259780671752445529551968512fd3cf8e",
      "tree": "a6a8587b5f310c21d3291e36c4923ef9a6f96433",
      "parents": [
        "c83010128175bf8be0b6cbf07bd96c743a2d5d5f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 13 12:58:06 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 13 15:00:52 2017 -0700"
      },
      "message": "Remove native printing from test 980 and reliance on print internals\n\nIn preparation for a making a CTS test out of this make the test not\nrely on internal allocation patterns of the \u0027System.out\u0027 object and\nnot make use of std::cout.\n\nTest: ./test.py --host -j40\nChange-Id: Ib7e874aaec71f93e834cf94ac5fe96663536691a\n"
    },
    {
      "commit": "8f2c6d479aeda3165c4f54c1076ec7ac335fccc7",
      "tree": "24867ac3b0ea940099038c5b8d18966b93188e0c",
      "parents": [
        "0ecb236aedb3debd0d000fb219a75e39879549a2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 10 16:27:35 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 12 14:42:35 2017 -0700"
      },
      "message": "run-tests with jvmti-stress configuration\n\nAdds a jvmti-stress mode to our run-tests. This mode runs our test\nsuite with every class-load being intercepted and undergoing\nredefinition.\n\nTest: DEXTER_BINARY\u003d\"/path/to/built/dexter\" \\\n      ./testrunner/testrunner.py --host --jvmti-stress -j40\n\nChange-Id: I898e5cffea42a203aa4c45981b48baf8dc64fbb6\n"
    },
    {
      "commit": "4665167ddc34008dfa78a2873685fe7a98772eab",
      "tree": "9af21169db0e6de2496b2946861436a9ecaf72e3",
      "parents": [
        "2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:00:04 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 07 09:44:55 2017 -0700"
      },
      "message": "ART: More refactor for JVMTI run tests (1/3)\n\nPut (most) tests into a new package and give them dedicated\nclass names (Test9XY).\n\nNOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE DIRECTORY STRUCTURE\n      AND FILE NAMES!\n\nBug: 32072923\nTest: None\nChange-Id: I291b0543f7782914e446a74f0d9037020c88e5b5\n"
    },
    {
      "commit": "db01a091aefbd78b56777f4c2e8c5e3f2d8c2712",
      "tree": "62dbbd082c5a4cfc122830a4df0a2ced219d8d6d",
      "parents": [
        "432fccc4c001fcd822f401aea1a4214b713bd896"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 03 15:39:55 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 04 11:44:35 2017 -0700"
      },
      "message": "Ensure invoking obsolete methods throws errors.\n\nThis sets the entrypoint for obsolete methods to a special stub that\nwill ensure that calling them results in an Error being thrown.\nPreviously we were allowing obsolete methods to be run if they could\nreach the appropriate places in the runtime.\n\nGetting into the state where this is possible is extremely difficult\nsince one can only get an jmethodID to an obsolete method by snatching\nit off the stack (or by inspecting internal runtime data). From there\nnormally invoking it will do lookup on the receiver which will get you\nthe original version.\n\nBug: 36867251\nBug: 31455788\n\nTest: ./test.py --host -j40\nTest: (with aosp_marlin-userdebug device) ./test.py --target -j4\n\nChange-Id: I2ca0503966a4e3de18dd89cb7ff224eba1459b49\n"
    },
    {
      "commit": "027444b64dd52e1d2beea7aa525fbb8146a516bc",
      "tree": "ae746f4ee59787cae3f38e8f1c3c72e81e6fa693",
      "parents": [
        "5b92c48f99391ae764e1699a22881f9d5cbce721"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 31 12:49:07 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 31 19:44:26 2017 -0700"
      },
      "message": "ART: TI Agent test library refactor\n\nMore refactoring, lowering the reliance on ART-provided functionality\nand adding a library that includes all the code that can run without\nART.\n\nBug: 32072923\nTest: m test-art-host\nChange-Id: I67d84056a6fd7722c58855fccbdea3f6869b2efb\n"
    },
    {
      "commit": "3f46c96568bef650ba6d9ce6ac8835d30877f243",
      "tree": "86b0e0d10999dd4c7b525b1e4e2db3ab1703cbe0",
      "parents": [
        "02311bd39d64b1417e8580c2a993620c2234254d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 30 10:26:59 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 30 16:58:56 2017 -0700"
      },
      "message": "ART: Refactor JVMTI run tests\n\nIn preparation for code deduplication with CTS.\n\nBug: 32072923\nTest: m\nChange-Id: Ibbe005c94252bd29eae7f88aad301b0b20ddb80d\n"
    },
    {
      "commit": "37aa4c99260985e67cd466397e58927e7a0d2871",
      "tree": "c563b378aedd88dbac5b4732ce62f6ebc85ba4d1",
      "parents": [
        "1082e0e46ddfae2ed9cc3d0a3d6025e7335ac239"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 27 13:02:41 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 28 09:38:42 2017 -0700"
      },
      "message": "Add test to verify dex file passed to agent\n\nBug: 31455788\nTest: ./test.py --host -j40\nChange-Id: Ibd75e21d6d9f19d9bb125a43a0f54262724e894c\n"
    },
    {
      "commit": "e0abec751ce81b14a57522b51d43138fa1541d33",
      "tree": "621b29f3c328197daf68af3e68379a4194387070",
      "parents": [
        "9d619c9555ba8232d4307ca28f750ac170afef92",
        "13a797bc53596af3d68eeb9721a8d76c23710ce9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 12:55:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 12:55:20 2017 +0000"
      },
      "message": "Merge \"vixl32: do not use D14 as a temporary.\""
    },
    {
      "commit": "13a797bc53596af3d68eeb9721a8d76c23710ce9",
      "tree": "b2d2b68a1a60215c7e10ac0821c1c761cebda787",
      "parents": [
        "0a1f0798176250853c1fb83f00a436a183d2bfc1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 16:41:31 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 11:12:56 2017 +0000"
      },
      "message": "vixl32: do not use D14 as a temporary.\n\nD14 is a callee-save register, which means we would need to\nsave it in the prologue, but at the point we\u0027re using it\nthe prologue has already been generated.\n\nbug: 35977033\ntest: m ART_USE_VIXL_ARM_BACKEND\u003dtrue test-art-target\nChange-Id: Id7340ad9e87a9e527ce0989f45aae0b3a0963206\n"
    },
    {
      "commit": "f2f1c9dab95892ec2983f57185c2bb0fbce80f80",
      "tree": "163613230c2afb656f9ee2b232253d76624e3bf8",
      "parents": [
        "8a31bb939f2ab1fe3f745ade40408ac07267208a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 15 15:35:46 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 15 09:19:22 2017 -0700"
      },
      "message": "Revert \"Revert \"Refactor annotation code for obsolete methods.\"\"\n\nThe number of InterruptedExceptions created during runtime shutdown is\nsometimes inconsistent so we will filter those out of the test results.\n\nThis reverts commit 65e0775010121498a37fa26c64fcc5bb17a6c1b5.\n\nReason for revert: Fixed issue with test flakes\n\nBug: 31455788\nTest: stress --cpu 60; while ./test/run-test --host 980; do; done\n\nChange-Id: Idf53ea11ceec1f48c433da468b31092bf230de57\n"
    },
    {
      "commit": "65e0775010121498a37fa26c64fcc5bb17a6c1b5",
      "tree": "5849c59b4e2de57fa8156149597f4a921a2f04d9",
      "parents": [
        "5378b64af97f9ae06082c697a6b13d2b98e02abb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:56:35 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:58:57 2017 +0000"
      },
      "message": "Revert \"Refactor annotation code for obsolete methods.\"\n\nTest has flakes.\nBug: 31455788\n\nThis reverts commit 672a0b75c91af44749b1e946684e6a65a884d778.\n\nChange-Id: If00ecbd31abe204bcaf8341eceb674e07c0ac8f2\n"
    },
    {
      "commit": "875e3225c52570a806a8d3719ea89ef9d72bf7ae",
      "tree": "10597eb6e63f7da237cca23e75889c5583561d4e",
      "parents": [
        "bff6bac661d05ad184c831a2b0b224260f2e2956",
        "672a0b75c91af44749b1e946684e6a65a884d778"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 14 21:10:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 21:10:33 2017 +0000"
      },
      "message": "Merge \"Refactor annotation code for obsolete methods.\""
    },
    {
      "commit": "672a0b75c91af44749b1e946684e6a65a884d778",
      "tree": "7ae1c2fd5b9e2e7d155d9427848000d381e138d0",
      "parents": [
        "01ea2aa05d6889b4ec08679606d3cdf36b302a8f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 10 13:09:57 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 14 10:18:12 2017 -0700"
      },
      "message": "Refactor annotation code for obsolete methods.\n\nReading annotations on obsolete ArtMethod* objects would cause\nproblems due to reading from the wrong dex file. We refactored that\ncode so now it always uses the correct dex file when reading\nannotations. This was rarely a problem since obsolete ArtMethods are\nonly ever exposed to the runtime itself which rarely reads\nannotations.\n\nWe also add a test for redefining Object.class. This is one of the\nsmall number of classes where the runtime will read it\u0027s annotations\noff of obsolete methods.\n\nBug: 31455788\nTest: ./test/testrunner/testrunner.py --host -j40\nChange-Id: I5f1c58464b89a7a9198a7b26b015b102a7dc9c2f\n"
    },
    {
      "commit": "5e03a305edafb49a34b436d9a858281e53d390f2",
      "tree": "97b34d7eb5ab9b1408325c7d8f9085c9f6f6cf67",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 13 13:10:00 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 14 08:18:08 2017 -0700"
      },
      "message": "ART: Refactor libopenjdkjvmti\n\nMove jvmti.h to its own folder and fix up include setup.\n\nBug: 31455788\nTest: m\nChange-Id: I5beb66fc5d0178746216f61f9214cda54fc2c7ac\n"
    },
    {
      "commit": "eee0bd448ec057d3f224895ddb868786758eeb5b",
      "tree": "32283e1b1ccb97bced2999a364cf21361c8d07ac",
      "parents": [
        "02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 15:31:45 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 09:28:19 2017 -0800"
      },
      "message": "Revert^6 \"Make class redefinition work with native methods on stack.\"\n\nWe were incorrectly trying to obtain the profiling information of a\nnative method.\n\nThis reverts commit 02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35.\n\nReason for revert: Fixed test failure with jit configurations\n\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\n\nChange-Id: Ic7112104aec64e597d2df80db5dc2a505d2cc2dd\n"
    },
    {
      "commit": "02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35",
      "tree": "f5981b3ef21e41a4df6edc203615f15f23e93ad5",
      "parents": [
        "724f77e2fed038d57a3d08fdcf656d703e3473ea"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 14 10:49:09 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 14 10:49:09 2017 +0000"
      },
      "message": "Revert \"Revert^4 \"Make class redefinition work with native methods on stack.\"\"\n\nART run-test 945-obsolete-native is failing in automated\ntesting.\n\nThis reverts commit 724f77e2fed038d57a3d08fdcf656d703e3473ea.\n\nChange-Id: I4eceb45765826ca442ee8f4800b2bed51f98e662\n"
    },
    {
      "commit": "724f77e2fed038d57a3d08fdcf656d703e3473ea",
      "tree": "a9ce49e4e345defa257df168f354710159a818ff",
      "parents": [
        "38c20d4a694eea44a1bd3af32a6a99512c139358"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Feb 11 00:43:10 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 13 16:52:07 2017 -0800"
      },
      "message": "Revert^4 \"Make class redefinition work with native methods on stack.\"\n\nWe had a problem where there was a brief period of time where the dex\nfile for an obsolete method could not be obtained. This meant that not\nall functions of ArtMethod could safely be called, causing some\nproblems.\n\nThis reverts commit 38c20d4a694eea44a1bd3af32a6a99512c139358.\n\nReason for revert: Fixed issues with interp-ac and relocate-npatchoat\n\nTest: ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT\u003dtrue \\\n      ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue \\\n      mma -j40 test-art-host\n\nChange-Id: I04991f3e76813831b6446f97636b6fa404397f36\n"
    },
    {
      "commit": "38c20d4a694eea44a1bd3af32a6a99512c139358",
      "tree": "f5981b3ef21e41a4df6edc203615f15f23e93ad5",
      "parents": [
        "4493f92dfc70e01d95ad57bc4c0c38f59a616f70"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Feb 11 00:38:35 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Feb 11 00:38:35 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make class redefinition work with native methods on stack.\"\"\"\n\nThis reverts commit 4493f92dfc70e01d95ad57bc4c0c38f59a616f70.\n\nReason for revert: Fails interpreter-ac and relocate-npatchoat\n\nChange-Id: I15eb4964c9101fa04e34b52acf9ffe25e6d4e60d\nTest: revert\n"
    },
    {
      "commit": "4493f92dfc70e01d95ad57bc4c0c38f59a616f70",
      "tree": "8762ba0636b735e43cdd714755cd622ef718580b",
      "parents": [
        "806ac631e53f12061cb0ae7640aa9cd0dd79243d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 10 16:33:26 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 10 11:46:56 2017 -0800"
      },
      "message": "Revert \"Revert \"Make class redefinition work with native methods on stack.\"\"\n\nWhen we were scanning the stack for tracing we were getting the wrong\nstack-frame size for obsolete native methods. This fixes it by\ncreating real obsolete native methods so we can recognize them and\nthen doing the (rather long) calculation to find their real\nstack-frame size.\n\nThis reverts commit 7558d27ccd0837fef7c4bfbff7fc82f07a787316.\n\nReason for revert: Fixed tracing failures.\n\nTest: mma -j40 test-art-host\nTest: ART_TEST_TRACE\u003dtrue ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nChange-Id: Ic65da1b51a43733ff60131832753afa0c4ce66b1\n"
    },
    {
      "commit": "7558d27ccd0837fef7c4bfbff7fc82f07a787316",
      "tree": "89515676fc9882d04e317a1c7cf8f719a16804dc",
      "parents": [
        "2863f67f4335c37e92f8923d23b2443bc3316c88"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 10 10:01:47 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 10 10:01:47 2017 +0000"
      },
      "message": "Revert \"Make class redefinition work with native methods on stack.\"\n\nTest fails.\n\nThis reverts commit 2863f67f4335c37e92f8923d23b2443bc3316c88.\n\nChange-Id: If56cf90eced2d30e046304e0c38220a3c9728842\n"
    },
    {
      "commit": "2863f67f4335c37e92f8923d23b2443bc3316c88",
      "tree": "d1168f2b58757d9270f116cf13ee7871c42b573a",
      "parents": [
        "e4530079672682ff3900d84c08b666a6a899d973"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 09 14:49:13 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 09 14:53:37 2017 -0800"
      },
      "message": "Make class redefinition work with native methods on stack.\n\nPreviously we would crash if we tried to redefine a class with native\nmethods if it had any native frames on a stack. This happened when we\ntried to create an obsolete method for the native method.\n\nSince native methods cannot really become obsolete in the same way\nthat regular java ones can we simply do not make any obsolete methods\nfor these native methods.\n\nTest: mma -j40 test-art-host\nChange-Id: Ib677f73faae52627a478aa7cfe870c1f2c4fb503\n"
    },
    {
      "commit": "1babae0f39c30e699f8580b6c28b4186aecdf690",
      "tree": "69977db3f47455f94c24d5302c5089716d6d5e6c",
      "parents": [
        "406402baa4900c36b3fe27b03bf9e04e978e50be"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 01 15:35:34 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 02 11:13:25 2017 -0800"
      },
      "message": "Ensure that all redefinition created dex file get on classpath\n\nWe were not adding some DexFiles to the ClassPath if there were\nmultiple classes from the same classloader being redefined at the same\ntime. We fixed this issue and made a test for it.\n\nTest: mma -j40 test-art-host\n\nChange-Id: I6e8961c8602367ebec5d5a948d71e58f3be2f6d7\n"
    },
    {
      "commit": "cefaa14b9343b0169f800a6fe64e60c0500907be",
      "tree": "06d577d35fe5c17fdf7a743388612f23eb88b5be",
      "parents": [
        "67c60656639acc92dca2ae8713add7d22683c7b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 15:04:59 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 27 08:35:30 2017 -0800"
      },
      "message": "ART: Add OnLoad system classloader search support\n\nAdd support for extension of the system classloader search path\nduring the OnLoad phase. Add test.\n\nBug: 34359699\nTest: m test-art-host-run-test-936-search-onload\nChange-Id: Ie0a5b4bb77999dfae87f955dde40b73ffe053b8e\n"
    },
    {
      "commit": "63fcc81127262d9d185fe789e3ccde7c6ec35141",
      "tree": "41672aa86ee4eba1905ff0b8da01a11ba632df88",
      "parents": [
        "2d2cc41059ff4fbc3b56399217ca073ae9396a7d",
        "36eb313c805713c1367e5b9d73897ade1c24174b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 22:14:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 22:14:11 2017 +0000"
      },
      "message": "Merge \"Add dexoptanalyzer tool\""
    },
    {
      "commit": "72a328949cb6a882762ef140ae306f1fafd24c7e",
      "tree": "acf6080e394a8c3a660e1fc92d19feefb66e48a1",
      "parents": [
        "461bbbf6f2e8dddb33a124c598e806b75929c9bb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 09:40:56 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 11:47:43 2017 -0800"
      },
      "message": "Temporarily increase heap min and max free\n\nMake sure that GC doesn\u0027t run too often for TLAB ergonomics. Added a\nregression test.\n\nBug: 34576638\n\nTest: test-art-host\n\nChange-Id: Ie07c7c470aaca044fea20b21cbe6bfe8667d082f\n"
    },
    {
      "commit": "36eb313c805713c1367e5b9d73897ade1c24174b",
      "tree": "a2485977f12299a493217ead13a0cb5510c4251d",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 13 16:32:38 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 11:29:34 2017 -0800"
      },
      "message": "Add dexoptanalyzer tool\n\ndexoptanalyzer is a command line tool which analyzes whether or not a\ngiven dex file needs to be dexopted. It is a wrapper around\nOatFileAssistant::GetDexOptNeeded and its results have a mapping to\nOatFileAssistant::DexOptNeeded.\n\nThis is needed for the management of secondary dex file. We need a way\nto retrieve the DexOptNeeded status from installd outside system server.\nWe can\u0027t simply use the system server path (as we do for the main apks)\nbecause system server can\u0027t access content writable by the apps.\n\nBug: 32871170\nTest: m test-art-(host|target)\nChange-Id: Ife1534560ca2658079d4a38a30bc8d94f35fe9c8\n"
    },
    {
      "commit": "67edcfdb2151af66cdacf61e44c618c41601d0c8",
      "tree": "216474627bab10461c0c8be61f521a39418fc7db",
      "parents": [
        "ce97b0ca4457dfb7ce78532601b19a18c9b5b13e",
        "eb0cea162c71b0b3ae5cb116510aebca02e9ab3d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 22:15:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 22:15:10 2017 +0000"
      },
      "message": "Merge \"ART: Add DataDumpRequest\""
    },
    {
      "commit": "ce97b0ca4457dfb7ce78532601b19a18c9b5b13e",
      "tree": "0826c0cf84b20eb3213e69e03034080bcb4a407c",
      "parents": [
        "839320b9918e3543186dc367c382a4908fe0b85e",
        "6fe97e0bcc82ae9b9a0ada5cac7eaebf74d130c3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 23 22:12:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 22:12:58 2017 +0000"
      },
      "message": "Merge \"Add explicit monitor inflation run test.\""
    },
    {
      "commit": "6fe97e0bcc82ae9b9a0ada5cac7eaebf74d130c3",
      "tree": "17ea0b64cf7e3f95252af1e95e4788d339f2c4e2",
      "parents": [
        "152b9567d0c2382464c844c91c2108608a1bc06f"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed May 04 18:35:57 2016 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 23 12:40:03 2017 -0800"
      },
      "message": "Add explicit monitor inflation run test.\n\nThis tests some of the same code as the monitor_pool_test\ngtest. But it tests a larger pool size with the code needed to\ninvoke it from the Java level.  Larger pool sizes have gotten\nmore interesting with the new monitor pool layout.\n\nAdd a function to return the size of the current MonitorList.\nCurrently this is only used by this test, but it is likely to\nhave debugging or performance analysis uses as well.\n\nTest: Passed on host and on angler.\n\nChange-Id: I4f3f150044a0d8c800eb60635e074119598cfdd1\n"
    },
    {
      "commit": "eb0cea162c71b0b3ae5cb116510aebca02e9ab3d",
      "tree": "cd2bac64f3af0edfb3cf0810bcf433a18030957c",
      "parents": [
        "e6377461540c1159e94cb45c9ade347e8e6bb52b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 08:50:04 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 11:05:55 2017 -0800"
      },
      "message": "ART: Add DataDumpRequest\n\nAdd support for DataDumpRequest. Add test.\n\nBug: 31684920\nTest: m test-art-host-run-test-933-misc-events\nChange-Id: Ic54b644a87cd046bc646d9f7fe24c0192f562677\n"
    },
    {
      "commit": "732b0aca4fb8e5ffbd518ca913cb82810b6b2061",
      "tree": "ee3b509a39400af3cac5be5f6a8974290374123d",
      "parents": [
        "07e56f3e1d1d6d7cca3a8819cb8429a65f0507f2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 15:23:39 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 17:13:21 2017 -0800"
      },
      "message": "ART: Add Agent Thread API\n\nAdd support for RunAgentThread. Add test.\n\nBug: 31684593\nTest: m test-art-host-run-test-931-agent-thread\nChange-Id: I5deb213fb06eedc5ee78a340458cf0dff615d0ac\n"
    },
    {
      "commit": "6f8e4f0fc378b49b8203db9a64777be3c773556a",
      "tree": "5a7e706ab1e3c3ae2680b775976fe3b899fe3e50",
      "parents": [
        "0bd1a16e91cd7d602fff3f4b0c8f98e7f3fc4e44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 16 18:18:14 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 09:26:59 2017 -0800"
      },
      "message": "ART: Add JNI API\n\nAdd support for GetJNIFunctionTable and SetJNIFunctionTable. Add\ntests.\n\nBug: 34343708\nTest: m test-art-host-run-test-928-jni-table\nChange-Id: Ib9fafbac2781c570aa6eacf5242afbbf6c3ee7a9\n"
    },
    {
      "commit": "d4a282789669b27ce0352c99c26469b07a86d871",
      "tree": "037d234b5410becd373ae42c37b8b6c265b57741",
      "parents": [
        "24e2ded0f9b7715e3dccfe41d2467cc5a7eea84d",
        "ce7732bcb504fc91ed201d8e2128e30d51ee9bdb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 17:16:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 18 17:16:07 2017 +0000"
      },
      "message": "Merge \"ART: Add Search API\""
    },
    {
      "commit": "ce7732bcb504fc91ed201d8e2128e30d51ee9bdb",
      "tree": "8875e446d90a3436576da3abe5c45ed9b81aaada",
      "parents": [
        "3a5e34b65727d2c9e7e6ebe45c337dae0d0398a4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 15:50:26 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 20:40:31 2017 -0800"
      },
      "message": "ART: Add Search API\n\nAdd initial support for AddToBootstrapClassLoaderSearch and\nAddToSystemClassLoaderSearch. The current implementation does\nnot support the OnLoad phase.\n\nAdd tests.\n\nBug: 34359699\nTest: m test-art-host-run-test-929-search\nChange-Id: I42955ff381cd3828bfd772bee2f9b0745195ee51\n"
    },
    {
      "commit": "d18d9e2a94445d4b42e4bc6f0e642e6f76b4706d",
      "tree": "86b1d2c3cd0a12161778109733eec5366ebabae2",
      "parents": [
        "ce27739a1207c530c0ecebaefef80652f401f2d1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 16 16:08:45 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 14:40:16 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Add ThreadGroup API support\"\"\n\nThis reverts commit 87071bfb6c1b708bdfa2a5f91d4744667b3a0443.\n\nAdd an ObjectLock, which corresponds to the synchronized(this)\nimplementation on the Java side. Wait for the expected five\nchild threads in the root group before running the actual\nchild test.\n\nBug: 31455788\nChange-Id: Ib7a065d6a11f06f0325e3a8db040629f3ca69407\nTest: m test-art-host-run-test-925-threadgroups\n"
    },
    {
      "commit": "35bcf817cb2dd9b641080e23b0fbb08870a45cbf",
      "tree": "433db36dd28c0295c6402fafd6fb9d3450cc6c57",
      "parents": [
        "7ccdf0929fb5d1d9a2ea46ec0f320ce459c1effb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 16:24:17 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 10:23:09 2017 -0800"
      },
      "message": "ART: Add three Timer functions\n\nAdd support for GetAvailableProcessors, GetTimerInfo and GetTime.\nAdd tests.\n\nBug: 31455788\nTest: m test-art-host-run-test-926-timers\nChange-Id: I9629654349787e27dee686284567b5de70e138f2\n"
    },
    {
      "commit": "87071bfb6c1b708bdfa2a5f91d4744667b3a0443",
      "tree": "50cbb5cf4eefe7ae8459603411a92fe2ac459b6d",
      "parents": [
        "4cddd03950bb21e950afd72cad87e963bc53ea10"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 10:27:16 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 16 10:29:39 2017 +0000"
      },
      "message": "Revert \"ART: Add ThreadGroup API support\"\n\nTest fails\n\nBug: 31455788\n\nThis reverts commit 02afcde4132070d925838bc09c0f24d1bd45273d.\n\nChange-Id: I470becb29fda54db0db6f764a83efc926badb555\n"
    },
    {
      "commit": "02afcde4132070d925838bc09c0f24d1bd45273d",
      "tree": "8dd0640405ad747b8721db8fbffe5f5d5622f35e",
      "parents": [
        "7e25123127b0b02678a5101d0faa18b65895d723"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 17:34:39 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 08:51:24 2017 -0800"
      },
      "message": "ART: Add ThreadGroup API support\n\nAdd support for GetThreadGroupInfo, GetThreadGroupChildren and\nGetTopThreadGroups. Add tests.\n\nBug: 31455788\nTest: m test-art-host-run-test-925-threadgroups\nChange-Id: I56809c95dfd2666c2e18769a8960d6b1604274b4\n"
    },
    {
      "commit": "af13ab9586cebbfc40204179e2dd0986cc14dd84",
      "tree": "124f8733cfb66aae2a5ddad9e58df52f96cdbed2",
      "parents": [
        "8fdba845ffeb516aa0ede900def3a833861eff15"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 11 20:57:40 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 10:01:16 2017 -0800"
      },
      "message": "ART: Add GetCurrentThread and GetThreadInfo\n\nAdd support for GetCurrentThread and GetThreadInfo. Add tests.\n\nBug: 31684593\nTest: m test-art-host-run-test-924-threads\nChange-Id: Ic2bc4c9b5c283e4eefe4075b6abe251b8be499c8\n"
    },
    {
      "commit": "319dbe87f2e1a3381696603384dc7f245800591d",
      "tree": "e3a08fc186c3370c5251cbd31bd7d40f5a077772",
      "parents": [
        "db47a144d816e0976c5b4c00461b80b07ce97c60"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 09 16:42:21 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 11 15:39:11 2017 -0800"
      },
      "message": "ART: Add raw monitor API\n\nAdd support for CreateRawMonitor, DestroyRawMonitor,\nRawMonitorEnter, RawMonitorExit, RawMonitorWait, RawMonitorNotify\nand RawMonitorNotifyAll.\n\nBug: 31455788\nTest: m test-art-host-run-test-923-monitors\nChange-Id: I4eeab8011b547ae0ea8b2317701c68ce56677f79\n"
    },
    {
      "commit": "1bdaf733b472bc79a8e385f0563ffed603a2c93e",
      "tree": "e518cd8dd72947ef34cd08c8b760d946672e9a2b",
      "parents": [
        "2e17788df086284845108c6b39954a5c74e93a69"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 09 19:21:06 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 10 13:07:28 2017 -0800"
      },
      "message": "ART: Add system properties support\n\nAdd simple support for GetSystemProperties, GetSystemProperty and\nSetSystemProperty. Add a test.\n\nBug: 31455788\nTest: m test-art-host-run-test-922-properties\nChange-Id: I02914f04643f0f8fab96f1b372925c2c5306fc9b\n"
    },
    {
      "commit": "50a4e4964bd66993e19768fc3af5b960653df8ed",
      "tree": "8139a92be6e97b3eef171615bf6fbcac84a778ee",
      "parents": [
        "dd5a42753de9fe6d29ddd772971b8ab3c2ba68aa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 06 18:00:20 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 06 18:30:37 2017 -0800"
      },
      "message": "ART: Add GetObjectSize and GetObjectHashCode\n\nAdd support for these two functions. Add tests.\n\nBug: 31684578\nTest: m test-art-host-run-test-920-objects\nChange-Id: If5dfb5aedddee47e5d739b0c56c7d264ba6e2d51\n"
    },
    {
      "commit": "ab2f0d0395c1f5f832239d42d404594d76a8d9d4",
      "tree": "5d3b4cb819e8568cbed154aa733b22f799d6d387",
      "parents": [
        "4fd66ecf2e6cce6917a62c3133e7eeb35b905451"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 05 17:23:45 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 06 09:13:50 2017 -0800"
      },
      "message": "ART: Add Field methods\n\nAdd GetFieldName, GetFieldDeclaringClass, GetFieldModifiers\nand IsFieldSynthetic support. Add tests.\n\nBug: 34113943\nTest: m test-art-host-run-test-918-fields\nChange-Id: Id33b8c54c250f73f0658ec45ccb2b55eccb37623\n"
    },
    {
      "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": "f6abcda293b115a9d7d8a26376ea2dcf2d1dc510",
      "tree": "a30ce596848d14c95a73449dbf2bfccf26a510b9",
      "parents": [
        "ce77fc0e7f60a15354bb20c356537cbf8b53b722"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 21 09:26:18 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Basic obsolete methods support\"\"\"\n\nFails in tracing mode\n\nBug: 32369913\nBug: 33630159\n\nThis reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.\n\nChange-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69\n"
    },
    {
      "commit": "ce77fc0e7f60a15354bb20c356537cbf8b53b722",
      "tree": "b4301967c423ab190a4274409d99a3d6e23f0e8a",
      "parents": [
        "d54f43ca39dfa92f08c2d760123f185f0f65fb86"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 01:05:52 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 19 14:26:18 2016 -0800"
      },
      "message": "Revert \"Revert \"Basic obsolete methods support\"\"\n\nThis reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.\n\nThere were 2 issues with the original CL\u0027s test 916-obsolete-jit that\ncaused it to sporadically fail.\n\nFirst, when checking if we had jitted the function under test in\n916-obsolete-jit we failed to check to see if the function \u0027doCall\u0027,\nwhich is used to work-around bugs in our deoptimization \u0026 compilation\nsystems, had also been jitted.\n\nIn the case where the \u0027sayHi\u0027 function had been jitted but the\n\u0027doCall\u0027 function had not we would (correctly) fail to redefine the\n\u0027Transform\u0027 class since we would not be able to deoptimize the \u0027sayHi\u0027\nfunction since it is under a quick_to_interpreter_bridge (runtime)\nframe.\n\nSecondly, the function Main.isInterpretedFunction was incorrect and\nwould always return false, regardless of the actual state of the\nfunction. This would cause the test to fail as the\nquick_to_interpreter_bridge frame prevented deoptimization of the\nobsoleted function. Usually the warm-up period was enough to make sure\nthe methods were jitted anyway but this was not guaranteed.\n\nBoth of these problems become more likely to occur on systems with\nmore cpu contention such as the buildbots.\n\nTest: stress --cpu 60 \u0026; while ./test/run-test --host --jit 916; do ; done\n\nReason for revert: Fixed bug in test that was causing failures.\n\nOriginal Tests:\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: If1a92e47b90965a7dc21c5826185debe62bd1554\n"
    },
    {
      "commit": "b81a9840b44480bfeacd74b8d9f51e06f295411d",
      "tree": "d79a3567b272b6eb4fb94d66a537cf92bef455db",
      "parents": [
        "d8936da27b792d1ca02e59c92456a1a53c7b9905"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 15 00:59:05 2016 +0000"
      },
      "message": "Revert \"Basic obsolete methods support\"\n\nThis reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.\n\nReason for revert: Some sort of race in JIT\n\nChange-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e\n"
    },
    {
      "commit": "d8936da27b792d1ca02e59c92456a1a53c7b9905",
      "tree": "6a593dd426e7f4a15c651dd3b872f22fb64f09ce",
      "parents": [
        "7c73bf3518eea7544406eadfed6946411c54a267"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 28 16:24:32 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 14 13:01:27 2016 -0800"
      },
      "message": "Basic obsolete methods support\n\nAdd support for executing obsolete methods following redefinitions.\nThis support includes methods that have been jitted. This does not add\nany additional validity checks to our redefinition functions.\n\nNote using work-arounds to ensure 916 works pending some fixes to the\ncompiler, deoptimizer, or both.\n\nTest: ./test/run-test --host 914\nTest: ./test/run-test --host 915\nTest: ./test/run-test --host 916\nTest: mma -j40 test-art-host\nTest: ART_TEST_JIT\u003dtrue \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: ./art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --no-jit\n\nBug: 32369913\nBug: 33630159\n\nChange-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432\n"
    },
    {
      "commit": "c5798bf82fc0ccd0bb90e0813d8e63df4d0576cc",
      "tree": "89c94659ad977b66f4d2a90981ed7c63c0af636a",
      "parents": [
        "aea9ffece7eb32f3884a4ad0553e1df4d90fd9e4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 09 10:20:54 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 09 13:02:40 2016 +0000"
      },
      "message": "Revert^8 \"Make sure that const-class linkage is preserved.\"\n\nReplaced two ReaderMutexLocks with WriterMutexLocks.\nRemoved some unnecessary debugging output.\n\nTest: m test-art-host\nBug: 30627598\nOriginal-Change-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8\n\nThis reverts commit 2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8.\n\nChange-Id: I3a1aeecf64e4b202cef61cceb248d48106a2f4a6\n"
    },
    {
      "commit": "1e07ca6d50d35abc70ed5c72025ec8f48ae01f25",
      "tree": "b56db69c12b4a1b474ca451175fd8fc86647c310",
      "parents": [
        "75d564e45061e1a9d28a89d3c8fa60af04ef28a8"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 02 11:40:56 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 02 14:17:16 2016 -0800"
      },
      "message": "Cleanup of redefinition testing\n\nMove redefine logic into a single common function and perform some\nother cleanup.\n\nTest: mma -j40 test-art-host\nChange-Id: I8618bda4f392b683ce198374066e356b87578e7b\n"
    },
    {
      "commit": "2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8",
      "tree": "7b5e29f66a840e5e83c02df0b23d05501b0d63c5",
      "parents": [
        "6afaa42f50157095a3cdc742afdbc3d58b833eea"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:42:00 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 17:43:09 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved, try again.\"\n\nReverting due to test failures as expected.\n\nBug: 30627598\nBug: 33231647\n\nThis reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.\nSquashed revert \"Additional debug logging for bug 33231647.\"\n    This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.\n\nChange-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c\n"
    },
    {
      "commit": "cb5ab35980a86b05586c402924d2e7ca9df25758",
      "tree": "acf33ce7ac7627682aaf822489247ca1804b60d0",
      "parents": [
        "07e6a7947f3279f66f14f7af045065b5297294c2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 30 15:31:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 01 10:13:19 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved, try again.\n\nThis CL causes occasional test failures on the build servers\nwhich we were not able to reproduce locally. So we add some\nsome additional debug output to help pinpoint the cause.\n\nBug: 30627598\nBug: 33231647\nTest: m test-art-host\n\nThis reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.\n\nChange-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0\n"
    },
    {
      "commit": "171cf811a1cdf8b1cbc5151505d8630741ce4cf3",
      "tree": "2e5e16040024115d75baebdbf064987961e36e5f",
      "parents": [
        "e47172b75b8b04a450d235cf72bdc4e223a29cb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 21:10:22 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\"\n\nBug: 30627598\n\nThis reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.\n\nChange-Id: I038029c71195a80f041982e82ae556d3157db7b8\n"
    },
    {
      "commit": "e47172b75b8b04a450d235cf72bdc4e223a29cb5",
      "tree": "9301e9bc08944f3b4590d9ccf6aa7656cc238adf",
      "parents": [
        "d0111420a9f924fe560a97132d09ae531852fd69"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 25 11:47:20 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 13:49:20 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\"\n\nAvoid class loading triggered by verification in the\n626-const-class-linking test. Expect spurious wakeups.\n\nAdd extra debugging output for a very strange failure\n    image_writer.cc:1144] Check failed:\n    !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\nThat class is supposed to be in the boot image (core.art for\ntests), so the failing check should not be reached at all.\n\nTest: m test-art-host\nTest: m ART_TEST_OPTIMIZING\u003dtrue \\\n        ART_TEST_JIT\u003dtrue \\\n        ART_TEST_INTERPRETER\u003dtrue \\\n        ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue \\\n        test-art-host-run-test-626-const-class-linking\nBug: 30627598\n\nThis reverts commit 09ded9201fbeec605b12741ae255663c14bda225.\n\nChange-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5\n"
    },
    {
      "commit": "09ded9201fbeec605b12741ae255663c14bda225",
      "tree": "c0276a06f8b6dba35e843098a05be326c8f5e2ac",
      "parents": [
        "25dcbad4462ea7279ee2bbe0884abc25bdfac77a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 24 13:03:57 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\"\n\n626-const-class-linking is failing (spurious wakeups?)\n970-iface-super-resolution-gen is failing:\n    dex2oatd F 11-24 10:57:16  6410  6410 image_writer.cc:1144]\n    Check failed: !IsBootClassLoaderClass(as_klass)\n    java.lang.Class\u003cjava.lang.NoSuchMethodError\u003e\n\nBug: 30627598\n\nThis reverts commit 25dcbad4462ea7279ee2bbe0884abc25bdfac77a.\n\nChange-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114\n"
    },
    {
      "commit": "25dcbad4462ea7279ee2bbe0884abc25bdfac77a",
      "tree": "f8f8db090bf6735ead2c6999b7b574f4b7278056",
      "parents": [
        "dd77c2b4ff36db082edfbcf2631c78a9282689e1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 13:35:26 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 23 17:01:16 2016 +0000"
      },
      "message": "Revert \"Revert \"Make sure that const-class linkage is preserved.\"\"\n\nFix jdwp getting multiple instances of the same class.\nFix counting \"zygote\"/\"non-zygote\" classes in class table.\nFix FindClass() to EnsureResolved() classes added by\na racing thread to the class table.\n\nTest: m test-art-host\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nBug: 30627598\n\nThis reverts commit ecffc67068a28d55d131553bf915fdb9fafbbc03.\n\nChange-Id: I15807949da4f163c2693fac2fbfc274f17685f8a\n"
    },
    {
      "commit": "ecffc67068a28d55d131553bf915fdb9fafbbc03",
      "tree": "3f63982d609fa01a5b271b5f393ee9c6d83e1107",
      "parents": [
        "b46782abf6752ccf688b0d9f5b4bb83e5d33793b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:37:21 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 22 17:41:49 2016 +0000"
      },
      "message": "Revert \"Make sure that const-class linkage is preserved.\"\n\nBug: 30627598\n\nThis reverts commit 19886dbeced9430579a27979beb92b09c95197b4.\nSquashed reverts of subsequent partial fixes.\n    This reverts commit bad475a63b7c938b7ff7903ea1dae27369c3f629.\n    This reverts commit 0ba0c7d9b0328af39a385014652eb9af4e42d8b5.\n    This reverts commit ddb8afec79492750f16f98e5bd07d44f3dc485d4.\n\nChange-Id: Id94af5ae56a0335f9641a79c885cc75bba971713\n"
    },
    {
      "commit": "19886dbeced9430579a27979beb92b09c95197b4",
      "tree": "33c85aada415308d8207d63bce903262ea7504fe",
      "parents": [
        "bb4366d2b0b56f2cc66041243bd93de4b8e4d15a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 11 11:40:40 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 21 19:11:31 2016 +0000"
      },
      "message": "Make sure that const-class linkage is preserved.\n\nAfter calling loadClass() on the initiating loader, insert\nthe Class to the ClassTable. Check that the returned class\nhas the correct name and that the ClassTable does not yet\ncontain a different Class for the same name. If either check\nfails, follow the RI behavior for parallel capable class\nloaders, i.e. throw NoClassDefFoundError for name mismatch\n(with more descriptive message than RI) or return the Class\nalready present in the ClassTable. This ensures that the\nconst-class instruction for a given name always gives the\nsame result as the first time it succeeded for the same\ninitiating loader, even for non-well-behaved loader.\n\nInserting the Class to the ClassTable is also a necessary\nstep for changing to hash-based dex cache type array when\nthe DexCache will not necessarily keep the Class and\ntherefore the defining loader alive while the initiating\nloader stays alive, so the ClassTable entry is necessary\nto keep the dependecy.\n\nAdd tests that a const-class instruction always returns the\nsame Class\u003c?\u003e as it returned the first time, i.e. when it\nwas \"linked\", even for class loaders that are not\nwell-behaved, even if the dex cache type array is cleared.\nAlso test the edge cases, i.e. NoClassDefFoundError and\nreturning old entry from ClassTable when already inserted\nby another thread.\n\nBug: 30627598\nTest: 626-const-class-linking\nTest: m test-art-host\nChange-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8\n"
    },
    {
      "commit": "6e3dd3e6de432cd200037d74637ef5b183146608",
      "tree": "d04bef7f15a34f8ff1b69bca49f8c584e9e7c6ba",
      "parents": [
        "ab95bad2b88769ccc668e8a4e38a1a24b0d5892c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 17:13:53 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 17:16:56 2016 -0800"
      },
      "message": "ART: Remove ti library dependency for ti tests\n\nThe agent so should not depend on libopenjdkjvmti.so.\n\nBug: 31455788\nTest: m test-art-host\nChange-Id: I7825d2a475a9651483b9c7cd11016d4f2dba23f9\n"
    },
    {
      "commit": "8da6d03176651594b821cd3531894c372ca640d5",
      "tree": "a27252375bf41d47c7f3183cb021c65b6dbd3132",
      "parents": [
        "54b20eb52f7d8688032fb3bd6112e8db9772c4a7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 31 19:31:03 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 31 19:32:35 2016 -0700"
      },
      "message": "ART: Add forced garbage collection\n\nAdd ForceGarbageCollection support to the agent interface.\n\nAdd a test.\n\nTest: m test-art-host-run-test-913-heaps\nBug: 32516268\nChange-Id: Iaa97520d1b9e4b0adf088ccdf9712193c485b7c5\n"
    },
    {
      "commit": "e492ae3e59849ee205c22cd15d3c4df2c4bc2d4c",
      "tree": "c4fccd9c18d645dd29213e62f3659250f8540aa8",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 28 19:34:57 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 31 14:38:17 2016 -0700"
      },
      "message": "ART: Add GetClassSignature\n\nAdd support to retrieve the signature of a JNI class.\n\nAdd a test.\n\nBug: 31684578\nTest: m test-art-host-run-test-912-classes\nChange-Id: I1cf946996f9089cb5d41e93b4f1064193e9d6350\n"
    },
    {
      "commit": "b5eb94a7536e5d050b9d3b1e4e09033bcf2aa554",
      "tree": "ee99d1bfa959dc94640ebed38df4fe3023728cb5",
      "parents": [
        "e9f67125f9a9c54b226c7daa95ebd0c5b31e8510"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 27 19:23:09 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 28 15:08:42 2016 -0700"
      },
      "message": "ART: Add GetStackTrace support\n\nAdd support for getting a stack trace.\n\nBug: 31684812\nTest: m test-art-host\nChange-Id: Ifa5818ebca38caafb09616ffd7df30186eb8a06f\n"
    },
    {
      "commit": "3c252f07cefccd506a7146d976aa5193396e5a4e",
      "tree": "8a198e8c2563a2b8fcd3813ec6ad95260c734b5e",
      "parents": [
        "81fbc57f45b3c4d98036b637630ab7c0420f4cea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 27 18:25:17 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 28 12:08:17 2016 -0700"
      },
      "message": "ART: Add method name support to TI\n\nAdd support for GetMethodName.\n\nBug: 31684812\nTest: m test-art-host\nChange-Id: I55e7b6dac7e7193c3d9979ebb289b0e2849ad030\n"
    },
    {
      "commit": "eb84221ffc00357be6d69e2e461c7a45ee96334a",
      "tree": "00e6a0884a62dfb448e4d617699fe511307db74f",
      "parents": [
        "19c5e5f3e92db92e4a51b354743cbb0edd8e0f48"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Thu Oct 06 17:26:36 2016 -0700"
      },
      "committer": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:46:58 2016 +0000"
      },
      "message": "Enable agent attaching during live phase\n\nThis is the ART part, the plumbing from VMDebug_attachAgent() to\nactually loading the agent into the runtime.\n\nTest: m test-art-host\n\nBug: 31682382\n\nChange-Id: I3ccc67aa050c1f78278882128983686ed44ddec2\n"
    },
    {
      "commit": "9b8c5880de9b0f7dd8b1b863520714a9700a8dc2",
      "tree": "9b1e4cadc0cad1d5643fd62c41d0b977485659c6",
      "parents": [
        "776e473ec7ff0dd426a648ae7f996f3b69fd6925"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 21 15:27:46 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 24 13:58:50 2016 -0700"
      },
      "message": "ART: Add GC callbacks\n\nAdd start and end of pause callbacks.\n\nFix setup and missing functions in test 907.\n\nBug: 31684633\nTest: m test-art-host\nTest: m test-art-host-run-test-908-gc-start-finish\nChange-Id: I1d8872ef9cd6914de7fb033cd873f8d5cb48ea17\n"
    },
    {
      "commit": "f0af906728a87e559edd90157b082e4b962af134",
      "tree": "2c375423f28c972f9d44d27c2ec794991a0f2ed4",
      "parents": [
        "fc5fbfc13fd6873d42fe82c308ee68a685258b4c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 21 10:50:31 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Oct 21 10:56:52 2016 -0700"
      },
      "message": "Add missing shared library\n\nHost builds were compiling without -Wl,--no-undefined.  Add missing\nshared library so that -Wl,--no-undefined can be added again.\n\nTest: m -j host\nBug: 32305815\nChange-Id: I39456a95c37b64b6ac65c0b3220d4816ce34e5c6\n"
    },
    {
      "commit": "aa8b60c23a2229159cbd5fde831de8d6d57e50d3",
      "tree": "2ff66bc789f323ea619d2e5ddc054cea3dfe87de",
      "parents": [
        "05a364c8d8271ceeca307d04736f53e92d03de9d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 12 12:51:25 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 14 14:49:35 2016 -0700"
      },
      "message": "ART: Add GetLoadedClasses support\n\nAdd support to retrieve all loaded classes. Use the standard\nClassLoader callback infrastructure.\n\nBug: 31684578\nTest: m test-art-host-run-test-907-get-loaded-classes\nChange-Id: Ifb33cae27dc32602bcd8fd930d3c7eda02598c26\n"
    },
    {
      "commit": "e54d992ee75c0924c9a8d4e2f77dacf44c8c651b",
      "tree": "b3bbf220dcd67c5496110a7096d9349b184411f6",
      "parents": [
        "f0ab2ec6008bbd495e59bb9bf81ac399d864f38b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 11 19:55:37 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 12 11:22:38 2016 -0700"
      },
      "message": "ART: Add heap iteration callback\n\nAdd callback support for heap iteration. Visiting of fields will\nbe done in a follow-up.\n\nAdd a test.\n\nBug: 31385354\nTest: m test-art-host-run-test-906-iterate-heap\nTest: m ART_TEST_GC_STRESS\u003dtrue ART_TEST_GC_VERIFY\u003dtrue test-art-host-run-test-906-iterate-heap\nChange-Id: I7bcf6751e6df4ef58756ba97701050b2ff5eb07b\n"
    },
    {
      "commit": "cc13b2226bcfb41e917f99ae5aeab79f25ed052e",
      "tree": "335dea9a3392bd971d14c1f9f38e482d45b836a1",
      "parents": [
        "c1f24b947a4dfe76064db3ae5470a388a67650a8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 10 19:09:09 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 11 14:03:54 2016 -0700"
      },
      "message": "ART: Add object reclaim support\n\nAdd support for the object free callback.\n\nRefactor code in support. Add test.\n\nBug: 31384923\nTest: m test-art-host\nTest: m test-art-host-run-test-905-object-free\nTest: m ART_USE_READ_BARRIER\u003dtrue test-art-host-run-test-905-object-free\nChange-Id: Icde40ad464c723cfe2f7660c07cd2f79b6dc2032\n"
    },
    {
      "commit": "27fa96c285c4aa2f64e9bb63a3f38ffdc98c282a",
      "tree": "bece47e22bf5b8a212da88019dfed5eee01f7b88",
      "parents": [
        "77708d9149b0a00247eb69ea4d5386cae4e40287"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 07 15:05:24 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 10 13:27:45 2016 -0700"
      },
      "message": "ART: Add allocation callback\n\nBug: 31684277\nTest: m test-art-host\nChange-Id: I959f44e23ca5fe55ed678315708895faf0aadb04\n"
    },
    {
      "commit": "6dee92eb2ebddbea7e147c7a82b193e113b6421f",
      "tree": "24975672d085f9f2b459af6081f4536be194fdb6",
      "parents": [
        "cf42ad62df2dda8b5a39cab50669a9446a880b41"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 19:58:13 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 05 12:54:03 2016 -0700"
      },
      "message": "ART: Support object tagging\n\nAdd support for tagging in the JVMTI plugin.\n\nBug: 31385027\nTest: m test-art-host\nChange-Id: I4d8fb12cd23ca60dc0b0ce9051d1c77e5eb18aa9\n"
    },
    {
      "commit": "9642b1b698c1239cb13c8774936fd990c1a6a6c6",
      "tree": "179a8916660a0de5ee8c923c080dfd7af0fa3147",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 28 02:44:00 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 30 08:16:18 2016 -0700"
      },
      "message": "Remove dependency on libcutils\n\nUse liblog for liblog (instead of libcutils)\nReplace calls to property_get with libbase\nGetProperty()\n\nBug: http://b/31289077\nBug: http://b/27171986\nTest: remove liblog from libcutils and recompile\nTest: make test-art-target -j4\nChange-Id: I2a2913af8f521131558e9dd672d3973a64a410d3\n"
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "45026e4548641b1c0da0a030d563adb894bc5dd5",
      "tree": "2776c84234446d11ee31e346cd134fcc7a724ffc",
      "parents": [
        "eb82e9952549cf7020a9610663ba862a73f2b5ec",
        "b5d36de38d3352edb169b7081e836a7698528acc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 05:38:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 05:38:52 2016 +0000"
      },
      "message": "Merge \"Don\u0027t warn for frame size in tests.\""
    },
    {
      "commit": "9c20a14103f87a8a7ad53f7d3e863887ea4e800a",
      "tree": "1fd4b123bae008f670f806024c88d3dc404da24b",
      "parents": [
        "a51a135f114f6f0dbf7c4afd336f68b4a0d1bb7d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 23 15:05:12 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 21 15:47:06 2016 -0700"
      },
      "message": "Get a basic modification of dex file working\n\nThis allows the modification of a single classes methods through\ntransformation. One must ensure that the provided dex file only\ncontains one function and does not add or remove any methods or fields\nand does not change the inheritance hierarchy in any way. The provided\ndex file must verify and there must be no frames of the old code\npresent on any thread. These constraints are not checked or verified.\nBreaking them might cause undefined behavior in all parts of the\nruntime. Code that has been inlined in any way might not be replaced.\nThis feature is extremely experimental.\n\nBug: 31455788\nTest: ./test/run-test --host 902-hello-transformation\n\nChange-Id: I35133d24f6cdafdd2af9dc9863e15ba8493fc50e\n"
    },
    {
      "commit": "b5d36de38d3352edb169b7081e836a7698528acc",
      "tree": "ebb1d69e414c93932f8a8ba4785ecedde518b44e",
      "parents": [
        "692cc743146ff14b8e6f97945e9069ef66d15dbd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 21 14:56:51 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 21 14:56:51 2016 -0700"
      },
      "message": "Don\u0027t warn for frame size in tests.\n\nThe libc++ update I\u0027m working on trips this (seems to be related to\nstring constructors now being inlined, but I can\u0027t say for sure). ART\nitself is still under the limits.\n\nTest: mm\nBug: None\nChange-Id: Ic23c3e3aadc8db625767d8ecc727aec84f1e4603\n"
    },
    {
      "commit": "fd5428b636c08c3bb100f40631c4334efd79a496",
      "tree": "c5be9cc938527b46fe6cd5ec126773c646ae51c2",
      "parents": [
        "904614f008fa03b4443f1a0abdac1a1966805696"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:40:05 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:48:58 2016 -0700"
      },
      "message": "Fix mac build\n\nMove darwin disabling to art_test_defaults to disable mac build for\nlibarttest.\n\nTest: mmma -j art on mac\nChange-Id: I972245ddbacea274087d9231e4788bd9f2d6fe6b\n"
    },
    {
      "commit": "afd3c9ea7f238afebd5073c1143d3c832ab10a71",
      "tree": "ea95e66ac119b6f86f637ebbeba22e956d3a4c4e",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:47:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:10:42 2016 -0700"
      },
      "message": "Convert art runtests to Android.bp\n\nBuild the art runtest libraries with Android.bp.  The host test\nlibraries move from out/host/linux-x86/lib[64] to\nout/host/linux-x86/nativetest[64], and the device test libraires from\n/data/artest/${TARGET_ARCH} to /data/nativetest[64]/art/${TARGET_ARCH},\nwhich requires adding nativetest to the library search path, and fixing\nsome tests to support multiple entries in library search paths.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: I2118a3292f22f275954ddd7cdd4e12287fe47808\n"
    },
    {
      "commit": "2c92bf2340206eb952db0fb6d41f9b39f80ed8ea",
      "tree": "0046e071400e147b68acf44288827a44207fa270",
      "parents": [
        "6615375c908864f1ae8d8515ad91b37b12f0991a",
        "c5c7187bfa1eb214ac2cff480ff158bb32473a2f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 16 07:57:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 07:57:15 2016 +0000"
      },
      "message": "Merge \"Fix 32-bit device tests\""
    },
    {
      "commit": "c5c7187bfa1eb214ac2cff480ff158bb32473a2f",
      "tree": "53255873217441ce286224f79fbd47bd42848afd",
      "parents": [
        "124f8813856f13033dc2efd50c65562cd2f95816"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 21:07:29 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 21:53:32 2016 -0700"
      },
      "message": "Fix 32-bit device tests\n\n32-bit tests are installed to /data/nativetest, not /data/nativetest32.\n\nTest: m -j test-art-target-gtest32\nChange-Id: I2736d6783dd34550dbfbbe54ffa724cd2b886d8b\n"
    },
    {
      "commit": "942036fbeb53eb950576ed9727379bac29919567",
      "tree": "0bd768670d571f03a68cc6febb10393b531b0624",
      "parents": [
        "7d26164308e9eab5c596a19b841e4ab1c27828a8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 16:24:51 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 16:24:51 2016 -0700"
      },
      "message": "Fix mac build\n\nI accidentally dropped the hunks that disabled the mac build when\nrebasing.\n\nChange-Id: I412325f71c4bfde7a357b50daeb966e6db32c388\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "6b22aa5106e60545119b9eeaceaa9f87ee597305",
      "tree": "ab26f42ac9fb9fff52c6f0683561c0bcdebd9569",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 14:35:39 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:24:25 2016 -0700"
      },
      "message": "Convert libart-gtest to Android.bp\n\nChange-Id: Ibea17e3e002e6ad3f82158cd3c69d087fa9b15c9\n"
    }
  ]
}
