)]}'
{
  "commit": "860cc73bb2964457461a6f3cb5807dbd79256372",
  "tree": "5c4dee0eecff59d984510bcd06a64be11e4d1d07",
  "parents": [
    "6a231e5c6e2b299da0be16e1edbb0195265afec3"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Mar 12 12:42:33 2023 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Mar 16 16:28:09 2023 +0000"
  },
  "message": "Reduce type-punning in ASN1_TYPE\n\nASN1_TYPE is a union of a bunch of pointer types. Often it takes a\nshorthand and accesses a-\u003evalue.ptr directly. This is allowed in C, but\nnot C++. Writing the switch/case barely takes more code, so just write\nit that way.\n\nAlong the way, extract the code for cleaning up an ASN1_TYPE from\ntasn_fre.c. This is a small step towards being able to use crypto/asn1\u0027s\ntypes without depending on the templates. ASN1_TYPE_free still, for now,\ncalls into the templates. That will be fixable once tasn_*.c are\nrewritten a bit further.\n\nThis also removes the weird hack here ASN1_primitive_free (an internal\nfunction) with NULL ASN1_ITEM secretly meant to partially clean up the\nASN1_TYPE. We can just call the function directly now.\n\nBug: 574\nChange-Id: Ie2ba41418801a366ab2f12eccc01e8dadf82c33e\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/58126\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d59fdba8ac6e2c3e833aa8166a7c0759c9e782a6",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_type.c",
      "new_id": "0c2fd136d36778c4f8be43ebdb45d1f7ac0e5559",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_type.c"
    },
    {
      "type": "modify",
      "old_id": "a60a03703160cd4667dcfead4293f7714dae1dd4",
      "old_mode": 33188,
      "old_path": "crypto/asn1/internal.h",
      "new_id": "64e1e6b102c39eb1eb280d15019032b520cca3f9",
      "new_mode": 33188,
      "new_path": "crypto/asn1/internal.h"
    },
    {
      "type": "modify",
      "old_id": "ebfd3d62ddee3c8923c9a83946c4d170af01d621",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_fre.c",
      "new_id": "add46f53240edcab2fcf7054676dc503346ea357",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_fre.c"
    }
  ]
}
