fix(viewcube): cache UCS picker names behind an epoch

The two per-frame ViewCube blocks rebuilt the named-UCS name list (N String clones plus a Vec) every frame; now Scene::cached_ucs_names memoises it behind ucs_epoch and the picker takes the Arc, so frames cost a refcount bump. Bumped on UCS SAVE, UCS DELETE, RENAME UCS, record-API ucss patch, file-open, and undo Full-swap. Tests: cached_ucs_names_returns_same_arc_until_bump pins the hit path; cached_ucs_names_invalidated_by_bump pins rebuild with new content. Full suite: 1976 passed / 0 failed / 25 ignored.
This commit is contained in:
Karim Jerbi committed 2026-10-06 20:10:23 +01:00
1 parent bd37a2f969
commit 8c2cfa2c8f
9 files changed
+85 -20

No files matched your search

+6 -1
View File
@@ -1611,7 +1611,12 @@ impl OpenCADStudio {
"app_ids" => patch_table!(app_ids),
"views" => patch_table!(views),
"vports" => patch_table!(vports),
"ucss" => patch_table!(ucss),
"ucss" => {
patch_table!(ucss);
if changed {
self.tabs[i].scene.bump_ucs_epoch();
}
}
"vx_table" => patch_table!(vx_table),
_ => unreachable!(),
}