From 39c0e1c0ab6a0a89a71f26446973c779ca7fd927 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Sequoia Date: Thu, 18 Feb 2021 09:41:30 -0800 Subject: [PATCH] xquartz: Fold away array_with_strings_and_numbers and simplify with more modern Objective-C Signed-off-by: Jeremy Huddleston Sequoia --- hw/xquartz/X11Application.m | 50 +++++++++++-------------------------- 1 file changed, 15 insertions(+), 35 deletions(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 1d281b9fe..b1757b846 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -901,48 +901,28 @@ cfarray_to_nsarray(CFArrayRef in) @end -static NSArray * -array_with_strings_and_numbers(int nitems, const char **items, - const char *numbers) -{ - NSMutableArray *array, *subarray; - NSString *string, *number; - int i; - - array = [[[NSMutableArray alloc] initWithCapacity:nitems] autorelease]; - - for (i = 0; i < nitems; i++) { - subarray = [[NSMutableArray alloc] initWithCapacity:2]; - - string = [[NSString alloc] initWithUTF8String:items[i]]; - [subarray addObject:string]; - [string release]; - - if (numbers[i] != 0) { - number = [[NSString alloc] initWithFormat:@"%d", numbers[i]]; - [subarray addObject:number]; - [number release]; - } - else - [subarray addObject:@""]; - - [array addObject:subarray]; - [subarray release]; - } - - return array; -} - void X11ApplicationSetWindowMenu(int nitems, const char **items, const char *shortcuts) { @autoreleasepool { - NSArray *array = array_with_strings_and_numbers(nitems, items, shortcuts); + NSMutableArray *> * const allMenuItems = [NSMutableArray array]; + + for (int i = 0; i < nitems; i++) { + NSMutableArray * const menuItem = [NSMutableArray array]; + [menuItem addObject:@(items[i])]; + + if (shortcuts[i] == 0) { + [menuItem addObject:@""]; + } else { + [menuItem addObject:[NSString stringWithFormat:@"%d", shortcuts[i]]]; + } + + [allMenuItems addObject:menuItem]; + } - /* Send the array of strings over to the appkit thread */ dispatch_async(dispatch_get_main_queue(), ^{ - [X11App set_window_menu:array]; + [X11App set_window_menu:allMenuItems]; }); } }