Files
iris/core
iris-ai 429a4f1330 Drop the refcount a widget handle can never raise
StrongWidget has no Clone on purpose, so the RefCounter in it never counted
anything: the count stayed at zero, RefCounter::drop always answered true,
and StrongWidget::refs had no caller -- while every widget made paid a heap
allocation for an Arc<AtomicU32> and every one created or dropped paid two
atomic read-modify-writes. The handle is the id, the sender and the type now,
and Drop sends. It is 32 bytes rather than 40, and 40 rather than 48 for a
dyn one.

RefCounter stays for TextureHandle, which does clone -- several widgets
showing one picture share its slot -- and is trimmed to what that needs:
quiet_clone and refs had no callers at all, and new was Default spelt out.

Bryan asked for this in #19 rather than in the review of the code written
before the gate, where the fourteenth sweep had left it.
2026-09-21 00:16:44 -04:00
..