)]}'
{
  "commit": "fcfc9bcc85afa4054cf84cbc1606b64eb305b94d",
  "tree": "887e2bf333adb39e1cf86cb923376455df4fc106",
  "parents": [
    "ddc06d45295eacc0ee43dcae49b21bd94b7f11d3"
  ],
  "author": {
    "name": "Karsten Sperling",
    "email": "113487422+ksperling-apple@users.noreply.github.com",
    "time": "Fri May 03 12:13:52 2024 +1200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 03 00:13:52 2024 +0000"
  },
  "message": "Fix handling of short discriminator in QRCodeSetupPayloadGenerator (#33250)\n\n* Fix handling of short discriminator in QRCodeSetupPayloadGenerator\n\nIf a SetupPayload contains a short discriminator then\n- isValidQRCodePayload() should return false\n- trying to generate a QR Code should return INVALID_ARGUMENT\n- generating with SetAllowInvalidPayload(true) should work (not die)\n\n* SetupPayload tweaks\n\nMake IsCommonTag, IsVendorTag, and getOptionalVendorData(tag, \u0026info) public.\n\nThe first two are just encoding spec rules that are useful for clients, and the\nlatter allows clients to read vendor data by tag instead of having to read the\nwhole list.\n\nAlso use default values instead of explicit constructors for OptionalQRCodeInfo\nand fix up some doc comments to correctly reference the vendor tag range.\n\n* Address review comments\n\nElaborate on the use case for AllowInvalidPayload in the comments, and encode a\nmissing long discriminator as 0, to avoid a client encoding invalid payloads\nfrom relying on round-tripping a short discriminator through a QR code.\n\n* Handle rendezvousInformation and discriminator the same way\n\n* Address review comment: use ValueOr",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ffa2319dadb35984a69ad907b447e7b65fb98db",
      "old_mode": 33188,
      "old_path": "src/setup_payload/QRCodeSetupPayloadGenerator.cpp",
      "new_id": "962a03937366835f3197c7e4ea77c949afdb6f1a",
      "new_mode": 33188,
      "new_path": "src/setup_payload/QRCodeSetupPayloadGenerator.cpp"
    },
    {
      "type": "modify",
      "old_id": "3d312cd5846e8d79fcecbf6cecaa433ade8ab710",
      "old_mode": 33188,
      "old_path": "src/setup_payload/SetupPayload.cpp",
      "new_id": "063456327f6a622194932205b80e8b92b756a99c",
      "new_mode": 33188,
      "new_path": "src/setup_payload/SetupPayload.cpp"
    },
    {
      "type": "modify",
      "old_id": "9b18574480ba6e5475439f26c33a1f3fe208cbf6",
      "old_mode": 33188,
      "old_path": "src/setup_payload/SetupPayload.h",
      "new_id": "6e81e0e0e48ddb715102a494ed4bfa9bdd1dd92f",
      "new_mode": 33188,
      "new_path": "src/setup_payload/SetupPayload.h"
    },
    {
      "type": "modify",
      "old_id": "1ec508578dec3062af4fade1e2403e4def1dd637",
      "old_mode": 33188,
      "old_path": "src/setup_payload/tests/TestQRCode.cpp",
      "new_id": "6ca349c2884341c65a5c691e5908e0471455b751",
      "new_mode": 33188,
      "new_path": "src/setup_payload/tests/TestQRCode.cpp"
    }
  ]
}
