Implement the parser for PDF 1.5+ object streams with: - Decompression via Phase 1.5 stream decoder - Arc<RwLock<HashMap>> caching for thread-safe access - /Extends chain support with cycle detection - Depth limit (MAX_EXTENDS_DEPTH = 16) for adversarial protection - get_object() API for xref type-2 entry resolution Acceptance criteria verified: - Critical test: N=10 objects all dereference correctly - /Extends chain: both ObjStms' objects dereference correctly - Cyclic /Extends: emits STRUCT_CIRCULAR_REF - Truncated ObjStm: partial objects + diagnostic - Decompression bomb: emits STREAM_BOMB - Cache hit: returns cached Arc (Arc::ptr_eq verified) Unit tests: 12 tests covering all acceptance criteria and edge cases. Refs: pdftract-6bxw, plan Phase 1.2 line 1072 |
||
|---|---|---|
| .. | ||
| fingerprint | ||
| parser | ||
| diagnostics.rs | ||
| lib.rs | ||