doctrine-orm-0001: ClassMetadata::addSubClass in_array O(S²) subclasses list HIGH - src/Mapping/ClassMetadata.php addSubClass() scans plain $subClasses list - addSubClasses($parent->subClasses) called in doLoadMetadata: O(S²) per class - Fix: parallel $subClassesSet hash for O(1) membership; 500x at S=1000 composer-0003: InstalledRepository::getDependents in_array O(P²) needles list MEDIUM - needles array grows during foreach($packages) loop, in_array scan 3 sites - $packagesFoundSet already exists for cycle-detection but needles is separate - Fix: add $needlesSet = array_fill_keys($needles, true), mirror growth; 1000x at P=1000 cayley: CLEAN (confirmed -- map-based seen/pathMap throughout) tinkerpop: CLEAN (confirmed -- existing CLEAN.md valid, sort ArrayList is query-plan-time only)
11 lines
698 B
Markdown
11 lines
698 B
Markdown
# CLEAN — tokio
|
||
|
||
Scanned 2026-03-29 for CWE-407 (algorithmic complexity).
|
||
|
||
## Findings
|
||
|
||
- `tokio/src/runtime/scheduler/multi_thread/idle.rs` — `sleepers: Vec<usize>` with `.contains()` in `is_parked()`: N is bounded to the worker thread count (typically 1–32). Called once per work-steal attempt, not in a loop over workers. Not actionable.
|
||
- `tokio-util/src/codec/any_delimiter_codec.rs` — `seek_delimiters: Vec<u8>` contains check per byte in buffer: D (delimiter count) is user-configured and typically 1–3. This is O(B×D) but D is constant and tiny. Not actionable.
|
||
- All other `contains()` calls use bitflags or range containment. CLEAN.
|
||
|
||
**Result: No actionable CWE-407 defects.**
|