)]}'
{
  "commit": "dc0e354ac38bdaef2d8b1887733585c25a70a46e",
  "tree": "edd222ba3aec8d4bda349b0a81a60d99fbc7311f",
  "parents": [
    "f0518d45119dd4dd322a884669daf8247bc3c992"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Nov 16 23:39:44 2022 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Nov 21 19:50:07 2022 +0000"
  },
  "message": "Release memory earlier when clearing ASN1_ENCODING.\n\nASN1_ENCODING has a \u0027modified\u0027 bit, but every time it is set, the\ncontents are both ignored and never filled in again (we don\u0027t fill in\nthe encoding except on parse). That means keeping the underlying buffer\naround is just wasting memory. Remove the bit and use the len !\u003d 0 to\ndetermine if there\u0027s a saved encoding. Replace all the modified bits\nwith a helper function that drops the encoding.\n\nI don\u0027t think we need a separate \"present\" boolean and can just treat\nempty as not saved; a cached value always has a tag and length, so it\ncannot be empty. (Even if it could be empty, that would imply the\nvalue\u0027s encoding is trivial enough that we probably don\u0027t need the saved\nencoding to preserve the value.)\n\nChange-Id: I6beda94d33f3799daf85f1397818b9a41e7dd18a\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/55267\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4f98a1a10d7d2f633d79c1f86240f69545733a03",
      "old_mode": 33188,
      "old_path": "crypto/asn1/internal.h",
      "new_id": "a934bfbba7efd60cbf824f7238cae28b332b5857",
      "new_mode": 33188,
      "new_path": "crypto/asn1/internal.h"
    },
    {
      "type": "modify",
      "old_id": "4a9757437aa9902471fdb79ef7703d90b1770952",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_utl.c",
      "new_id": "b7604e251fccb0ae05c7897ed3af3e8b2ede2759",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_utl.c"
    },
    {
      "type": "modify",
      "old_id": "6cd250d0d69073fc9f1ac30d73aafc2fbbf53d93",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_req.c",
      "new_id": "a384a77596a14c34727a4e590bb6dec92c0d22f8",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_req.c"
    },
    {
      "type": "modify",
      "old_id": "6eba6d1ea449701d1e1f8f21cdc106b80a06f2e2",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509cset.c",
      "new_id": "6dd1fc082629a0fb1058868e313985359f79f118",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509cset.c"
    },
    {
      "type": "modify",
      "old_id": "551b21672ee637d4aff5548f638d975b881e8611",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_all.c",
      "new_id": "23508c07f4f5e28726e6a2bf3446b4eaba65db84",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_all.c"
    },
    {
      "type": "modify",
      "old_id": "c153b5d44a40a9b2bbb2e2a05a9d4daefb18e62c",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_crl.c",
      "new_id": "1480448e532df459a63ab0a34ff50926717887b7",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_crl.c"
    },
    {
      "type": "modify",
      "old_id": "27cbd9938935dcb4bcf0e29d51fc9d6a5948313d",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_x509.c",
      "new_id": "c1c1a1977d918f2d36836d92eab739eaca3d2d7a",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_x509.c"
    }
  ]
}
