[Summary] Fixed crash on MAC when MIDI device name is 0 ref

This commit is contained in:
GZharun 2015-03-01 14:36:06 +02:00 committed by Paul Davis
parent 85b4577d7a
commit 3f5bf264c3

View File

@ -866,10 +866,14 @@ char* cm_get_full_endpoint_name(MIDIEndpointRef endpoint)
}
#endif
/* copy the string into our buffer */
newName = (char *) malloc(CFStringGetLength(fullName) + 1);
CFStringGetCString(fullName, newName, CFStringGetLength(fullName) + 1,
defaultEncoding);
if (fullName) {
newName = (char *) malloc(CFStringGetLength(fullName) + 1);
CFStringGetCString(fullName, newName, CFStringGetLength(fullName) + 1,
defaultEncoding);
} else {
newName = NULL;
}
/* clean up */
#ifdef OLDCODE
if (endpointName) CFRelease(endpointName);
@ -972,8 +976,12 @@ PmError pm_macosxcm_init(void)
pm_default_input_device_id = pm_descriptor_index;
/* Register this device with PortMidi */
pm_add_device("CoreMIDI", cm_get_full_endpoint_name(endpoint),
TRUE, (void *) (long) endpoint, &pm_macosx_in_dictionary);
char* full_endpoint_name = cm_get_full_endpoint_name(endpoint);
if (full_endpoint_name != NULL) {
pm_add_device("CoreMIDI", full_endpoint_name,
TRUE, (void *) (long) endpoint, &pm_macosx_in_dictionary);
}
}
/* Iterate over the MIDI output devices */
@ -988,9 +996,12 @@ PmError pm_macosxcm_init(void)
pm_default_output_device_id = pm_descriptor_index;
/* Register this device with PortMidi */
pm_add_device("CoreMIDI", cm_get_full_endpoint_name(endpoint),
FALSE, (void *) (long) endpoint,
&pm_macosx_out_dictionary);
char* full_endpoint_name = cm_get_full_endpoint_name(endpoint);
if (full_endpoint_name != NULL) {
pm_add_device("CoreMIDI", full_endpoint_name,
FALSE, (void *) (long) endpoint,
&pm_macosx_out_dictionary);
}
}
return pmNoError;