mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-18 07:55:21 +01:00
Mac: fix double free
Had wrongfully assumed CFStringRef's were reference counted objects that needed to be CFRelease()'d when we no longer needed them. However according to the CFArrayGetValueAtIndex() API docs ( https://developer.apple.com/documentation/corefoundation/1388767-cfarraygetvalueatindex?language=objc ) it follows "get rule" for memory ownership, meaning it is not ours to release. Only prefLangs returned by CFLocaleCopyPreferredLanguages() need to be CFRelease()'d as that does follow "create rule" Ref #202 (Crash on Mac OS Big Sur)
This commit is contained in:
parent
a82fe15d54
commit
1aaf22d7ab
2 changed files with 2 additions and 3 deletions
1
main.cpp
1
main.cpp
|
@ -185,7 +185,6 @@ int main(int argc, char *argv[])
|
|||
char buf[32] = {0};
|
||||
CFStringRef strRef = (CFStringRef) CFArrayGetValueAtIndex(prefLangs, 0);
|
||||
CFStringGetCString(strRef, buf, sizeof(buf), kCFStringEncodingUTF8);
|
||||
CFRelease(strRef);
|
||||
langcode = buf;
|
||||
langcode.replace('-', '_');
|
||||
qDebug() << "OSX most preferred language:" << langcode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue