Simplify WriteScanlines by Shane32 · Pull Request #612 · Shane32/QRCoder (original) (raw)

📝 Walkthrough

Walkthrough

The WriteScanlines method in QRCoder/PngByteQRCode.cs removes a .NET 3.5 conditional branch and always writes compressed IDAT data using idatStream.WriteTo(_stream), eliminating CopyTo usage and idatStream.Position resets. No public APIs were changed.

Changes

Cohort / File(s) Summary
PNG IDAT write pathQRCoder/PngByteQRCode.cs Simplified IDAT emission: removed NET35 conditional; unconditionally uses idatStream.WriteTo(_stream); removed idatStream.Position reset and CopyTo path. No public API changes.

Sequence Diagram(s)

sequenceDiagram autonumber participant W as WriteScanlines participant D as DeflateStream participant I as idatStream (MemoryStream) participant S as _stream (output)

Note over W,I: Old flow (pre-change)
W->>D: Compress scanlines into IDAT
D-->>I: Write compressed bytes
W->>I: Reset Position = 0
alt NET35
    W->>S: I.WriteTo(S)
else non-NET35
    W->>S: I.CopyTo(S)
end

Loading

sequenceDiagram autonumber participant W as WriteScanlines participant D as DeflateStream participant I as idatStream (MemoryStream) participant S as _stream (output)

rect rgba(220,240,255,0.5)
Note over W,I: New flow (post-change)
end
W->>D: Compress scanlines into IDAT
D-->>I: Write compressed bytes
Note over W,I: No Position reset
W->>S: I.WriteTo(S)

Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.