The creation of Objective-C objects is split between 'alloc' and 'init...' methods. The single 'new' method is shorthand for alloc+init. Calling 'new' then 'init...' is therefore redundant. The instances of new + initWith... are replaced with the alloc/initWith... pattern and the zero-argument 'init' call is removed from instances of the new + init pattern.
'new' and alloc+init return an object with a retain count of 1. The change therefore also inserts release calls for temporary objects created in this way to prevent them leaking. Signed-off-by: Phil Dennis-Jordan <p...@philjordan.eu> --- hw/display/apple-gfx.m | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/hw/display/apple-gfx.m b/hw/display/apple-gfx.m index 7f0a231d26..073741ede5 100644 --- a/hw/display/apple-gfx.m +++ b/hw/display/apple-gfx.m @@ -63,7 +63,7 @@ -(PGIOSurfaceHostDeviceDescriptor *)init; @end @interface PGIOSurfaceHostDevice : NSObject --(void)initWithDescriptor:(PGIOSurfaceHostDeviceDescriptor *) desc; +-(instancetype)initWithDescriptor:(PGIOSurfaceHostDeviceDescriptor *) desc; -(uint32_t)mmioReadAtOffset:(size_t) offset; -(void)mmioWriteAtOffset:(size_t) offset value:(uint32_t)value; @end @@ -401,8 +401,8 @@ static void apple_gfx_realize(DeviceState *dev, Error **errp) int i; for (i = 0; i < ARRAY_SIZE(apple_gfx_modes); i++) { - modes[i] = [PGDisplayMode new]; - [modes[i] initWithSizeInPixels:apple_gfx_modes[i] refreshRateInHz:60.]; + modes[i] = + [[PGDisplayMode alloc] initWithSizeInPixels:apple_gfx_modes[i] refreshRateInHz:60.]; } s->mtl = MTLCreateSystemDefaultDevice(); @@ -499,8 +499,9 @@ static void apple_gfx_realize(DeviceState *dev, Error **errp) }; s->pgdev = PGNewDeviceWithDescriptor(desc); + [desc release]; + desc = nil; - [disp_desc init]; disp_desc.name = @"QEMU display"; disp_desc.sizeInMillimeters = NSMakeSize(400., 300.); /* A 20" display */ disp_desc.queue = dispatch_get_main_queue(); @@ -545,9 +546,14 @@ static void apple_gfx_realize(DeviceState *dev, Error **errp) }; s->pgdisp = [s->pgdev newDisplayWithDescriptor:disp_desc port:0 serialNum:1234]; + [disp_desc release]; s->pgdisp.modeList = [NSArray arrayWithObjects:modes count:ARRAY_SIZE(apple_gfx_modes)]; - [iosfc_desc init]; + for (i = 0; i < ARRAY_SIZE(apple_gfx_modes); i++) { + [modes[i] release]; + modes[i] = nil; + } + iosfc_desc.mapMemory = ^(uint64_t phys, uint64_t len, bool ro, void **va, void *e, void *f) { trace_apple_iosfc_map_memory(phys, len, ro, va, e, f); MemoryRegion *tmp_mr; @@ -573,8 +579,9 @@ static void apple_gfx_realize(DeviceState *dev, Error **errp) return (bool)true; }; - s->pgiosfc = [PGIOSurfaceHostDevice new]; - [s->pgiosfc initWithDescriptor:iosfc_desc]; + s->pgiosfc = + [[PGIOSurfaceHostDevice alloc] initWithDescriptor:iosfc_desc]; + [iosfc_desc release]; QTAILQ_INIT(&s->mrs); QTAILQ_INIT(&s->tasks); -- 2.39.3 (Apple Git-146)