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?