)]}'
{
  "log": [
    {
      "commit": "e2ddce3dec02cf7c9eb5efb2e29c250a5e909995",
      "tree": "df9ee07990149cceffe0496807c0e88f534211ec",
      "parents": [
        "6045bc202f2c470b63c40a5a25db369b5a049c28"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed May 22 17:08:35 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed May 22 17:29:29 2019 +0000"
      },
      "message": "Revert^2 \"Add verifier fallback for JVMTI Get/SetLocalVariable\"\n\nThis reverts commit 99cbfb55fc7ac0f65b1ccdc7076219fcee383b92.\n\nThis unreverts commit e48fd0b4780efadc6b3433fe7a56aa5be2a84325.\n\nWe were incorrectly bounds-checking the register number. We were\ntreating it as unsigned when it was actual signed. Previously this\nwouldn\u0027t matter since normally the debug-info won\u0027t have any\ninformation for negative slots but by falling back to the verifier\nwe hit some check failures.\n\nReason for revert: Fixed underlying issue with bad bounds check.\nBug: 131711256\n\nChange-Id: I0b859ce322f3b23f937b72d735db8f6870c40602\n"
    },
    {
      "commit": "99cbfb55fc7ac0f65b1ccdc7076219fcee383b92",
      "tree": "5420795d367de2d4fbf2f1a73ac2b3f275a5114a",
      "parents": [
        "098e7a67588f39642567b91ecfab117dbaa84d31"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 22 11:39:45 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 22 12:23:46 2019 +0000"
      },
      "message": "Revert \"Add verifier fallback for JVMTI Get/SetLocalVariable\"\n\nThis reverts commit e48fd0b4780efadc6b3433fe7a56aa5be2a84325.\n\nReason for revert: Fails libjdwp tests. In particular:\norg.apache.harmony.jpda.tests.jdwp.StackFrame_SetValuesTest\n\nBug: 131711256\nChange-Id: Id46da7c0d26769f8f4bd469cdfb8049f6812295a\n"
    },
    {
      "commit": "e48fd0b4780efadc6b3433fe7a56aa5be2a84325",
      "tree": "5056001e02d8c4494b643c8d53fd32621e127c1c",
      "parents": [
        "abdb4592fa28d6e75f1160f01cde58ad7c3fef37"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 20 10:04:44 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 22 00:29:38 2019 +0000"
      },
      "message": "Add verifier fallback for JVMTI Get/SetLocalVariable\n\nThe JVMTI Get/SetLocalVariable functions used to rely entirely on the\nDex DebugInfo to determine the types of each of the registers. This\ncould lead to problems since, to prevent possible stack corruption, we\nwould not allow stack modification if the data was not present.\n\nIn order to remove this restriction we will instead make use of the\nmethod verifier to ensure the modification is sensible when the\nDebugInfo is not present. Since reconstructing this information using\nthe verifier is quite slow (compared to reading it from a table) we\nwill only do this when the table is missing.\n\nSince the verifier lacks some of the information available when\ncreating the DebugLocalInfo table some semantics will change depending\non if the table is present or not.\n\n - When the DebugLocalInfo table is not present we cannot always\n   distinguish between floats, ints, and other single-register\n   primitive types. For simplicity all single-register primitive\n   types can be modified and read by both the Float and Int versions\n   of the local variable functions.\n\n - Similarly we cannot always distinguish between long and double\n   variables.\n\n - Reference types are checked against what the verifier thinks they\n   need to be according to type unification. This might be more or\n   less specific than the types recorded in the functions source code.\n\n - Constant int/float \u00270\u0027 values and \u0027null\u0027 cannot always be\n   differentiated by the verifier. Therefore, one may not always be\n   able to modify some null or constant 0 registers.\n\nTest: ./test.py --host\nBug: 131711256\n\nChange-Id: I1c9d857ccdec752bfd4ebad76cc9ad96e143866c\n"
    },
    {
      "commit": "23ca8fbcb23fb1eb95d192995a35f4fed53bffbd",
      "tree": "106272f910aad65faec278234555efeba27464b0",
      "parents": [
        "d4f8afb4d8bc7bb5cbaf217c2f0734b880b62689"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri May 10 11:27:02 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 14 16:39:25 2019 +0000"
      },
      "message": "Centralize all the jvmti common test classes\n\nWe share many common JVMTI test classes between our various JVMTI\ntests. We have always shared them by simply copying the .java files to\nany tests that need them. This leads to very large code-reviews and\nrequires manual work if we ever need to update any of the helper\nfiles.\n\nTo ensure everything stays in sync this moves all classes to a single\ntest/ti-common directory that tests then contain symlinks into.\n\nTest: ./test.py --host\nChange-Id: I82238a63d281429196ed0e640e4a9ec3234d954c\n"
    },
    {
      "commit": "47d49b842a87823df6ffda30bb21bd6d8e4d8641",
      "tree": "e11ac9e92ed4539fc11f6e49375b44acce5f74a6",
      "parents": [
        "bebd7bd02a073056851cc1b0942c53ce0d2ee206"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 25 14:06:34 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 27 13:48:39 2017 -0700"
      },
      "message": "Tests for JVMTI can_access_local_variables functions\n\nThese are tests for functions gated by can_access_local_variables and\nother supporting code.\n\nTest: ./test.py --host -j50\nBug: 34414073\nBug: 36892980\nChange-Id: Iba7e9207683372fbe73510442856553510d90933\n"
    }
  ]
}
