)]}'
{
  "commit": "464c61349a3ba9d251ad8f36c884e39c912dbd28",
  "tree": "18824bd662b9839ce50d2a91df320ee557174d3a",
  "parents": [
    "e78ed669c8b2edf8b255d8d0702abf2ed027dcbd"
  ],
  "author": {
    "name": "Leif Hedstrom",
    "email": "zwoop@apache.org",
    "time": "Mon Jun 01 23:08:44 2026 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 01 23:08:44 2026 -0600"
  },
  "message": "cripts: shrink Context from 3408 to 1920 bytes, expand data[] to 16 (#13195)\n\n* cripts: shrink Context from 3408 to 1920 bytes, expand data[] to 16\n\nPimpl Url::Path and Url::Query state behind unique_ptr so the heavy\nvector/unordered_map/cripts::string members only allocate when a script\nactually decomposes the path or query. Lazy-allocate Pristine, Parent,\nand Remap From/To URLs in _UrlBlock — they\u0027re rarely all touched, and\nthe embedded 384-byte Url objects dominated the per-txn cost. Pimpl\nError::Reason for the same reason. Drop the unused INET6_ADDRSTRLEN\nbuffer in detail::ConnBase. Make cripts::Url\u0027s destructor virtual now\nthat we delete via unique_ptr. Bump CONTEXT_DATA_SLOTS from 4 to 16\nso scripts have room to stash more per-txn state — the 384-byte cost\nsits inside the budget freed by the URL/Connection cuts.\n\n* Address Copilot\u0027s review comments\n\nBounds-check Path::Erase to avoid dereferencing a null _owner when\nix is out of range — operator[] returns a default-constructed String\nin that case, and the subsequent p.operator\u003d(\"\") would then crash\ninside String::operator\u003d.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a8e851d7ae10cd27a1e38df864347b0abcf8e4d4",
      "old_mode": 33188,
      "old_path": "include/cripts/Connections.hpp",
      "new_id": "88a76e896e230e9ae97a1d5deed175804197f75b",
      "new_mode": 33188,
      "new_path": "include/cripts/Connections.hpp"
    },
    {
      "type": "modify",
      "old_id": "00bc36eafc687bfbfa4c932f56702555bc7cb4f1",
      "old_mode": 33188,
      "old_path": "include/cripts/Context.hpp",
      "new_id": "19b92bc77a5c3fd8b3b735f038f18e5d6c8fb906",
      "new_mode": 33188,
      "new_path": "include/cripts/Context.hpp"
    },
    {
      "type": "modify",
      "old_id": "da674abe600b71448d3962e947b62eb70af09759",
      "old_mode": 33188,
      "old_path": "include/cripts/Error.hpp",
      "new_id": "f0957c7bf6859a7f33137fa5244e74d2c8d7022a",
      "new_mode": 33188,
      "new_path": "include/cripts/Error.hpp"
    },
    {
      "type": "modify",
      "old_id": "c28f1d1dab8f79fb7450aa8e655c1bbff8cec12c",
      "old_mode": 33188,
      "old_path": "include/cripts/Urls.hpp",
      "new_id": "73580aa068fd60d51ec4eb5a807ce3a86a349d23",
      "new_mode": 33188,
      "new_path": "include/cripts/Urls.hpp"
    },
    {
      "type": "modify",
      "old_id": "76bcc822b2da2e78dd0da4280356103b26e095e9",
      "old_mode": 33188,
      "old_path": "src/cripts/Context.cc",
      "new_id": "fe1a2ce389a2ca7cfbbb655e99d529b32490d077",
      "new_mode": 33188,
      "new_path": "src/cripts/Context.cc"
    },
    {
      "type": "modify",
      "old_id": "63935a52063336ba24740accd1ddceca6bc741e7",
      "old_mode": 33188,
      "old_path": "src/cripts/Error.cc",
      "new_id": "f93ea90b929afd40fde5151f95bd2d86ea96fdc4",
      "new_mode": 33188,
      "new_path": "src/cripts/Error.cc"
    },
    {
      "type": "modify",
      "old_id": "f47e49f371bb00d689e355b36ff684ca716db4a9",
      "old_mode": 33188,
      "old_path": "src/cripts/Urls.cc",
      "new_id": "044b0c551a0da8ef37153bac9b2635a599e996a1",
      "new_mode": 33188,
      "new_path": "src/cripts/Urls.cc"
    }
  ]
}
