Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
{ - if (!(monitor = calloc( 1, sizeof(*monitor) ))) break; - if (!read_monitor_settings( adapter, monitor_id, monitor )) - { - free( monitor ); - break; - } + struct monitor *monitor; + + if (!read_adapter_monitor_path( hkey, monitor_id, path )) break; + if (!(monitor = find_monitor_from_path( path ))) continue;
monitor->id = monitor_id; monitor->adapter = adapter_acquire( adapter ); + monitor->handle = UlongToHandle( ++monitor_count ); + adapter->monitor_count++;
Now that we have a monitor count in the adapter. Flagging a monitor as a clone doesn't need to loop over the monitor list. Any monitors within the same adapter but the first is a clone. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5262#note_64572