)]}'
{
  "log": [
    {
      "commit": "d78ddec5f8eaf1f27e9043f6f42be90149ccb966",
      "tree": "e3c21f93e419ba35486cf8f641d816523a06b9a3",
      "parents": [
        "66f43b988ad84568a46c1760b314723e9229e6d0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 18 15:20:38 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 19 09:44:25 2017 -0700"
      },
      "message": "Implement can_generate_native_method_bind capability\n\nThis capability lets one observe and even replace the implementations\nof native methods when they are bound.\n\nTest: ./test.py --host -j40\n\nBug: 37432636\nChange-Id: I2432a8e4da1a677e8011ce495296f4ab9f42eb3e\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": "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": "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"
    },
    {
      "commit": "405284789d13dd1a1d15e2888a987591f5de6b12",
      "tree": "5fc7fc88bd8bce459217c918f77d6a5c65db76a4",
      "parents": [
        "37aa4c99260985e67cd466397e58927e7a0d2871"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 28 09:07:36 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 11:55:03 2017 -0700"
      },
      "message": "Undo dex2dex compilation before invoking LoadHook\n\nWe need to undo any dex_to_dex compilation that might have taken place\nbefore passing a dex file to any registered ClassFileLoadHooks to\nensure that no internal opcodes are present in any methods.\n\nTest: ./test.py --host -j40\nBug: 36653594\n\nChange-Id: Ia42c77312e685d69f6b3ea764fad01710b10ab45\n"
    },
    {
      "commit": "d07f2ba2c60cb8aa920d2b428e414628078e233e",
      "tree": "e81cc276b4d7c460fa154537e86fd4310decd5c0",
      "parents": [
        "1e45a522ea1944d3470de971649ad0c3dc6f4884",
        "4c0b4bc2653be370c7ba9f34a39e29e60382dff1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 18:17:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 18:17:05 2017 +0000"
      },
      "message": "Merge \"Gracefully handle bogus profiling info for inline caches.\""
    },
    {
      "commit": "1e45a522ea1944d3470de971649ad0c3dc6f4884",
      "tree": "42f11e4331c0f7cdf4c565403f9a48b88c660440",
      "parents": [
        "8b71f086ade1f48f3780cc81706669abbfe9c184",
        "cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 18:12:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 18:12:40 2017 +0000"
      },
      "message": "Merge \"Fix profile merges in profman\""
    },
    {
      "commit": "4b812faa25454bda4d6e79a305938449a54a3e41",
      "tree": "20ff43702e7da31a4990125ff9b5659505b363e0",
      "parents": [
        "8b71f086ade1f48f3780cc81706669abbfe9c184"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 10:40:15 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 29 10:40:15 2017 -0700"
      },
      "message": "Change Ti::Agent collection from vector to List\n\nWe want these to be in a list to avoid the need for moving them\naround, which would introduce the need to perform annoying accounting.\n\nTest: ./test.py --host -j40\nBug: 36716572\nBug: 31455788\nChange-Id: Ie16523f4e7d79934fa7844fb9b9a26e125cfa9eb\n"
    },
    {
      "commit": "8b71f086ade1f48f3780cc81706669abbfe9c184",
      "tree": "bdb7c381516f3c3a410f66462476063eb8fcfc6c",
      "parents": [
        "c5e0f20479eeb632972590b135594f775c9b9d9e",
        "a1705ea3dc57dcdecf1d4295e6ee0d6b85b5eacd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 16:33:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 16:33:35 2017 +0000"
      },
      "message": "Merge \"ART: Fix ObjectFree reporting\""
    },
    {
      "commit": "c5e0f20479eeb632972590b135594f775c9b9d9e",
      "tree": "e268bfbe9cfa3456888ac325b12a92d0473e6719",
      "parents": [
        "26ed72a3727ac1500f95c538fa6aed6c183ce958",
        "db6c2ab29ef6ebe89c9ea43dae3b899a935fa74e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 14:57:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 14:57:49 2017 +0000"
      },
      "message": "Merge \"ART: Fix GetThreadInfo\""
    },
    {
      "commit": "26ed72a3727ac1500f95c538fa6aed6c183ce958",
      "tree": "dc82470a15d4d76d8e9818517c1cc1baa6d2c520",
      "parents": [
        "818553e7a14f290cfee8a31bed4fbdd1a33d0ff6",
        "a1be713d3a953e0d99dadd46a9367a253707de8a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Mar 29 14:03:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 29 14:03:20 2017 +0000"
      },
      "message": "Merge \"Performance improvements in invoke-polymorphic runtime support\""
    },
    {
      "commit": "a1be713d3a953e0d99dadd46a9367a253707de8a",
      "tree": "94f91565bd36760f3154ef5aea39636a42127bcb",
      "parents": [
        "09004f020aa7831e5e667aa7857d6fedf4ecf0d0"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 21 10:04:12 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Mar 29 12:55:03 2017 +0100"
      },
      "message": "Performance improvements in invoke-polymorphic runtime support\n\nFineses the runtime support for invoke-polymorphic to improve\nMethodHandle benchmark measurements by an average of 14%.\n\n- Faster conversion checks for non-exact invokes.\n- Avoid conversion checks for CallerTransformers and Transforms.\n- Fast path for exact invokes avoiding conversion checks.\n- Use cheaper constructs where possible.\n\nMost of these changes are driven by simulation in callgrind.\n\nBug: 30550796\nTest: m test-art-host\nChange-Id: I38722b0d41db8e528f2730a826b1710b9fd1f6a9\n"
    },
    {
      "commit": "1595815c2a914a78df7dfb6f0082f47d4e82bb36",
      "tree": "8fd53c3c91158b33e744e43cc655b2e2a180a3fc",
      "parents": [
        "4ba18fdfc2581a2328ab745c2707e3ed375d9e64"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Feb 09 19:08:30 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Mar 28 23:35:34 2017 -0700"
      },
      "message": "MIPS: Implement read barriers.\n\nThis is the core functionality. Further improvements\nwill be done separately.\n\nThis also adds/moves memory barriers where they belong and\nremoves the UnsafeGetLongVolatile and UnsafePutLongVolatile\nMIPS32 intrinsics as they need to load/store a pair of\nregisters atomically, which is not supported directly by\nthe CPU.\n\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target-run-test\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: \"testrunner.py --target --optimizing -j1\"\nTest: same MIPS64 boot/test with ART_READ_BARRIER_TYPE\u003dTABLELOOKUP\nTest: \"testrunner.py --target --optimizing --32 -j2\" on CI20\nTest: same CI20 test with ART_READ_BARRIER_TYPE\u003dTABLELOOKUP\n\nChange-Id: I0ff91525fefba3ec1cc019f50316478a888acced\n"
    },
    {
      "commit": "a1705ea3dc57dcdecf1d4295e6ee0d6b85b5eacd",
      "tree": "78368c303d93ff15e7743e5cc772abd169c9049f",
      "parents": [
        "4ba18fdfc2581a2328ab745c2707e3ed375d9e64"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 20:12:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 20:25:31 2017 -0700"
      },
      "message": "ART: Fix ObjectFree reporting\n\nFree events should not be dispatched to all registered envs. They\nare specific to the env that the tag came from.\n\nAdd a DispatchEvent that takes an env, add an env field to the\ntagging table, and connect the two.\n\nUpdate the stress test. Make it actually work with a tagging\nfunction for the second env.\n\nBug: 36648696\nTest: ./test.py --host -r -t 905\nChange-Id: I485ef1a6a57e233a2c2128b30cae93532676b3bf\n"
    },
    {
      "commit": "db6c2ab29ef6ebe89c9ea43dae3b899a935fa74e",
      "tree": "0adb8cd725bc82f7aade936a804b25a21c7927f9",
      "parents": [
        "bf57b2b7eeec03dd5c0afd772e1f2e742cdb3cc0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 17:28:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 17:28:32 2017 -0700"
      },
      "message": "ART: Fix GetThreadInfo\n\nFix the retrieval of the context classloader. Make sure to have\nthe field from the Thread class, don\u0027t look into a subclass.\n\nAdd caching for the field. Also fix the usage restriction of the\nfunction, which is only valid during the Live phase.\n\nBug: 36654185\nTest: ./test.py --host -r -t 924\nChange-Id: I5cce41b31c32e59c80bb7c3afa03e8b0975ec54e\n"
    },
    {
      "commit": "cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911",
      "tree": "5132e19736f2afdd2b10f3243297e667b2ab0a21",
      "parents": [
        "f8d00ff206e33ff66fcabcf75d6b5bbe30cddb98"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 23 19:04:59 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 28 16:51:02 2017 -0700"
      },
      "message": "Fix profile merges in profman\n\nprofman used ProfileCompilationInfo::Load() which was not preserving the\ncorrect order of the dex files (in a multidex profile).\n\nThe CL fixes profman to use ProfileCompilationInfo::MergeWith which\nguarantees the right dex order and redesigns profile storage to avoid\nsuch mistakes in the future. Instead of keeping data in a map indexed by\nthe profile key, store it in a vector whose index match profile_index.\nThis way, any iteration over profile info becomes deterministic with\nrespect to the profile index of the dex files.\n\nTest: m test-art-host-gtest-profile_assistant_test\n      m test-art-host-gtest-profile_compilation_info_test\n      profile YouTube.apk and compile it based on the reference profile\n(failing before)\n\nBug: 36371709\nChange-Id: Ideda1336e5aff59a7c5560429da645fe02c804c9\n"
    },
    {
      "commit": "4ba18fdfc2581a2328ab745c2707e3ed375d9e64",
      "tree": "8f4474e26b3b083ea3d75786ac1b0225bd4cbb5d",
      "parents": [
        "bf57b2b7eeec03dd5c0afd772e1f2e742cdb3cc0",
        "f169e27100acbec024f699de9ef842a27c0b2036"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 28 23:41:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 23:41:10 2017 +0000"
      },
      "message": "Merge \"Fix lock order for jvmti kTaggingLockLevel\""
    },
    {
      "commit": "4c0b4bc2653be370c7ba9f34a39e29e60382dff1",
      "tree": "e1ad40bcca2b016304550fcd1aeefaf405dc7031",
      "parents": [
        "f8d00ff206e33ff66fcabcf75d6b5bbe30cddb98"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 17 13:08:26 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 28 14:42:01 2017 -0700"
      },
      "message": "Gracefully handle bogus profiling info for inline caches.\n\nTest: 643-checker-bogus-ic\nBug: 36371709\nChange-Id: I2a52ac67a45a6bb5ddefb053a35e6edf5bc2da2f\n"
    },
    {
      "commit": "f169e27100acbec024f699de9ef842a27c0b2036",
      "tree": "2d82abce1f923863f023cb8ee12409ad82809dad",
      "parents": [
        "ae60e48f1077a2221549c733623c25f79733caf0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 28 12:59:38 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 28 13:40:41 2017 -0700"
      },
      "message": "Fix lock order for jvmti kTaggingLockLevel\n\nAdd test for duplicate env free order.\n\nBug: 36648696\n\nTest: ./test.py --host\n\nChange-Id: I76fc8187b29f5e66cc29674320e887dbc508fe19\n"
    },
    {
      "commit": "f8d00ff206e33ff66fcabcf75d6b5bbe30cddb98",
      "tree": "80b8c5fc8312963d20001628209d63090d687533",
      "parents": [
        "ddacd7e580e64fa87d55cac0d5766e8d6b66fbcd",
        "f0a31f865c3b3e5843ddd52f015c70293b54b4e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 28 19:39:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 19:39:16 2017 +0000"
      },
      "message": "Merge \"Add profman option to generate a random profile based on dex files.\""
    },
    {
      "commit": "f0a31f865c3b3e5843ddd52f015c70293b54b4e4",
      "tree": "c6881a22ddb9523220861c070991a83e1bc1f97d",
      "parents": [
        "1082e0e46ddfae2ed9cc3d0a3d6025e7335ac239"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 27 15:50:37 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 28 10:57:11 2017 -0700"
      },
      "message": "Add profman option to generate a random profile based on dex files.\n\nExtends --generate-test-profile to make a randomized profile based on a\nset of dex files. Will randomly incorporate classes and methods from all\nthe dex files given. Can be given a random seed for reproducibility.\n\nBug: 36107940\nTest: mm test-art-host-gtest-profile_assistant_test\nChange-Id: Ib0e54bde5317439516a39afa41c3c9980834fa54\n"
    },
    {
      "commit": "9e935ad1eb31d29e8d6f0aafa2b037bcfc11447e",
      "tree": "49ad079bcc0a75c8a27e6865e2485015cf220a59",
      "parents": [
        "325e44f53ed03a9be7aca25edcb3cbc9c4fb0802",
        "0ed6c80d40c215720a47f62d02f9bff4e1b76257"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 28 17:47:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 17:47:55 2017 +0000"
      },
      "message": "Merge \"Close the right fd in native_stack_dump\""
    },
    {
      "commit": "da3f60aed24d6e804f3b6393e74c62b8de0b4a26",
      "tree": "bcea257b8892cdb0a2323734fdfc91c77c479160",
      "parents": [
        "13e60fa0acbcec59638aa9225ab2fa0d3b57d41f",
        "c91b5a2b4074da35ec8df88d4f63e6418a68425f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 28 07:18:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 07:18:50 2017 +0000"
      },
      "message": "Merge \"Remove unreachable code in DexLocationToOdexFilename.\""
    },
    {
      "commit": "13e60fa0acbcec59638aa9225ab2fa0d3b57d41f",
      "tree": "ccf439547bd9784f04090fd3b0e4f991d9e39c24",
      "parents": [
        "d66a932d38d26aa11b242663c0242b1c4db81c03",
        "37c5846be19f28bd629ffe7d6cfde779abbccb89"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 28 02:01:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 02:01:25 2017 +0000"
      },
      "message": "Merge \"ART: Fix some tidy warnings\""
    },
    {
      "commit": "0ed6c80d40c215720a47f62d02f9bff4e1b76257",
      "tree": "62da9f73df1bfb6684662f3ac69027410b24bd63",
      "parents": [
        "49ebbb27ccaccd7d1466eebb24b847118b6f78a3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 27 18:12:05 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 27 18:12:54 2017 -0700"
      },
      "message": "Close the right fd in native_stack_dump\n\nTest: m test-art-host\nChange-Id: I7edbeba699f3e957b915c5fcd52337ee64b878e2\n"
    },
    {
      "commit": "d66a932d38d26aa11b242663c0242b1c4db81c03",
      "tree": "df9d98c51d17d0edf81c59db43930ce7d2ed243e",
      "parents": [
        "cfc5fcbedc78cff60874d481e9bf7652334c1aa0",
        "d9911eeca13f609c885e0f6a5ce81af9b6340bfa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 28 00:56:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 28 00:56:36 2017 +0000"
      },
      "message": "Merge \"ART: Clean up field initialization\""
    }
  ],
  "next": "4fc76b3ff662c4a899f4bc1282816bd5badfe655"
}
