)]}'
{
  "log": [
    {
      "commit": "72fdec392833d5a6449d57039bbddf8ab6a9782f",
      "tree": "4598e0465a3291aa039fa8d0aee2b242b1c34269",
      "parents": [
        "ad70f8f9971d4dab0b0be0ca2d45db73d058ca69",
        "16d4843433e024100b4ecd183f827ad5bd8772a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 17:13:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 17:13:13 2017 +0000"
      },
      "message": "Merge \"Allow dex2oat to handle relative paths.\""
    },
    {
      "commit": "46d342f845f5faadac1a61d064ccca3a5d2601c7",
      "tree": "6f8d60f15e341f876f52d590116fbba4b605b80d",
      "parents": [
        "bea9172064af539ae4235aa9b169691ca85fb57e",
        "d1ef87339c5af782652678d5849d1dfab14d79ce"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 19 11:32:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 11:32:50 2017 +0000"
      },
      "message": "Merge \"ARM64: Heap poisoning for link-time Baker CC read barrier thunks.\""
    },
    {
      "commit": "bea9172064af539ae4235aa9b169691ca85fb57e",
      "tree": "d2b9d0fb8867b876ac07bc5f148e83c227bbb559",
      "parents": [
        "aebc6870db9c1c4df78512732f11325740550663",
        "cdd798de1b2e7807f1cab8ebbfbb165069beae6b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 10:13:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 10:13:14 2017 +0000"
      },
      "message": "Merge \"Follow-up to 70d60275cc2860bde50e5f9c5b151e94f745ae14\""
    },
    {
      "commit": "d1ef87339c5af782652678d5849d1dfab14d79ce",
      "tree": "8b8b936ce58043248b2b58497e7b210c49a704b1",
      "parents": [
        "1cae72e6cfc0b4cd4ad20467dfea243139296998"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 18 13:55:13 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 19 10:31:50 2017 +0100"
      },
      "message": "ARM64: Heap poisoning for link-time Baker CC read barrier thunks.\n\nAnd fix running out of scratch registers for HArraySet\nwith large constant index and a reference to poison.\n\nTest: Nexus 6P boots with heap poisoning enabled.\nTest: testrunner.py --target with heap poisoning enabled on Nexus 6P.\nBug: 29516974\nBug: 30126666\nBug: 36141117\nChange-Id: Ifb38f4a0e23a2963468772f34f294febfc340b8c\n"
    },
    {
      "commit": "cdd798de1b2e7807f1cab8ebbfbb165069beae6b",
      "tree": "3cd00e41bdc8972936f39e6ec7f3cd262b45fa1e",
      "parents": [
        "2203253254e18ebde386740d3c841c04c432a42e"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 18 18:28:51 2017 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 19 10:16:45 2017 +0200"
      },
      "message": "Follow-up to 70d60275cc2860bde50e5f9c5b151e94f745ae14\n\nTest: make -j build-art-host\nChange-Id: Id6e81518041bd64dec537ff3da2fa049d39b27d0\n"
    },
    {
      "commit": "0d8cf9106c1db0c9544ae018c9e2ff02152330f4",
      "tree": "16cfd15d9d84cc3cbe8fa003fe11dee4b01edbe1",
      "parents": [
        "ea24e09568d695593af1f896c5630a589ab44944",
        "1c8f4ff04062407db3d2dd834dd6bc24f6662c4d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 19 07:23:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 07:23:38 2017 +0000"
      },
      "message": "Merge \"Always check result of Thread::ModifySuspendCount\""
    },
    {
      "commit": "ea24e09568d695593af1f896c5630a589ab44944",
      "tree": "7978daba15322390df18a33cc6712e5110c439e0",
      "parents": [
        "77ced6adfd4de14a868364c4f03986be79d3a081",
        "a25504e7026109227691ca944f9359ca23d733ab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 19 02:41:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 19 02:41:03 2017 +0000"
      },
      "message": "Merge \"Call mirror::CallSite::VisitRoots\""
    },
    {
      "commit": "16d4843433e024100b4ecd183f827ad5bd8772a6",
      "tree": "30b6f526051faaf8cc5ebbc15a7dfeef051a153f",
      "parents": [
        "2203253254e18ebde386740d3c841c04c432a42e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 05 17:05:46 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 18 17:03:11 2017 -0700"
      },
      "message": "Allow dex2oat to handle relative paths.\n\nDuring installation at compile time, the PackageManager is passing\nshared libraries to dex2oat with -classpath. For split apps, we want the\nsplits to have the proper dependencies, and are now passing previous\nparts of the split apk as shared libraries as we compile them all. These\napks are staged in a temp dir during compilation, so we pass a relative\npath for them instead.\n\nSince PackageManager can now pass relative paths to dex2oat as shared\nlibraries, dex2oat has an added --classpath-dir switch to specify the\ndirectory to use for relative class paths. At runtime when checking\nshared libraries, we use oat file functionality to resolve relative paths\nto determine if the paths match.\n\nBug: 34169257\nTest: cts-tradefed run singleCommand cts -d --module\nCtsAppSecurityHostTestCases -t android.appsecurity.cts.SplitTests\n\nMerged-In: I9667f0069c8d12e94598f8a78888d3855d870824\n(cherry-picked from commit f79ac83a8c18b0bd81aafc9c8823f6bed35d8847)\n\nChange-Id: I8e4703fdd4bfeb94f982e93abb7eb0cd71060fce\n"
    },
    {
      "commit": "a25504e7026109227691ca944f9359ca23d733ab",
      "tree": "ebf4288caea3d996e585b7521971897b21b51532",
      "parents": [
        "741a81af441cbcb7255229bf250bc009d2894e92"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 16:14:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 23:24:07 2017 +0000"
      },
      "message": "Call mirror::CallSite::VisitRoots\n\nNeeded to visit CallSite static class root.\n\nTest: test/run-test --no-patchoat --relocate --host --64 --interpreter --gdb 952\n\nBug: 33191717\n\nChange-Id: I1fad3df8ad810c5c7905afadfa25cdc0901ef035\n"
    },
    {
      "commit": "70713df8e245ef0df597474b96ac33fcfb3d99ed",
      "tree": "fd08e1a9cb59458a9059447230ba8d7482ee6992",
      "parents": [
        "741a81af441cbcb7255229bf250bc009d2894e92"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 18 13:03:31 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 18 13:57:10 2017 -0700"
      },
      "message": "Fix obsolete method change check.\n\nWe were incorrectly checking for changes in the obsolete-method map.\nThis could cause issues if a class was redefined multiple times.\n\nBug: 37475600\n\nTest: ./test.py --host -j40\nTest: cts-tradefed run cts-dev --module CtsJvmtiRedefineClassesHostTestCases\n\nChange-Id: Icf39d5154c0e48461405b700bf1fa20830195fc1\n"
    },
    {
      "commit": "e4e7d601ef8c6b23f7598af2053549ca48fa6c2c",
      "tree": "b768fe36ee20ad9ada193783ce8bd2e4832f2d3c",
      "parents": [
        "2888e85164673d3b196330ef315b9f47dc866419",
        "35b59a262f660adaf30db11bc0c3d14bb56ebf79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 18:24:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 18:24:01 2017 +0000"
      },
      "message": "Merge \"Differentiate between native alloc and normal background GC\""
    },
    {
      "commit": "2888e85164673d3b196330ef315b9f47dc866419",
      "tree": "bfa61c4fb44e9849ad3e0bae9e166670bcaa5515",
      "parents": [
        "c36a970fcd4878eafd03d41eeff0a4cbdd400326",
        "d1fbcfffdf1e2143acf8084b99f647481e7b0290"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 18:21:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 18:21:42 2017 +0000"
      },
      "message": "Merge \"ART: Make less lock-level noise on abort\""
    },
    {
      "commit": "35b59a262f660adaf30db11bc0c3d14bb56ebf79",
      "tree": "d022eb3b0d944daa054e124165c8b8e988c9c9d8",
      "parents": [
        "36831abc29f76baee9a7673a2c18465f33df3f05"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 17 15:24:43 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 17:29:02 2017 +0000"
      },
      "message": "Differentiate between native alloc and normal background GC\n\nAdded a new GC cause kGcCauseForNativeAllocBackground.\n\nBug: 35872915\n\nTest: test-art-host\n\nChange-Id: I94e17f8bd53af29f2862b9910bd8abd2df97e229\n"
    },
    {
      "commit": "c36a970fcd4878eafd03d41eeff0a4cbdd400326",
      "tree": "67de8d6aebab3dfdb127ed445a51ce76a3146a91",
      "parents": [
        "b2410c931a0ffa8df7c0911309ddac7d59314ad2",
        "71b1708f1e610143dc657e370f85eebbde4a900e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 17:14:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 17:14:02 2017 +0000"
      },
      "message": "Merge \"Use correct type for GetValueFromShadowFrame\""
    },
    {
      "commit": "71b1708f1e610143dc657e370f85eebbde4a900e",
      "tree": "165b24e1d70cdc3d92f845f8eb7485f2a9d3e061",
      "parents": [
        "27fb1dc467effbd8df43e6207743fdb7bcee4044"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 17 20:12:29 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 09:49:40 2017 -0700"
      },
      "message": "Use correct type for GetValueFromShadowFrame\n\nThe field type is not necessarily the input type for boxed\nprimitives. If the field type is \u003c 32 bits, it means there will be\npartial object pointer in the JValue. If a conversion check is\nlater needed in GetUnboxedTypeAndValue, it will crash. The fix is\nto use the PTypes.\n\nBug: 37446461\nTest: test-art-host\nChange-Id: I0c4b405f0c13910523b98a87ef12b9f302a5e241\n"
    },
    {
      "commit": "2203253254e18ebde386740d3c841c04c432a42e",
      "tree": "fd54fd5bbf17bd0614830f0d2f45ca1790be68b8",
      "parents": [
        "2aac653df76bba3e4e7b44372efe131b1984802b",
        "70d60275cc2860bde50e5f9c5b151e94f745ae14"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 18 16:11:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 16:11:56 2017 +0000"
      },
      "message": "Merge \"JDWP: fix Dbg::ResumeThread\""
    },
    {
      "commit": "1c8f4ff04062407db3d2dd834dd6bc24f6662c4d",
      "tree": "a116c7d55fc1bcff2b451028f46a1196ee15d990",
      "parents": [
        "c1be9f2b776b4900e0603013f7c4d84e534f0bb0"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 14 15:05:12 2017 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 18 18:06:54 2017 +0200"
      },
      "message": "Always check result of Thread::ModifySuspendCount\n\nEnsures that we never ignore the result of ModifySuspendCount so that\nwe can react if the suspend count is not updated as expected.\n\nThis CL does the following:\n* Adds __attribute__((warn_unused_result)) on the method to raise an\n  error at compilation time if the result is ignored.\n* Wraps calls with DCHECK where the result used to be ignored.\n\nBug: 27385848\nTest: make -j test-art-host\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: I2d0e1ab7158c70ec8076c8bae6e4b814aee75af6\n"
    },
    {
      "commit": "2aac653df76bba3e4e7b44372efe131b1984802b",
      "tree": "cd9c1f5fd5977fe98352c8c0d3dcc6e740a0b778",
      "parents": [
        "1cae72e6cfc0b4cd4ad20467dfea243139296998",
        "21cf95d8f34dc9cc20c75896a0cc4df9a8fd77e6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 15:12:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 15:12:59 2017 +0000"
      },
      "message": "Merge \"ART: Call ThreadGroup.add in Thread::FinishStartup\""
    },
    {
      "commit": "4cb99a13d21443a028a8e8a54261e215ca4b5a74",
      "tree": "a6d1400ac5c32b0bdb7d53337c04cc9d736d2d4c",
      "parents": [
        "36831abc29f76baee9a7673a2c18465f33df3f05",
        "d38ba0a3abd7f6140f0851d826449afec5689d57"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 11:29:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 18 11:29:26 2017 +0000"
      },
      "message": "Merge \"Fix Arena allocation tracking.\""
    },
    {
      "commit": "d1fbcfffdf1e2143acf8084b99f647481e7b0290",
      "tree": "e66ea4e451815ab705f5d070f16089ced6f2cecd",
      "parents": [
        "36831abc29f76baee9a7673a2c18465f33df3f05"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 17 21:40:28 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 17 21:40:28 2017 -0700"
      },
      "message": "ART: Make less lock-level noise on abort\n\nThe lock-level violations with the abort lock aren\u0027t really all\nthat interesting.\n\nTest: m test-art-host\nChange-Id: I8a5fc687009db914ec8f60d86068d87e71f8a894\n"
    },
    {
      "commit": "21cf95d8f34dc9cc20c75896a0cc4df9a8fd77e6",
      "tree": "0f0e14c2f3f1f6637558b5221deab4568665e0bb",
      "parents": [
        "36831abc29f76baee9a7673a2c18465f33df3f05"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 17 20:19:14 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 17 21:16:29 2017 -0700"
      },
      "message": "ART: Call ThreadGroup.add in Thread::FinishStartup\n\nART should add the main thread to the main ThreadGroup. Behavior\nof the Thread constructor changed.\n\nBug: 37444210\nTest: art/test/testrunner/testrunner.py -b --host -t 051\nTest: m test-art-host\nTest: m build-art-host \u0026\u0026 art/tools/run-libcore-tests.sh --mode\u003dhost\nChange-Id: I92cf2f9a6c5c3fdf385eb7925addc38b64fa4d98\n"
    },
    {
      "commit": "445452cda055221bda43d88f0317f808e24c52f2",
      "tree": "5aba814b733722a5109b7b4aaafc29a45f0392ff",
      "parents": [
        "4bb9a2b0b2fb2db93005740b969831114632d0b6",
        "4707af81bc10bda1c4320288246170e444c69942"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 17 21:26:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 17 21:26:48 2017 +0000"
      },
      "message": "Merge \"Print runtime isa when invoking \u0027dalvikvm --showversion\u0027\""
    },
    {
      "commit": "f040be6668b6566066fc4bf7c447569b5b46d670",
      "tree": "1d0ab31a540a33947d44a2f06d1224a387506d3f",
      "parents": [
        "39d562895ab3ff835003fe3df6c13a93db492aa8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 14 21:49:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 14 21:52:45 2017 -0700"
      },
      "message": "ART: Tentative fix for stack count issue in test 913\n\nUse kCountTransition \u003d\u003d kNo to also skip runtime methods in the\ncur_depth_ count of a StackVisitor.\n\nCurrently this is only used in the VisitRoots function of Thread.\nIf the additional load is too expensive, we can make this dependent\non the requested precision (and thus revert \"regular\" visits to\nthe old scheme of also counting transitions between managed stack\nframes and shadow frames, which is only an increment of a field).\n\nBug: 31385354\nBug: 32072923\nTest: m test-art-host\nChange-Id: Ief951585407dd6e03f8050774fe612e7b204247e\n"
    },
    {
      "commit": "1cda71a414c95cd7e8cf0c71a69bb6780f9e6326",
      "tree": "5f0bc54e984b5829cb9fd3db5d319a24691e1af9",
      "parents": [
        "452092b4c98a7ee9bae71ed1bbd34ccd837de9d8",
        "120504f52b5feedcb9ad7dedc54d7618a2f2c31b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 15 01:03:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 15 01:03:52 2017 +0000"
      },
      "message": "Merge \"Add check that TypeIndex is valid in StringByTypeIdx.\""
    },
    {
      "commit": "120504f52b5feedcb9ad7dedc54d7618a2f2c31b",
      "tree": "e03daac7c8b52a76edbf96a3c7d687c227111587",
      "parents": [
        "c569d4a08378aa8f832e89f25df0abde47158836"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 14 14:33:52 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Sat Apr 15 01:00:08 2017 +0000"
      },
      "message": "Add check that TypeIndex is valid in StringByTypeIdx.\n\nStringByTypeIdx should fail gracefully if given a bad TypeIndex. This\nadds a check that the TypeIndex is valid before getting its TypeId.\n\nThis fixes a regression that removed this check when it was refactored\nin this CL: https://android-review.googlesource.com/#/c/243493/\n\nBug: 37287051\nTest: mm -j31 test-art-host-gtest-dex_file_test\nChange-Id: Ib68cb8135011f5f30335251583e181b089982754\n"
    },
    {
      "commit": "4707af81bc10bda1c4320288246170e444c69942",
      "tree": "cf719001b9beee4567b09976e6ad0295aa7bda6e",
      "parents": [
        "e2dfd30e752ed94944cb6f614f1a4cf18d038677"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 13 16:35:42 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 14 17:37:22 2017 -0700"
      },
      "message": "Print runtime isa when invoking \u0027dalvikvm --showversion\u0027\n\nThe runtime ISA is appended at the end, after the version number.\n\nTest: dalvikvm --showversion\nBug: 36824842\nChange-Id: I09bbe3bf06054fe237543b5f96e9480631ea0838\n"
    },
    {
      "commit": "70d60275cc2860bde50e5f9c5b151e94f745ae14",
      "tree": "afc785bedfa86320cce7a1d3c4578ae9763f076f",
      "parents": [
        "c1be9f2b776b4900e0603013f7c4d84e534f0bb0"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 14 14:18:36 2017 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 14 14:22:18 2017 +0200"
      },
      "message": "JDWP: fix Dbg::ResumeThread\n\nA thread should be resumed if and only if it has been suspended by\nthe debugger. Therefore, we must check the debug suspend count, not\nthe suspend count (which includes debug suspend count). Otherwise we\ncould end up resuming a thread that has been suspended for another\nreason (like a GC) but not by the debugger itself.\n\nBug: 27385848\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: I70ed6dfc233501e92332634650babf21ba911048\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": "d58d0841b47caf71247ddb3752ccffb9340e576e",
      "tree": "e6aca2c19972a007e79a0d363a2e3d49a52ee259",
      "parents": [
        "704f16f78688f1a1e5084e289d15041b7667d93e",
        "a4cd6779fc5fc73d84d5ca269b89a33064267cce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 23:24:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 23:24:21 2017 +0000"
      },
      "message": "Merge \"Add check that map offset is sane to DexFile object init.\""
    },
    {
      "commit": "704f16f78688f1a1e5084e289d15041b7667d93e",
      "tree": "1635e7b28cb33422f47da5b638aa61d1c9cdfd47",
      "parents": [
        "52e3e5748880f8a65f564e122bb925e71be448eb",
        "d08f66f519f6cf75c2eb05a489b6e87f739badff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 13 23:21:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 23:21:54 2017 +0000"
      },
      "message": "Merge \"Various debug ART GC performance improvements\""
    },
    {
      "commit": "a4cd6779fc5fc73d84d5ca269b89a33064267cce",
      "tree": "fbfea67a5f6e284ec7b8dc3a2022d6f03579666f",
      "parents": [
        "ce121a5fe3e537872af077c801443be9a525859b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 13 14:36:29 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 13 14:43:13 2017 -0700"
      },
      "message": "Add check that map offset is sane to DexFile object init.\n\nThe DexFile constructor calls InitializeSectionsFromMapList, which\nuses the header\u0027s map_offset before any checks are done on the file.\n\nBug: 37235346\nTest: mm test-art-host-gtest-dex_file_test\nChange-Id: I4fb8fcb57f9ef7e0182965b7ce663424b953abcb\n"
    },
    {
      "commit": "d08f66f519f6cf75c2eb05a489b6e87f739badff",
      "tree": "aa00ac17e22021d9342f342c3d7635677be9b0f7",
      "parents": [
        "dbe35eddc4324468e08afc0829787f02ee736cea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 13 11:47:53 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 13 14:18:45 2017 -0700"
      },
      "message": "Various debug ART GC performance improvements\n\nRemoved unnecessary read barriers in SizeOf and a few other places.\nDisabled disallow read barrier check.\n\nBefore:\nGC time: 15.817s\nReal 0m26.113s\nuser  1m16.780s\nsys 0m3.152s\n\nAfter:\nGC time: 9.212s\nreal  0m19.875s\nuser  1m9.916s\nsys 0m1.916s\n\nBug: 35644369\nTest: test-art-host\n\nChange-Id: I79a65259deff2a478a96e02ae69b14730b6dcbe6\n"
    },
    {
      "commit": "e1f79b62f37e8008fe1889f0a7c783be367a0cef",
      "tree": "550b6aa2c23de5160d1a3f4913fd4890d47601bf",
      "parents": [
        "c83010128175bf8be0b6cbf07bd96c743a2d5d5f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 12 21:11:28 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 13 10:27:18 2017 -0700"
      },
      "message": "ART: Fix GetArgumentsSize\n\nFix the copy-paste mistake in GetArgumentsSize for abstract and\nproxy methods. Use the usual computation derived from the shorty.\n\nBug: 34163329\nTest: art/test/testrunner/testrunner.py --host -t 910\nChange-Id: I71eaab70063303bea8eaa391ea067ebf8027820f\n"
    },
    {
      "commit": "7b331261c6bdb6316a649ab591813f4dd1a5892f",
      "tree": "22b60227265c73903428ea55cde3123ea992ac4e",
      "parents": [
        "b1a52116a1ca418dcccad2ca2acd6cb36f8ca0e7",
        "f4f2daafb38c9c07ea74044a0fb89a2a19288b7a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 13 12:54:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 12:54:23 2017 +0000"
      },
      "message": "Merge \"ARM64: Use link-time generated thunks for Baker CC read barrier.\""
    },
    {
      "commit": "d38ba0a3abd7f6140f0851d826449afec5689d57",
      "tree": "039757ab2e782fcda1a667cb91a84fa142e49d05",
      "parents": [
        "4766f2cd27c3de80eb74c302a9eb4cc7c97e5de1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 13 13:43:43 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 13 13:48:57 2017 +0100"
      },
      "message": "Fix Arena allocation tracking.\n\nAdd missing allocation kind name and try to avoid\nbit-rot in future by explicitly instantiating\nArenaAllocatorStatsImpl\u003ctrue\u003e in debug builds.\n\nBug: 34083438\nTest: Rely on TreeHugger.\nChange-Id: Ibe78a9f15d04b2ca2f03143fb4f49c01ae18471e\n"
    },
    {
      "commit": "b1a52116a1ca418dcccad2ca2acd6cb36f8ca0e7",
      "tree": "21c315941ce943d4522c1108f74ec2830792ac4b",
      "parents": [
        "89d424832002732983fa40df244a087e0dd21028",
        "b9005fa3d370198fea7a750b645954d618594139"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 11:17:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 11:17:07 2017 +0000"
      },
      "message": "Merge \"MIPS32: Add direct calls to math intrinsics.\""
    },
    {
      "commit": "687fb792b2a819bb43d45eb720ed68a077ed1beb",
      "tree": "ca2a6bb4b229c363a3eb1f19e4365f1b3193ff7f",
      "parents": [
        "dbe35eddc4324468e08afc0829787f02ee736cea",
        "bb766464bced8ca7db9cdaf635ae04759151a088"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 01:32:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 01:32:52 2017 +0000"
      },
      "message": "Merge changes I49c02b92,I898e5cff\n\n* changes:\n  Ensure one can call DisposeEnvironment during event callbacks.\n  run-tests with jvmti-stress configuration\n"
    },
    {
      "commit": "bb766464bced8ca7db9cdaf635ae04759151a088",
      "tree": "113c502563db8680eb38d1204ae265620bc9ef31",
      "parents": [
        "8f2c6d479aeda3165c4f54c1076ec7ac335fccc7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 12 16:13:33 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 12 16:54:50 2017 -0700"
      },
      "message": "Ensure one can call DisposeEnvironment during event callbacks.\n\nPreviously calling DisposeEnvironment during an event callback would\ncause a currently in-use iterator to be invalidated. This could cause\nundefined behavior.\n\nBug: 37283252\nTest: ./test/testrunner/testrunner.py --host --jvmti-stress -j40\nChange-Id: I49c02b925f0da5d4f66965f0fca21bf8dc83132a\n"
    },
    {
      "commit": "dbe35eddc4324468e08afc0829787f02ee736cea",
      "tree": "80af29b8a1e9efedbec26603a2bee9a482b9b98b",
      "parents": [
        "de833ef742ccfc0d23921fa43086fd07d80ca5ba",
        "74c2058ed83f43aa59f467ac4ecc730edbe42e41"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 12 18:39:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 12 18:39:46 2017 +0000"
      },
      "message": "Merge \"MIPS64: Add direct calls to math intrinsics.\""
    },
    {
      "commit": "b9005fa3d370198fea7a750b645954d618594139",
      "tree": "17013ee81fb25be28820ad61afac30138ccc3e15",
      "parents": [
        "de833ef742ccfc0d23921fa43086fd07d80ca5ba"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Mar 24 12:11:54 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Wed Apr 12 11:08:24 2017 -0700"
      },
      "message": "MIPS32: Add direct calls to math intrinsics.\n\n- cos       - sin       - acos      - asin\n- atan      - atan2     - cbrt      - cosh\n- exp       - expm1     - hypot     - log\n- log10     - nextAfter - sinh      - tan\n- tanh\n\nTest: run-test --no-prebuild --optimizing 123-inline-execute2\nTest: run-test --no-prebuild 123-inline-execute2\nTest: run-test --optimizing 123-inline-execute2\nTest: run-test 123-inline-execute2\nTest: Booted MIPS32R2 and MIPS64R6 emulators.\n\nNote: Ran tests under both emulators, and on CI20 hardware.\n\nChange-Id: I4c1782d609a985ae49737f47c43caa5b0b6a10e3\n"
    },
    {
      "commit": "de833ef742ccfc0d23921fa43086fd07d80ca5ba",
      "tree": "c6fc9818d2943fa4bd038773a91c278b48530f52",
      "parents": [
        "34478ae3a5e5da25c8e1051e95831b5e007cfe57",
        "0ecb236aedb3debd0d000fb219a75e39879549a2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 12 17:56:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 12 17:56:15 2017 +0000"
      },
      "message": "Merge \"Fix broken DCHECK.\""
    },
    {
      "commit": "34478ae3a5e5da25c8e1051e95831b5e007cfe57",
      "tree": "6920f1a00a34d10cf5e20508a394d74d30042bbf",
      "parents": [
        "5ec409da4af7198c4dbbdb887a1cb50029ce948b",
        "55c05f5b4e2c0cc084ee332bf7ae54ea44cde8ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 12 17:28:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 12 17:28:38 2017 +0000"
      },
      "message": "Merge \"Clear zygote space cards for CC\""
    },
    {
      "commit": "5ec409da4af7198c4dbbdb887a1cb50029ce948b",
      "tree": "6596989c39d0760c8cdbaea31ae1cc3ff48774ec",
      "parents": [
        "4766f2cd27c3de80eb74c302a9eb4cc7c97e5de1",
        "1d4950167b45369299fe30d7381516c3b5380a01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 12 17:27:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 12 17:27:40 2017 +0000"
      },
      "message": "Merge \"Fix -XX:DumpGCPerformanceOnShutdown for debug builds\""
    },
    {
      "commit": "f4f2daafb38c9c07ea74044a0fb89a2a19288b7a",
      "tree": "13fd63a65c12e60074bc2bc1e693fbb3b788ed8e",
      "parents": [
        "26c25d5da32fe1bdd94dd1404197c14994ecab60"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 20 18:26:59 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 12 17:02:06 2017 +0100"
      },
      "message": "ARM64: Use link-time generated thunks for Baker CC read barrier.\n\nRemaining work for follow-up CLs:\n  - array loads,\n  - volatile field loads,\n  - use implicit null check in field thunk.\n\nTest: Added tests to relative_patcher_arm64\nTest: New run-test 160-read-barrier-stress\nTest: m test-art-target-gtest on Nexus 6P.\nTest: testrunner.py --target on Nexus 6P.\nBug: 29516974\nBug: 30126666\nBug: 36141117\nChange-Id: Id68ff171c55a3f1bf1ac1b657f480531aa7b3710\n"
    },
    {
      "commit": "0ecb236aedb3debd0d000fb219a75e39879549a2",
      "tree": "69eb8921ea73e4ef0171cd9feef253168a4a3af6",
      "parents": [
        "4766f2cd27c3de80eb74c302a9eb4cc7c97e5de1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 12 09:01:47 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 12 09:01:47 2017 -0700"
      },
      "message": "Fix broken DCHECK.\n\nThe DCHECK in ti_class_definition was incorrectly checking that the\noriginal dex file was a primitive long instead of a boxed long.\n\nBug: 37271822\nTest: ./test/testrunner/testrunner.py --host --jvmti-stress -j40\nChange-Id: I901c6e2f6f93dca584faff70134cee957d8462c3\n"
    },
    {
      "commit": "467610e9b9251bdeaedc759cecf4de5208a38798",
      "tree": "72f4fc453b21e4e26c897b8d606d2335c1c6b64b",
      "parents": [
        "ea07a65281b0199dacc134fa377e1d71bff832d7",
        "9e2c81b67caf4d3b44f8c577b48d632c9b02b220"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 12 04:07:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 12 04:07:44 2017 +0000"
      },
      "message": "Merge changes Ic7d75e1e,Iaf828034\n\n* changes:\n  ART: Fix GetSystemProperty (2)\n  ART: Fix GetSystemProperty\n"
    },
    {
      "commit": "1d4950167b45369299fe30d7381516c3b5380a01",
      "tree": "fd07613cfb67795d927afac0d9876b4a71257803",
      "parents": [
        "ef6787bd892b55588ebb2835cc3a3bc4e9e08d04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 17:50:00 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 19:15:32 2017 -0700"
      },
      "message": "Fix -XX:DumpGCPerformanceOnShutdown for debug builds\n\nThere was a failing DCHECK from CheckUnattachedThread. The fix is\nto dump after attaching the shutdown thread.\n\nBug: 35644369\nTest: test-art-host\n\nChange-Id: I3d927e380888418167c101b2f09d1e547fe728cf\n"
    },
    {
      "commit": "ea07a65281b0199dacc134fa377e1d71bff832d7",
      "tree": "40428c689271559eab170b9299caa6865cc5caec",
      "parents": [
        "66e226ac2fb525c7a7cbbb21a9cbbe347f531a1c",
        "9e6dee2569ba3ec393b91ee4afe0f63a4daecfa9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 11 23:51:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 11 23:51:07 2017 +0000"
      },
      "message": "Merge changes Ib29b3920,Ice5efad9\n\n* changes:\n  ART: Move trampoline logging to -verbose:dex\n  ART: Add -verbose:dex\n"
    },
    {
      "commit": "9e2c81b67caf4d3b44f8c577b48d632c9b02b220",
      "tree": "016f50d05edff30516323a55078279a82293d4fe",
      "parents": [
        "8018810a3fa49708fb7aeda01a675ad9e0d0b8c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 16:47:29 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 16:47:29 2017 -0700"
      },
      "message": "ART: Fix GetSystemProperty (2)\n\nAdd live-phase Java-call fallback for java.library.path.\n\nBug: 31455788\nTest: manual\nChange-Id: Ic7d75e1e17760fce5506359058b754eb283b9c41\n"
    },
    {
      "commit": "55c05f5b4e2c0cc084ee332bf7ae54ea44cde8ad",
      "tree": "cc9e60bc33332ff8a0a02f68c21963769ff8dd7e",
      "parents": [
        "ef6787bd892b55588ebb2835cc3a3bc4e9e08d04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 11:12:28 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 16:44:53 2017 -0700"
      },
      "message": "Clear zygote space cards for CC\n\nThere may be dirty cards from reference processing or from zygote\ncompaction. Having these dirty cards in the zygote space is\nunnecessary and causes PSS increase from GrayAllDirtyImmuneObjects\nin future GCs. Clearing the zygote space cards when the zygote\nspace is created fixes this issue and reduces PSS.\n\nSystem wide PSS for zygote space, before:\n7,899K: .Zygote\n7,896K: .Zygote\n8,067K: .Zygote\n8,547K: .Zygote\n\nAfter:\n4,881K: .Zygote\n5,003K: .Zygote\n5,582K: .Zygote\n5,259K: .Zygote\n5,176K: .Zygote\n\nBug: 12687968\nBug: 37219911\n\nTest: Device boots\nTest: test-art-host\n\n(cherry picked from commit d5a67447de577546b76c0565aed5af56176bbeb4)\n\nChange-Id: I4746c4829056f558b454c78c5991426feb460904\n"
    },
    {
      "commit": "8018810a3fa49708fb7aeda01a675ad9e0d0b8c0",
      "tree": "9271cf593a20c99952f21c525089fc9e9c6ce201",
      "parents": [
        "66e226ac2fb525c7a7cbbb21a9cbbe347f531a1c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 15:59:24 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 15:59:24 2017 -0700"
      },
      "message": "ART: Fix GetSystemProperty\n\nAlign with VMRuntime.getClassPath to emit \".\" for an empty path.\n\nBug: 31455788\nTest: manual\nChange-Id: Iaf828034d414f45c20960ab6fd0ceb598362c6f1\n"
    },
    {
      "commit": "66e226ac2fb525c7a7cbbb21a9cbbe347f531a1c",
      "tree": "00075f983d6473386f30e8873aa4359075932b8f",
      "parents": [
        "60efed530d38893eb6c1ff2c4135ecf5320f8fff",
        "0471ece3d0166097619da19c9f43522200bfda78"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 11 21:41:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 11 21:41:01 2017 +0000"
      },
      "message": "Merge \"Add option for duplicate classes check to return all dupes.\""
    },
    {
      "commit": "9e6dee2569ba3ec393b91ee4afe0f63a4daecfa9",
      "tree": "a4349d6188ed7ad2a4c35bb1cc3be7a50c74df68",
      "parents": [
        "bec07a05dd1aa564895f0d9c58c8277c576dc9bb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:50:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:50:23 2017 -0700"
      },
      "message": "ART: Move trampoline logging to -verbose:dex\n\nMove invoke logging to VLOG(dex).\n\nBug: 37158297\nTest: m test-art-host\nChange-Id: Ib29b3920e8f227395b99a9ed65de5ca10c737cc0\n"
    },
    {
      "commit": "bec07a05dd1aa564895f0d9c58c8277c576dc9bb",
      "tree": "590e3147526123734a3d5a7ec401822bf35b73d1",
      "parents": [
        "e2dfd30e752ed94944cb6f614f1a4cf18d038677"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:48:37 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 11 13:48:37 2017 -0700"
      },
      "message": "ART: Add -verbose:dex\n\nAdd a dex verbose flag to separate out concerns for dex investigations.\n\nBug: 37158297\nTest: m test-art-host\nChange-Id: Ice5efad919ae0b6838d44e2f3711563a0774ef0e\n"
    },
    {
      "commit": "1f47e6c552c1d31ed4dde231cc63758d48684d38",
      "tree": "0b9a647e07ecd34da3358073efd1ca7e8e2a1e57",
      "parents": [
        "28728f1f5a331c79fc981b067980072d6db34451"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 10 10:10:10 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 10 10:10:10 2017 -0700"
      },
      "message": "Remove some obsolete TODO comments.\n\nTest: ./test.py --host -j40\n\nBug: 31455788\nChange-Id: I66ebf053a8eb454a32905f5f5bd5be1fb1d2cc3c\n"
    },
    {
      "commit": "0471ece3d0166097619da19c9f43522200bfda78",
      "tree": "260b7333e6ea7db7ee8681c1985682f03c5dd4b5",
      "parents": [
        "672082ab6edf7c12a1d7b1d9303aa0aa4fcce089"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 07 16:28:12 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 07 18:38:36 2017 -0700"
      },
      "message": "Add option for duplicate classes check to return all dupes.\n\nWhen verbose oat is enabled, duplicate classes check will not stop at\nthe first duplicate found, outputting all duplicates found.\nCan be enabled via: adb shell setprop dalvik.vm.extra-opts -verbose:oat\n\nTest: mm test-art-host\nChange-Id: If1cd55e2ad18fa4bb12d9237e18735ee0f89840b\n"
    },
    {
      "commit": "903b8169074c01590ab3f5ad9190d9c7e3fe795b",
      "tree": "5d5a54b2879699633ad37100dfd781d4f6860897",
      "parents": [
        "7da4b9102ee2689960b73d4b5d729e926fd18bfe",
        "34067269b9493239e1fdbdd562eda1b0d2c9ec39"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 08 01:19:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 08 01:19:29 2017 +0000"
      },
      "message": "Merge \"Change dump-classes profman option to dump-classes-and-methods\""
    },
    {
      "commit": "34067269b9493239e1fdbdd562eda1b0d2c9ec39",
      "tree": "bb0f37b56e62167896c60a1346d7a91d4c6c7aa2",
      "parents": [
        "8309d9b173b205bb9530dbd94e48731c20b8e4f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 06 13:55:46 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 07 16:23:43 2017 -0700"
      },
      "message": "Change dump-classes profman option to dump-classes-and-methods\n\nThe new option is called \"--dump-classes-and-methods\". This option\ndumps methods and classes in the profile as a format that is valid\ninput for the \"--create-profile-from\" option.\n\nThe goal is to be able to store text based profiles that don\u0027t\ndepend on dex indices or checksums.\n\nTest: mm test-art-host-gtest-profile_assistant_test -j40\n\nBug: 36457259\nBug: 34927277\n\n(cherry picked from commit 09f6c36c0c5ac055bbb5e36991ab60156be1fb46)\n\nChange-Id: I79c4bd8da5c0b4dc9c4c6daed538845792f52299\n"
    },
    {
      "commit": "1e3926ae224c6418c6e1209bb134c28116a2c1fb",
      "tree": "dbd6a5611266133552841fba75a01b3541dfa6d8",
      "parents": [
        "672082ab6edf7c12a1d7b1d9303aa0aa4fcce089"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 07 10:38:06 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Apr 07 14:52:13 2017 -0700"
      },
      "message": "Free unneeded obsolete maps\n\nIn cases where there are no new obsolete methods we can get rid of the\nobsolete maps arrays.\n\nBug: 31455788\n\nTest: ./test.py --host -j40\n\nChange-Id: I4a8cd96b4293439c6e67d9426011b92125cc7b03\n"
    },
    {
      "commit": "090cfc711b4eac7ac8c0e955861372393da18cbc",
      "tree": "0faee765f2670c0af14d0a26c0ed7acb3c616ace",
      "parents": [
        "7a5eccf39dec5706351c7f14df87ccf7d0b88566",
        "6cfd4c97e7758c1f528dc40850fae785e821593d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 06 21:59:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 06 21:59:46 2017 +0000"
      },
      "message": "Merge \"ART: Report array and proxy classes in ClassLoad \u0026 ClassPrepare\""
    },
    {
      "commit": "7a5eccf39dec5706351c7f14df87ccf7d0b88566",
      "tree": "fc4f089cfc50e9fc3a661ff334adfb214548c27b",
      "parents": [
        "b361403515606c4b287b43a9dbb45d29d8d90cba",
        "07ea07ea30aa293fd9d4cc764ec27b1d769014f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 06 21:43:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 06 21:43:49 2017 +0000"
      },
      "message": "Merge \"Force save profiles for SIGUSR1\""
    },
    {
      "commit": "b361403515606c4b287b43a9dbb45d29d8d90cba",
      "tree": "d85efc5665b8c612e7b4023034adb66b6ef32576",
      "parents": [
        "74b8ec0797e74ae2e65ba82c03cbb751a1448459",
        "7337631929812fb8a60b5182eba076a32d1cb851"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 06 20:50:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 06 20:50:27 2017 +0000"
      },
      "message": "Merge \"Fixup JDWP for obsolete methods\""
    },
    {
      "commit": "6cfd4c97e7758c1f528dc40850fae785e821593d",
      "tree": "20282b2c44b4e19d880b8888ae239a4caf74784f",
      "parents": [
        "25e668b6c758cfc897a411530d36a9fe57b74a06"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 06 08:03:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 06 11:27:41 2017 -0700"
      },
      "message": "ART: Report array and proxy classes in ClassLoad \u0026 ClassPrepare\n\nWe need to report ClassLoad and ClassPrepare events when proxy\nclasses are created.\n\nWe also generate ClassLoad and ClassPrepare events to match the\nVmObjectAlloc for arrays.\n\nBug: 31684920\nTest: art/test.py --host -r -t 912\nChange-Id: I66901a9d7ff8c1f60f075dfbdd3a28d00ab60bdc\n"
    },
    {
      "commit": "7337631929812fb8a60b5182eba076a32d1cb851",
      "tree": "5831355a92d0a0cfc7bc4f8507899ec59623b16e",
      "parents": [
        "c48266eb44296fa086868b82d8a3c2b57ce186ae"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 06 10:10:51 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 06 10:23:14 2017 -0700"
      },
      "message": "Fixup JDWP for obsolete methods\n\nWe needed to implement some additional methods and behaviors in JDWP\nin order to support JVMTI obsolete methods.\n\nTest: Manual (using art/test/915-obsolete-2 \u0026 jdb debugger)\nTest: Manual (using art/test/915-obsolete-2 \u0026 Android Studio/IntelliJ debugger)\n\nBug: 31455788\n\nChange-Id: I20c2fa27a2dd002e37526b126f23ce552f19e623\n"
    },
    {
      "commit": "07ea07ea30aa293fd9d4cc764ec27b1d769014f1",
      "tree": "529af8828daa8cc884adfafad520977b27ac23b7",
      "parents": [
        "8309d9b173b205bb9530dbd94e48731c20b8e4f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 05 17:23:54 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 06 09:43:53 2017 -0700"
      },
      "message": "Force save profiles for SIGUSR1\n\nForce save profiles from signal catcher for SIGUSR1. Saving the\nprofiles is expensive but we already do a GC which is also expensive\nfor this signal.\n\nTest: adb shell ls -l /data/misc/profiles/cur/1000/system_server/\nTest: adb shell kill -s SIGUSR1 `pid system_server`\nTest: adb shell ls -l /data/misc/profiles/cur/1000/system_server/\n\nBug: 36457259\nBug: 34927277\n\n(cherry picked from commit 8f23d97af3b10ae56fb16d63fd2932098dac45c0)\n\nChange-Id: I810b66a7fe4b06efc7468d65ac737d74c5669abe\n"
    },
    {
      "commit": "9c4f0d8ffd8fb1ce31b3f8de5ca8da497e0bee9a",
      "tree": "e72395eb564f86dbc2d620ba03879a2ff1d56067",
      "parents": [
        "7851a5339d5ebd6fd2a3a8d40abc15aad694d024"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Apr 05 16:27:25 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Apr 06 10:42:52 2017 +0200"
      },
      "message": "Clean up after MIPS got read barriers support\n\nThis enables checker tests, as well as compiler_driver_test and\nreflection_test for MIPS32 and MIPS64.\n\nTest: mma test-art-host-gtest\nTest: mma test-art-target-gtest in QEMU (MIPS64)\nTest: ./testrunner.py --optimizing --target in QEMU (MIPS64)\n\nChange-Id: Ic6fe5b17f7f2cd7e38e12fef25afccf9358b80e0\n"
    },
    {
      "commit": "b27febced608c5c4944137cbd9193febe7436afe",
      "tree": "79b601d47b916a4383d750b749699c2a9fcd2f1a",
      "parents": [
        "207f9bac6f87e652e9ffb6d49ea8b058378b4bb3",
        "5395e6bab87acc2a1ff885c2bac9fb2dd40d1f34"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 05 17:26:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 05 17:26:24 2017 +0000"
      },
      "message": "Merge \"Add test for kryo support.\""
    },
    {
      "commit": "c48266eb44296fa086868b82d8a3c2b57ce186ae",
      "tree": "91132bef624b83b3d887f893c3b9d337625cf045",
      "parents": [
        "f6e11e9e218e5e70463b5b3a94c89309936601d7",
        "db01a091aefbd78b56777f4c2e8c5e3f2d8c2712"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 21:52:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 04 21:52:12 2017 +0000"
      },
      "message": "Merge \"Ensure invoking obsolete methods throws errors.\""
    },
    {
      "commit": "f6e11e9e218e5e70463b5b3a94c89309936601d7",
      "tree": "17a9787015f0ed75ff7336b2ca2e26d84510cacf",
      "parents": [
        "04d66f1add623476b9fa7d2529a179efb2029133",
        "d66def32a2d7ee5e7c5225dce52b980b63bce91c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 18:54:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 04 18:54:04 2017 +0000"
      },
      "message": "Merge \"ART: Fix preloaded dex cache expectations\""
    },
    {
      "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": "5395e6bab87acc2a1ff885c2bac9fb2dd40d1f34",
      "tree": "ba44ebe3d91bc848442fe784e8c20e598f50396c",
      "parents": [
        "4e03442619834c56dbf79a3493eb8a2d91b93e7f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 29 13:12:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Apr 04 11:11:47 2017 -0700"
      },
      "message": "Add test for kryo support.\n\nBug: 36728278\n\nTest: Ran all art unit tests on host and against a sailfish set to use kryo.\nChange-Id: If9a4c3d10b082610d38b28e77b6155e3f60a6f2b\n"
    },
    {
      "commit": "674bc3c984b8e24e90e5e8dda20197005dbf8300",
      "tree": "00d10837571bdb156d09b0dd63a47071a7613bd0",
      "parents": [
        "8682fce2634c392510b98ab0b08544a7336143b3",
        "beca4fe440a106daf65379a6c55d24418269f842"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 17:13:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 04 17:13:13 2017 +0000"
      },
      "message": "Merge \"Add analyzer for dex memory map\""
    },
    {
      "commit": "d66def32a2d7ee5e7c5225dce52b980b63bce91c",
      "tree": "e1f6db3a25115e85537fb35882179f3e6f7d6d62",
      "parents": [
        "8682fce2634c392510b98ab0b08544a7336143b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 04 10:09:05 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 04 10:09:05 2017 -0700"
      },
      "message": "ART: Fix preloaded dex cache expectations\n\nIn fallback mode, there may not be dex caches for all boot classpath\ndex files - there is no guarantee that a class from every dex file\nhas been loaded.\n\nBug: 36033084\nTest: m\nTest: m test-art-host\nTest: manual - fill the /data partition, reboot\nChange-Id: I3752b48d9d61947959e8056bd01db0e323724d37\n"
    },
    {
      "commit": "beca4fe440a106daf65379a6c55d24418269f842",
      "tree": "73566797ace08fb2948f80bb66346bef1543c0a6",
      "parents": [
        "432fccc4c001fcd822f401aea1a4214b713bd896"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 30 17:50:24 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 04 08:25:31 2017 -0700"
      },
      "message": "Add analyzer for dex memory map\n\nUse libpagemap to process vdex pages that are resident in memory.\nWalks over each vdex file mapping in a given pid, processing in one of\ntwo ways.\n\nUsing the -s (summarize) option gives, e.g.:\n\nMAPPING /system/framework/arm64/boot.vdex: 7e90133000-7e90641000\nDEX classes.dex: 7e90133000-7e90608000\nSection name                resident     total % of   % of\n                               pages     pages sect.  total\nHeader                             0         0   0.00   0.00\nAnnotationSetReferenceItem         0         0   0.00   0.00\nStringId                           1        33   3.03   0.08\nTypeId                             0         4   0.00   0.00\nProtoId                            1        21   4.76   0.08\nFieldId                            0        25   0.00   0.00\nMethodId                           2        69   2.90   0.16\nClassDef                           0        26   0.00   0.00\nAnnotationSetItem                  0        13   0.00   0.00\nCodeItem                           1       555   0.18   0.08\nAnnotationsDirectoryItem           0        34   0.00   0.00\nTypeList                           0        10   0.00   0.00\nStringData                         2       174   1.15   0.16\nDebugInfo                          0       175   0.00   0.00\nAnnotationItem                     0        29   0.00   0.00\nEncodedArrayItem                   0         3   0.00   0.00\nClassData                          0        59   0.00   0.00\nGRAND TOTAL                        7      1230          0.57\n\nUsing the -v (verbose) option gives, e.g.:\n\nMAPPING /system/framework/arm64/boot.vdex: 7e90133000-7e90641000\nDEX classes.dex: 7e90133000-7e90608000\nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS\nSTTTTPPPPPPP.PPPPPPPPPPPPPPFFFFF\nFFF.FFFF.F.F.FFFF...MMMMMMMMMMMM\nMMMMMMMM.MM.....MMMMMMMMMMM..MMM\n.M.MMM..MMMM.MMMMMMMMMMM.CCCCCCC\nCCCCCCCCCCC.C.CCCCCC22.2........\n.XX...XXX..XXXXXXX.............X\n.XXXX......XXXXX..XXXX.XXXX..XXX\n.............X..XX....X.XXXX....\n..X....X...X..X..XXX.XXXXX.XXX.X\nX.X.X..........X.X...........XXX\nX...............................\n.......X.....................XXX\n..XX...XX.....X............XX.X.\n.....XXXX......X.X..X...........\n.XXXXXXX..XXXXXXXX..............\n......XXXX...XX...XX..XXXX...X..\n.......................X........\n.......................X.XX..XX.\nX...........X.X.X.X.............\nX.....XXX..........XXXXX.XX.XX.X\nXXXXX...........................\n............X.................X.\nX..............4....4...........\n............4.tttttttttts...sss.\n.ss.ss..s.ss.sssssss.sssssssssss\nssssssssssssssssssssssssssssssss\nssssssssssssssssssss.ss...ssss.s\nssssssssssssssssssssssssssssssss\nssssssssssssssssssssssssssssssss\nsssssssss..DD.DD...DD...........\n............D...................\n................................\n...................D.....DD.....\n...........................D.D..\n.D........................3...3.\n......................EEE.c..ccc\n.cc.ccc.c.c.....c.cc.ccc..c.....\n.c...ccc.cc.ccc......\n\nWhere the letters indicate a page of a particular dex file section are\nresident in memory and \u0027.\u0027 indicates a page is not resident.\n\nBug: 35800981\nTest: dexdiag \u003cpid\u003e\nChange-Id: Ib4662fe499ad82d4f0baace2affab0d56f0890c9\n"
    },
    {
      "commit": "8682fce2634c392510b98ab0b08544a7336143b3",
      "tree": "81be1a4ee0de1a4fa99a73a1cb3e359faf943544",
      "parents": [
        "25732aec3d2e1b85216f731720df32733219ebd1",
        "f9c917f8c149afc07e51604ea48508fbabcb4a3f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 03:11:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 04 03:11:34 2017 +0000"
      },
      "message": "Merge \"Allow -Xjitsaveprofilinginfo for system server\""
    },
    {
      "commit": "f9c917f8c149afc07e51604ea48508fbabcb4a3f",
      "tree": "2ca19e609090a81a2df5fd11e8878023b191bee8",
      "parents": [
        "1a5a1e55276eb32747a8094937cb19040b193bb8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 31 14:49:09 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 03 18:02:29 2017 -0700"
      },
      "message": "Allow -Xjitsaveprofilinginfo for system server\n\nsetenforce 0 is still required to prevent selinux violations.\n\nTest: adb shell setprop dalvik.vm.extra-opts \"\u0027-Xusejit:false -Xint -Xjitsaveprofilinginfo\u0027\" \u0026\u0026 adb shell start\n\nBug: 34927277\nBug: 36457259\n\n(cherry picked from commit 449f0589c8c8572e32c57befee089123e9eea1ba)\n\nChange-Id: I644cefe8aebf9ff47dc736eda8143d2f6258c324\n"
    },
    {
      "commit": "25732aec3d2e1b85216f731720df32733219ebd1",
      "tree": "c9140732e3cdf951fb11d32bdc2f23e14da15fc3",
      "parents": [
        "1a5a1e55276eb32747a8094937cb19040b193bb8",
        "9db22e8c0a5114a7f3a7250f37ae4c70714bd484"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Apr 04 00:50:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 04 00:50:11 2017 +0000"
      },
      "message": "Merge \"Dump profile logs after the last save\""
    },
    {
      "commit": "1a5a1e55276eb32747a8094937cb19040b193bb8",
      "tree": "7dfdd8e5e67b780278d5d1e36e07cbc6319db01d",
      "parents": [
        "e2a239560959dafe08c499d61905b69c6f628c02",
        "a01b5249c529829f47774d15b890b4716e935068"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 03 22:09:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 03 22:09:28 2017 +0000"
      },
      "message": "Merge \"Make base64 explicitly check dst_size for nullptr\""
    },
    {
      "commit": "a01b5249c529829f47774d15b890b4716e935068",
      "tree": "fb5fff9aae945586eb91ffef6c2a72897ea8c544",
      "parents": [
        "7a0ab7862e61d8006d661ec80b670809068f5bb0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 27 10:15:27 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 03 10:18:19 2017 -0700"
      },
      "message": "Make base64 explicitly check dst_size for nullptr\n\nAlso moved it out of utils.h and into common_runtime_test.h since it\nis only used for tests.\n\nTest: ./test.py --host -j40\nChange-Id: Ib3c18cb510be833928482c0b2f47f9fb02933f7f\n"
    },
    {
      "commit": "fcab6513b5e635f3fbf4f875b9530086371f5dac",
      "tree": "6afbb1cee7cc6cf0eda471445a5578d3c1cc96b6",
      "parents": [
        "589e13337ddb1d52bcab2a791e3df5d421594133",
        "b9d0111d5bfc991f545e900099f3a2de732f27de"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 03 12:21:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 03 12:21:34 2017 +0000"
      },
      "message": "Merge \"ARM64: Faster forwarding address check in mark entrypoints.\""
    },
    {
      "commit": "5b92c48f99391ae764e1699a22881f9d5cbce721",
      "tree": "9d9098e0312f0ea46bc0c956bf2774a6e4e56046",
      "parents": [
        "7298b1ae3e9af5fdb46d168302a26cfbf5d475f5",
        "b7354d5bc76ed3975af636f87aa953f8a4d308a9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 31 21:50:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 31 21:50:16 2017 +0000"
      },
      "message": "Merge \"Clean up ArtClassDefinition\""
    },
    {
      "commit": "74c2058ed83f43aa59f467ac4ecc730edbe42e41",
      "tree": "ba76a521be2f6c7633eed21338efb86636ad335c",
      "parents": [
        "fc1361d322e34c16dde6b0deaa710c8dd23e2bd9"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Mar 28 22:17:35 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Mar 31 11:08:40 2017 -0700"
      },
      "message": "MIPS64: Add direct calls to math intrinsics.\n\n- cos       - sin       - acos      - asin\n- atan      - atan2     - cbrt      - cosh\n- exp       - expm1     - hypot     - log\n- log10     - nextAfter - sinh      - tan\n- tanh\n\nTest: run-test --64 --no-prebuild --optimizing 123-inline-execute2\nTest: run-test --64 --no-prebuild 123-inline-execute2\nTest: run-test --64 --optimizing 123-inline-execute2\nTest: run-test --64 123-inline-execute2\nTest: Booted MIPS64R6 emulator.\n\nChange-Id: I989a5469e6732dd42f39e8305c3d12c32a75eab4\n"
    },
    {
      "commit": "7298b1ae3e9af5fdb46d168302a26cfbf5d475f5",
      "tree": "37f2191ba31fca60402c026a449df481e4a25cb5",
      "parents": [
        "7201fe3b676735cbb8cbd437a46a9c1113729709",
        "d7f0339f45537c55812dc458340eb6415406c100"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 31 17:37:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 31 17:37:52 2017 +0000"
      },
      "message": "Merge \"Lower daemons priority to 124 (art).\""
    },
    {
      "commit": "b7354d5bc76ed3975af636f87aa953f8a4d308a9",
      "tree": "45089d1a4d2163ba3630f2d6b04c3c4ef9f2eee5",
      "parents": [
        "6a6563116638e8db683bbe0a39a26dbed8992ada"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 30 15:17:01 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 31 08:23:54 2017 -0700"
      },
      "message": "Clean up ArtClassDefinition\n\nThis struct was somewhat messy. Clean it up and consolidate functions\ninto it.\n\nBug: 31455788\nTest: ./test.py --host -j40\n\nChange-Id: Ia3abe92dcf3313677de5e200f673252f8e41d69e\n"
    },
    {
      "commit": "b9d0111d5bfc991f545e900099f3a2de732f27de",
      "tree": "bc0a46f9937d9042d61b21c7a4f539308f254eec",
      "parents": [
        "818553e7a14f290cfee8a31bed4fbdd1a33d0ff6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 31 10:55:41 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 31 11:01:29 2017 +0100"
      },
      "message": "ARM64: Faster forwarding address check in mark entrypoints.\n\nBug: 12687968\nTest: testrunner.py --target\nChange-Id: I352971ddf8f574e600c054cf2b4c0a973d20f829\n"
    },
    {
      "commit": "bb75449355575a4b1ae72147b80cc7b225092149",
      "tree": "f15a9e454ed811ad0ad21ceed62185d74e43c366",
      "parents": [
        "113ecfe9e714e848f5edc38abea8dc4160c5b220",
        "d69f82e155118654d989f0b436c019fb6d517341"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 31 03:17:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 31 03:17:07 2017 +0000"
      },
      "message": "Merge \"Change thread suspend timeout to be fatal for non-debug\""
    },
    {
      "commit": "9db22e8c0a5114a7f3a7250f37ae4c70714bd484",
      "tree": "5edfd56edc5ff0e7a5464a5ce7d0d19b945f8956",
      "parents": [
        "dac3f7d74df39ded5bf95f92ef6fd5edc9423190"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 16:31:23 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 16:36:44 2017 -0700"
      },
      "message": "Dump profile logs after the last save\n\nThe DumpInfo statement did not capture the last profile save.\n\nAlso, update -Xps-min-methods-to-save and -Xps-min-classes-to-save in\nthe art script. A value of 0 will attempt to write the profile even if\nno method has been profiles and that\u0027s useless.\n\nTest: ./out/host/linux-x86/bin/art --profile --64 -Ximage:$PWD/out/host/linux-x86/framework/core.art -Xusejit:true -Xcompiler-option --compiler-filter\u003dspeed-profile -Xcompiler-option --compiler-backend\u003dOptimizing -verbose:oat -Djava.library.path\u003d$PWD/out/x86_64/host/linux-x86/lib64 -cp $PWD/generated/benchmarks.dex benchmarks.ExoPlayerBench.java.ExoPlayerBench\n\nChange-Id: I5927ab87d7c134c271fbc252e62fdc03ab02a255\n"
    },
    {
      "commit": "4f0250ca952cb3d489604c0de4f318bbc1bb12ba",
      "tree": "81a8e73d4505515b2c0d38bed93cff61dfab7086",
      "parents": [
        "f62940eab11f6d8fa6f07a3976245939c3db7ab7",
        "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 23:17:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 23:17:20 2017 +0000"
      },
      "message": "Merge \"Update profile version\""
    },
    {
      "commit": "f62940eab11f6d8fa6f07a3976245939c3db7ab7",
      "tree": "c6f26bfc8d2158d9bf56d03a59365b4c0c9a6bdf",
      "parents": [
        "c700f00067aa9ed6d250478e530d653f22125814",
        "c756f08bdc8bd3ea397b85531f397b2b29cd419b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 30 22:22:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 22:22:08 2017 +0000"
      },
      "message": "Merge \"ART: Fix VISIT_OBJECTS and ABORT for FollowReferences\""
    },
    {
      "commit": "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208",
      "tree": "3ff8295a8f0ae3b15c8b9ee9cf6e5cbf1695a0da",
      "parents": [
        "d07f2ba2c60cb8aa920d2b428e414628078e233e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 16:50:25 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 13:54:39 2017 -0700"
      },
      "message": "Update profile version\n\nI forgot to do it in cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911. This will\nforce regeneration of possibly faulty profiles.\n\nTest: m test-art-host\nBug: 36371709\nChange-Id: I476c97005b6c17a22c57117c06028a2371276326\n"
    },
    {
      "commit": "d7f0339f45537c55812dc458340eb6415406c100",
      "tree": "445143f4bf747f672a29f65b7f32fc376c10bb00",
      "parents": [
        "c700f00067aa9ed6d250478e530d653f22125814"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 29 14:47:49 2017 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 30 13:48:18 2017 -0700"
      },
      "message": "Lower daemons priority to 124 (art).\n\nTo avoid jank.\n\n(chery picked from commit 38a57ef702964b82836f89a1f996aff4d1453d94)\n\nBug: 36631902\nTest: boot marlin oc-dev and check priorities.\nTest: test-art-host\nChange-Id: I8f809fbf5ac9605f656884fcf68643c87f22d154\n"
    },
    {
      "commit": "c756f08bdc8bd3ea397b85531f397b2b29cd419b",
      "tree": "124dba14d198b7557eb2e1ef44e8b3568359fc4d",
      "parents": [
        "02311bd39d64b1417e8580c2a993620c2234254d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 29 17:58:28 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 30 11:52:29 2017 -0700"
      },
      "message": "ART: Fix VISIT_OBJECTS and ABORT for FollowReferences\n\nIf a root report does not set VISIT_OBJECTS, the referree should\nnot be added to the worklist.\n\nWhenever an ABORT is requested, do not report the remaining roots.\n\nBug: 36727422\nTest: art/test.py --host -t 913\nChange-Id: I942559f6ab356fe2573a3a9bb88b2662cd5b23d0\n"
    },
    {
      "commit": "c700f00067aa9ed6d250478e530d653f22125814",
      "tree": "6e17428731f989f83b8d70a36b2aa6f09c63f615",
      "parents": [
        "02311bd39d64b1417e8580c2a993620c2234254d",
        "6a6563116638e8db683bbe0a39a26dbed8992ada"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 30 17:42:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 17:42:37 2017 +0000"
      },
      "message": "Merge \"Dedup original dex file for classes transformed on first load.\""
    },
    {
      "commit": "6004e1469102f355c3736b88fe8d6a4391ba6710",
      "tree": "a678396518e20e9680caca4a4d6cf1b491227879",
      "parents": [
        "15996a3d73d8b7bf10b01ce1e4865b13ff21b9e7",
        "8c19d2431f45861ca11cf5ebc4fdaf10200f2458"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 30 02:04:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 02:04:52 2017 +0000"
      },
      "message": "Merge \"Refactor image writer\""
    },
    {
      "commit": "6a6563116638e8db683bbe0a39a26dbed8992ada",
      "tree": "6d2efe4bce32bb65d79b6196d163db31fa4711d3",
      "parents": [
        "e2a739acb4514133ee042c15e98447bd1c0423ce"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 17:18:00 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 17:18:00 2017 -0700"
      },
      "message": "Dedup original dex file for classes transformed on first load.\n\nWe set the originalDexFile field to a native pointer to the\nart::DexFile (as a boxed Long). In the case where there were no\nnon-can_retransform_classes agents this DexFile will be owned by the\ntransformed classes ClassLoader and is guaranteed to be valid for as\nlong as the Class is. This means we can simply keep track of that\npointer to hold onto the original Dex file.\n\nTest: ./test.py --host -j40\nBug: 31455788\nChange-Id: I0e5a74f20f86d32dc73babe64b81469b3155c4dd\n"
    },
    {
      "commit": "5e07b5acc0755099ca3794dbb5692c3735dc0a93",
      "tree": "b52e68078eeea5cf9a54ef44c0371f2052934b14",
      "parents": [
        "e2a739acb4514133ee042c15e98447bd1c0423ce",
        "a41a3078bb222cdee837243eb5adc73ac980e73e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 23:54:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 23:54:57 2017 +0000"
      },
      "message": "Merge \"Downgrade another duplicate method DCHECK to WARNING\""
    },
    {
      "commit": "8c19d2431f45861ca11cf5ebc4fdaf10200f2458",
      "tree": "2d376ce322be680898d55fde929e67032d4c711c",
      "parents": [
        "4e03442619834c56dbf79a3493eb8a2d91b93e7f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 06 12:35:10 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 29 16:51:26 2017 -0700"
      },
      "message": "Refactor image writer\n\nAim to have common functions for copying references and pointers.\nRequired for adding support for faster image fixups.\n\nTest: test-art-host -j32\n\nBug: 34927277\nBug: 34928633\nChange-Id: Ia654efc483b332eea3535570496bfeccd7c635ee\n"
    },
    {
      "commit": "e2a739acb4514133ee042c15e98447bd1c0423ce",
      "tree": "1c8b3c1d3e5376e2d485cef2724edfc8a51e02bc",
      "parents": [
        "591654e70f77cf1bd1112142c9011ccd23929dc3",
        "405284789d13dd1a1d15e2888a987591f5de6b12"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 21:56:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 21:56:09 2017 +0000"
      },
      "message": "Merge \"Undo dex2dex compilation before invoking LoadHook\""
    },
    {
      "commit": "4e03442619834c56dbf79a3493eb8a2d91b93e7f",
      "tree": "ab8480816a8d99a4254cb0d9c278792a29e93dc0",
      "parents": [
        "d07f2ba2c60cb8aa920d2b428e414628078e233e",
        "4b812faa25454bda4d6e79a305938449a54a3e41"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 19:37:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 19:37:41 2017 +0000"
      },
      "message": "Merge \"Change Ti::Agent collection from vector to List\""
    },
    {
      "commit": "a41a3078bb222cdee837243eb5adc73ac980e73e",
      "tree": "4e88daed03588663c98da48d68bcdf9e4779a644",
      "parents": [
        "d07f2ba2c60cb8aa920d2b428e414628078e233e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 11:33:19 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 18:56:50 2017 +0000"
      },
      "message": "Downgrade another duplicate method DCHECK to WARNING\n\nThis DCHECK got missed when writing change\n\u0027Ib26f30718726a9064056855192cef302f3df1eeb\u0027. This is also caused by\nduplicate methods in dex files causing some ArtMethod\u0027s to appear in\nvtables more than once.\n\nBug: 32549051\nBug: 32546154\nBug: 36446088\nBug: 36399552\n\nTest: ./test/testrunner/testrunner.py --host -j40\nChange-Id: Id8ef07d7185958a91f008c2297db96c090dbecd7\n"
    }
  ],
  "next": "405284789d13dd1a1d15e2888a987591f5de6b12"
}
