Render-path containers survive running out of memory: std::map for QHash (12.8e)

This commit is contained in:
雷电芽衣 committed 2026-09-28 01:25:58 -04:00
1 parent 56af936a7b
commit bb8129e8d5
8 files changed
+210 -48

No files matched your search

+2 -1
View File
@@ -351,7 +351,8 @@ The panel of 4.6 shows and edits what the session holds so far. Each item adds i
- [x] 12.8b1 Version 1.2.3, part two: the Camera Raw panel docked beside the canvas (Swift's docked placement in `FloatingPanel.swift`), `CameraRawSlider` (coloured tracks, a double click on the knob resetting), the histogram and vectorscope with the clipping buttons and the readout, the ten sections with their eyes, Light, Color and Effects, and the canvas half of the tools in `EditorCanvas.swift` (the readout on hover and its clearing on leaving, the three eyedroppers and the guide's press, each refocusing the panel, the guide and targeted drags, their release, `picking`'s four terms).
- 12.8b1 round 1: FAIL, four findings: the rows' titles, help and two clipping views, the scope's drawing and the glyphs were unpinned; help said Option and Control-click; a stray `friend` and `setTrack` without a caller; AGENTS.md lacked the equivalents and the dock's height. All fixed, with the minor notes (buddy, `isHidden`, SwiftUI's dark colours, auto-repeat, the docked panel's deletion).
- 12.8b1 round 2: PASS. Its notes taken: every row's decimals and plain track pinned, the lit highlight triangle, the knob's two-point ring, a redundant label filter gone, two consequences named in AGENTS.md.
- [ ] 12.8e `ProjectExportFailureTests::aJPEGRenderThatFindsNoMemoryIsExplained` still aborts with `std::bad_alloc` under a full parallel run after 12.8d (once in 12.8b1's run; that test's main thread waits while the JPEG worker runs under the limit): catch a backtrace, fix the cause.
- [x] 12.8e `ProjectExportFailureTests::aJPEGRenderThatFindsNoMemoryIsExplained` still aborts with `std::bad_alloc` under a full parallel run after 12.8d (once in 12.8b1's run; that test's main thread waits while the JPEG worker runs under the limit): catch a backtrace, fix the cause.
- 12.8e: the cause, from a backtrace under load: Qt 6.4's `QHash` insert (`findOrInsert`, `noexcept`) terminates when it cannot allocate, and the JPEG worker's render filled a `QHash` in `LiveMaskGraph::validate`. The render path's hash containers are `std::map` and `std::set` now; `RenderStarvationTests` fails each allocation in turn. Round 1: PASS, its note taken (bake's workers catch `ExportError` alone).
- [x] 12.8p Review PR #8 (a self-contained AppImage workflow from a contributor) and say whether it can merge (the user's request, 2026-09-27).
- 12.8p: built the workflow's AppDir locally on Ubuntu 24.04. Not mergeable: `AppRun` is a bare symlink, so the bundled model under `$APPDIR/usr/share` is never on `XDG_DATA_DIRS` and Remove Background finds no model; libheif's HEVC plugin is not bundled; only xcb is deployed; its tag runs clash with `release.yml`; its tools are unpinned. Changes requested on the PR, with the user's approval.
- [ ] 12.8b2 Version 1.2.3, part three: Curve, Color Mixer, Color Grading (its wheels turning the way their hue runs, 1.2.9's `96edd5f`), Detail, Optics, Geometry and Calibration in the panel, and the Filter menu's Camera Raw entry.