Implement the q (push) and Q (pop) operators driving a Vec<GraphicsState> save stack with the PDF spec's 64-level depth limit. Changes: - Changed MAX_GSTATE_DEPTH from 32 to 64 per PDF spec section 8.4 - Added gstate_overflow_logged flag to emit overflow diagnostic only once per page - Q at depth 0 is a no-op that emits GSTATE_STACK_UNDERFLOW diagnostic Acceptance criteria (all PASS): - 64 nested q calls succeed; 65th emits diagnostic - 64 q + 64 Q restores to initial state - Q at depth 0 is a no-op (no panic) - 1000 paired q...Q operations succeed (depth never exceeds 1) - Diagnostic emitted exactly once per page even after multiple overflows Closes: pdftract-1os1 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| pdftract-cer-diff | ||
| pdftract-cli | ||
| pdftract-core | ||
| pdftract-libpdftract | ||
| pdftract-py | ||