pdftract/crates/pdftract-core/src/parser
jedarden 3a3f376025 feat(pdftract-522li): implement per-thread cycle detection for object resolution
Add thread_local HashSet<ObjRef> tracking for circular reference detection
in the Object Parser. This prevents infinite recursion when PDF objects
contain circular references.

- Created cycle.rs module with RESOLVING thread_local storage
- ResolutionGuard RAII ensures cleanup on drop (even on panic)
- is_resolving() helper for cycle detection
- All 13 cycle tests pass

Closes: pdftract-522li

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 12:31:45 -04:00
..
lexer feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
object feat(pdftract-522li): implement per-thread cycle detection for object resolution 2026-05-25 12:31:45 -04:00
catalog.rs feat(pdftract-1c4j2): implement thread info extraction (7.7.1) 2026-05-25 02:38:42 -04:00
diagnostic.rs feat(pdftract-4x0y): implement font binding and text positioning operators 2026-05-24 17:44:34 -04:00
marked_content.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
marked_content_operators.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
marked_content_stack.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
mod.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
objstm.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
ocg.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
outline.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
pages.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
resources.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
secrets.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
stream.rs fix: resolve compilation errors across codebase 2026-05-25 08:38:04 -04:00
struct_tree.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
xref.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00