)]}'
{
  "commit": "3c67cc8ea83f09a3f67ff66294685ec3b75c100e",
  "tree": "060783c113bc98b471bc55bc14e2055a198d1b34",
  "parents": [
    "a9c65ec5b7ac043362413126b9ac1d7d95c1a0cc"
  ],
  "author": {
    "name": "Martin Stjernholm",
    "email": "mast@google.com",
    "time": "Mon Jul 21 11:45:22 2025 +0100"
  },
  "committer": {
    "name": "Martin Stjernholm",
    "email": "mast@google.com",
    "time": "Tue Jul 29 09:40:57 2025 -0700"
  },
  "message": "Put the native JNI call wrappers both in libarttest and libarttest_external.\n\nCurrently hiddenapi looks at the topmost Java frame to determine the\ndomain of the caller, so the location of the .so file containing the\nnative JNI call wrappers doesn\u0027t matter.\n\nHowever an upcoming CL will change that, so this CL puts the wrappers\nphysically into both libarttest(d).so and libarttest(d)_external.so, to\nbe able to test two hiddenapi domains. That has no effect yet.\n\nhiddenapi.cc is split up into core.cc and jni_api_callers.h, with the\nonly change being that the JNI call wrappers are registered explicitly\nthrough two new native methods register(App|CorePlatform)JniApiCallers.\n\nTest: art/test/testrunner/testrunner.py --target --32 --optimizing 674-hiddenapi\nBug: 403305904\nFlag: TEST_ONLY\nChange-Id: I7b9bd755367d24d69ea1048dae557f66332066c3\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "88ab38e6277cc1661bc3c914ac945eeec0c0e890",
      "new_mode": 40960,
      "new_path": "test/674-hiddenapi/.clang-format"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c904fd3409fa73577ae260b50142e7cae0fe5420",
      "new_mode": 33188,
      "new_path": "test/674-hiddenapi/app.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a0901d664e1a5cf2b391db8acc229fafb2fb0d9e",
      "new_mode": 33188,
      "new_path": "test/674-hiddenapi/core.cc"
    },
    {
      "type": "delete",
      "old_id": "43ab7a7fff1669f70ea5b44a01a9750efbeda6b3",
      "old_mode": 33188,
      "old_path": "test/674-hiddenapi/hiddenapi.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "09d7f5ec67c25d7669a647236ca06a3919b1dac4",
      "new_mode": 33188,
      "new_path": "test/674-hiddenapi/jni_api_callers.h"
    },
    {
      "type": "modify",
      "old_id": "35a08c71ba041219c8f5a97e243c1d479157dccd",
      "old_mode": 33188,
      "old_path": "test/674-hiddenapi/src-ex/ChildClass.java",
      "new_id": "707a325c65a2052f913e2f51bf10d6096a145155",
      "new_mode": 33188,
      "new_path": "test/674-hiddenapi/src-ex/ChildClass.java"
    },
    {
      "type": "modify",
      "old_id": "8709638d8ff02f09adf566bdb32e4c358b01a3cf",
      "old_mode": 33188,
      "old_path": "test/Android.bp",
      "new_id": "47691fb32ed98499da246dafb4fb5a772a534a97",
      "new_mode": 33188,
      "new_path": "test/Android.bp"
    }
  ]
}
