Commit Graph
3 Commits
Author SHA1 Message Date
youknowdot be52c97463 Reject oversized pickle lengths with OverflowError (#9040)
Preserve the wrapper-pickle regressions merged into main while refreshing the independent length checks.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-11 00:51:40 +09:00
youknowdot e3374c8a24 Support pickling slot wrapper descriptors (#9037)
Extract wrapper descriptor reduction from #8954 for Python 3.14. Reduce to getattr on the defining class and cover direct reduction plus one roundtrip in the existing pickle snippet. Preserve canonical expected failures for unrelated staticmethod descriptor behavior.

Assisted-by: OpenAI Codex:model identifier unavailable
2026-10-10 19:32:52 +09:00
youknowdot 5a61850e32 Use populated entries for unpickler MEMOIZE indexes (#8959)
* Use populated entries for unpickler MEMOIZE indexes

A sparse BINPUT followed by MEMOIZE must use the number of occupied memo
entries, not the largest index plus one. Store populated entries in a map,
preserve ascending memo copies, reserve fallibly, and release displaced
references after memo guards end.

Keep existing memo assignment/proxy behavior and add one bounded regression
for sparse BINPUT, MEMOIZE identity and copy order. No protocol version,
GC traversal or unrelated pickle input changes are included.

Extracted from the Python 3.15 migration onto the unchanged 3.14 target.

Assisted-by: Codex:model-version-unavailable

* Move sparse memo regression to standard pickle snippet

Use the module-level snippet name requested in review without changing the regression assertions.

Assisted-by: Codex:model-version-unavailable
2026-10-05 09:03:52 +09:00