On Thu Oct 9 16:57:58 2025 +0000, Gabriel Ivăncescu wrote:
Ah right. I had some problems with the attribute collection though, since it uses relative next/skip. I added optional next/skip methods in the vtbl for that but I'm not sure if it's the best way, I can use them for all the others too if you prefer.
If attributes require a special code path, they might as well avoid the shared implementation entirely. However, I don’t see why that’s necessary. Attributes already support indexed access through `get_dispid`, and we could use the same approach here. It’s unfortunate that this is slower than relative iteration for legacy attributes, but that’s a broader issue, and I don’t think we should change the shared code for it.
Also, we could add these new helpers to `dispex_static_data_vtbl_t` instead of introducing a new vtbl type. Eventually, that could also be used to share indexed `get_dispid`/`invoke` logic.