)]}'
{
  "commit": "842679cdbb5b43dac6c57a69d7678e764cf25ae6",
  "tree": "f61a034fa2687dfe6cfb8ffa6349b7b56ea0a3ee",
  "parents": [
    "e72b94a2f257ba069ec0b99e557e9f1f6b9c1a3e"
  ],
  "author": {
    "name": "Abseil Team",
    "email": "absl-team@google.com",
    "time": "Tue Mar 10 01:37:58 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Mar 10 01:39:14 2026 -0700"
  },
  "message": "Add a stateful version of the SymbolDecorator interface\n\nThis makes it possible to make decoration faster by caching some information between runs. Instead of a simple callback a decorator can be a class with a virtual function. This function will not be called concurrently, so it does not need to worry about locking, but it may be called from a signal handler so it must avoid any signal-unsafe operations. The decorator is registered via a factory function, which creates a new object.\n\nInternally, the new decorators are stored inside the ObjFile object and initialized on the first use. If a different factory function is registered, the old decorators are destroyed on the next call to absl::Symbolize.\n\nIn order to make the state management simpler, we only support registering a single decorator.\n\nThe old interface is left in place to make the migration easier, but it will be removed soon.\n\nPiperOrigin-RevId: 881284709\nChange-Id: I25b9db656531fabebd1004f7ec298dc31613b8e3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a5c736c9767a510596bb899789d54d15d2f1f4de",
      "old_mode": 33188,
      "old_path": "absl/debugging/BUILD.bazel",
      "new_id": "e6f11e847112de56c6f8a5266a2e567729b4c986",
      "new_mode": 33188,
      "new_path": "absl/debugging/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d8249fed5029bcc2a31d2c948ef401cb48512c82",
      "old_mode": 33188,
      "old_path": "absl/debugging/CMakeLists.txt",
      "new_id": "fbdb550f832b1cd43447806dbcf67a98a5d02ade",
      "new_mode": 33188,
      "new_path": "absl/debugging/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "509f4267c8d0f986bc77eabdca84c79f83bb7dda",
      "old_mode": 33188,
      "old_path": "absl/debugging/internal/symbolize.h",
      "new_id": "bd2c9c73ee573c38d1ba7db0abd8280a10128e45",
      "new_mode": 33188,
      "new_path": "absl/debugging/internal/symbolize.h"
    },
    {
      "type": "modify",
      "old_id": "344436f9d10515c18197bf50badac59a0805ddd4",
      "old_mode": 33188,
      "old_path": "absl/debugging/symbolize.cc",
      "new_id": "147fda9059f753450cc71c422ed100f7421d08d0",
      "new_mode": 33188,
      "new_path": "absl/debugging/symbolize.cc"
    },
    {
      "type": "modify",
      "old_id": "0317bbc316a85d355f78f284acdbc89919611b97",
      "old_mode": 33188,
      "old_path": "absl/debugging/symbolize_elf.inc",
      "new_id": "5630cc2c64e1bc97567cbb22edd464bc85b6aa6e",
      "new_mode": 33188,
      "new_path": "absl/debugging/symbolize_elf.inc"
    },
    {
      "type": "modify",
      "old_id": "2dd5da54413bc629128af37968458200c5dc43bb",
      "old_mode": 33188,
      "old_path": "absl/debugging/symbolize_test.cc",
      "new_id": "5e1e65d179e8d1175601360cd322267ee0d55608",
      "new_mode": 33188,
      "new_path": "absl/debugging/symbolize_test.cc"
    },
    {
      "type": "modify",
      "old_id": "db24456b0afaf974ce063638f1cfb5fce42a93e2",
      "old_mode": 33188,
      "old_path": "absl/debugging/symbolize_unimplemented.inc",
      "new_id": "1ba5bf426357bcfab63bec0637ccdb62f387255c",
      "new_mode": 33188,
      "new_path": "absl/debugging/symbolize_unimplemented.inc"
    }
  ]
}
