)]}'
{
  "commit": "22d915aecf871c55128efb22f2b789026813bd3c",
  "tree": "84f8558e58d4d8b0c58482345f98b071f7dc0e5b",
  "parents": [
    "846de2d0eeb3657864a72908d3c611559b04f1e1"
  ],
  "author": {
    "name": "Devin Jeanpierre",
    "email": "jeanpierreda@google.com",
    "time": "Wed Mar 18 17:22:52 2026"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Mar 23 21:05:23 2026"
  },
  "message": "Crubit support for `shared_ptr\u003cconst T\u003e`.\n\nUnlike unique_ptr, I think we don\u0027t need a separate virtual_shared_ptr, because the destructor is type-erased. But the other consequence of this is that, dang, it\u0027s pretty hard to create one from pure Rust. For now, there\u0027s no constructors at all, just the ability to consume and pass around a shared_ptr\u003cconst T\u003e. (The code for non-const T would be similar.)\n\nThe CL was _nearly_ one-shot with Gemini, but it overdid it in a few places and I\u0027ve pared it back to what I think the CL should be. In particular, the invasive use of internal details of libc++ is _entirely_ my idea. The fact that we\u0027re relying on shared_ptr having the layout we expect is already digging into the implementation details: we need careful deployment/etc. of this with collaboration of libc++ deployment owners for this to be kept working. In the google monorepo, we got it, but probably this will need to be turned off outside Google...\n\nPiperOrigin-RevId: 885665170\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9b5ecd39c866c7f34b9f558eb63a593709e3e3f9",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/generate_bindings/database/rs_snippet.rs",
      "new_id": "47658ebbba49c3bb0b2d138eaf53a756e8195327",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/generate_bindings/database/rs_snippet.rs"
    },
    {
      "type": "modify",
      "old_id": "7b59e4646ae00ae7a4797e5ab9b27ec93afc7c96",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/importers/cxx_record.cc",
      "new_id": "0c92334c9df7cd55510fc7c502f0becf061d7316",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/importers/cxx_record.cc"
    },
    {
      "type": "modify",
      "old_id": "2a9e7c653375ffdacdad87af7bb62e07b26f1ca9",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/ir.cc",
      "new_id": "d84718b0eba3fdbf3ca8ade2900b2b60b72a6b8a",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/ir.cc"
    },
    {
      "type": "modify",
      "old_id": "a0ba4932aad270507afec3bbe29294a5de8f44eb",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/ir.h",
      "new_id": "36247ff23c79b4a414debba4f4539ef8bec61a77",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/ir.h"
    },
    {
      "type": "modify",
      "old_id": "1a13cf4c457d8770cb68204b09861a2800ebdbb3",
      "old_mode": 33188,
      "old_path": "rs_bindings_from_cc/ir.rs",
      "new_id": "66cf6f1cb3685748243e3c175c67a4c1bacdab9e",
      "new_mode": 33188,
      "new_path": "rs_bindings_from_cc/ir.rs"
    },
    {
      "type": "modify",
      "old_id": "ca9845835a53b9e5af70c9e580afa6a91a6db1ad",
      "old_mode": 33188,
      "old_path": "support/cc_std_impl/BUILD",
      "new_id": "d0fa17f81a66e57200bb9e93009e3ae30d676410",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "69c91c48ca6855878a43546c8097dad95bc9d887",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/shared_ptr.rs"
    },
    {
      "type": "modify",
      "old_id": "d842089e4e80a10eb795df503e07438f75fd9b04",
      "old_mode": 33188,
      "old_path": "support/cc_std_impl/std_allocator.h",
      "new_id": "37424c2bee31c560db98a4be261434eecc4609f3",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/std_allocator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8581b01511c17a76e3399c45606ad9c0438b60e5",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/test/shared_ptr/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "540480c8da1bdbb2ca34b0f6567ca340b90108c5",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/test/shared_ptr/shared_ptr_test.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8487cdea5fc426925266f7a99d1be81047125a0",
      "new_mode": 33188,
      "new_path": "support/cc_std_impl/test/shared_ptr/test_helpers.h"
    }
  ]
}
