Brendan Shanks (@bshanks) commented about dlls/winemac.drv/cocoa_display.m:
monitors[monitor_count].id = display_ids[i]; monitors[monitor_count].rc_monitor = convert_display_rect(screen.frame, primary_frame); monitors[monitor_count].rc_work = convert_display_rect(screen.visibleFrame, primary_frame); + + vendor_number = CGDisplayVendorNumber(monitors[monitor_count].id); + model_number = CGDisplayModelNumber(monitors[monitor_count].id); + serial_number = CGDisplaySerialNumber(monitors[monitor_count].id); + monitors[monitor_count].edid_len = get_edid_from_dcpav_service_proxy(vendor_number, model_number,
It's up to you, but maybe the `get_edid_*` and `generate_edid` functions could return a CFData, and then `macdrv_get_monitors` would do the malloc? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8925#note_123064