On Fri Oct 10 16:10:25 2025 +0000, Jacek Caban wrote:
I'm sure I don't want to pollute the common code with a workaround for such inefficiencies. If you think it’s important enough, you can just keep the attributes collection with their own enumerator implementation. Theoretically, we could make random access faster. Linear `get_dispid` is just as bad, since performing `n` accesses is currently `O(n^2)` as well while it could be `O(n)`. Anyway, that’s off-topic here.
Well I tried to somehow use `GetNextDispID`, at least as fallback if those new methods weren't defined, but couldn't figure out how to solve the non-attributes cleanly, so I gave up for now.
Also I had to use the common impl on attribute collections since we will need it to fix the cyclic ref leaks later, otherwise we'd have to init yet another CC object with its own vtbl just for attribute collections.