On Fri May 15 16:25:27 2026 +0000, Francis De Brabandere wrote:
@jacek do you need more real world evidence to pick this one up? I'm not sure about this. In general, we know that performance matters for these functions, but this is quite a narrow special case, potentially at the expense of adding more branching to other cases (although that could be mitigated with something like `!(xmask & ~(VTBIT_I2 | VTBIT_I4 | VTBIT_EMPTY))`).
It is hard for me to comment further without knowing the exact bottleneck. If changing the type is the problem, perhaps some refactoring that provides a lighter version of `VariantChangeTypeEx` that does not clear/validate the output would help, both here and in other callers. I'm not sure, it would also be a larger change, so it may not be worth it. If it really comes down to special-casing, perhaps vbscript, where this case is likely the most common by far, would be a better place. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10528#note_140053