Huw Davies (@huw) commented about dlls/uiautomationcore/uia_provider.c:
- if (!msaa_acc_prop_match(acc, acc2, &matched))
goto exit;- variant_init_i4(&cid, CHILDID_SELF);
- hr = IAccessible_get_accName(acc, cid, &name[0]);
- if (SUCCEEDED(hr))
- {
hr = IAccessible_get_accName(acc2, cid, &name[1]);if (SUCCEEDED(hr)){if ((!(!name[0] && !name[1]) && (!name[0] || !name[1])) ||((name[0] && name[1]) && wcscmp(name[0], name[1])))matched = FALSE;elsematched = TRUE;
This `if` condition is challenging to decipher. Perhaps it would be simpler comparing `!!name[0]` with `!!name[1]`, or breaking this out into a series of `if` statements.