You are browsing as a guest. Sign up (or log in) to start making projects!

2h 11m 15s logged

Debugging 2

Finding errors in tables.py

As my last devlog I identified that there is some errors in matrix and table files. I started looking through the table data and found some errors.

  • bs.append(mode, 4) — always writes a 4-bit mode indicator. But for Micro QR, mode indicators are 1–4 bits depending on the version, not always 4 bits
  • The _data_placement_order function skips col 6 (standard QR timing column). For Micro QR, col 0 is the timing column that should be skipped. But since col 0 and row 0 are already marked as reserved via timing pattern placement, the if not reserved[row][c] check already handles it. The col == 6 skip is only needed because in standard QR col 6 is a function column that isn’t individually reserved — but since we now properly reserve col 0 for Micro QR, it’s already handled. The issue is the function always skips col 6, which in Micro QR is a valid data column.
  • The Micro QR format info table has duplicate dict keys, so versions M1-M3 silently get clobbered by M4’s values.

I’m still going through the code to find the errors first, Then I’ll start to fix them one-by-one cause I’m tired of fixing one and get another 2 bugs out of nowhere.

0
1

Comments 0

No comments yet. Be the first!