diff --git a/Cocoa/Document.m b/Cocoa/Document.m index ffcf870..0997d49 100644 --- a/Cocoa/Document.m +++ b/Cocoa/Document.m @@ -157,7 +157,11 @@ static void printImage(GB_gameboy_t *gb, uint32_t *image, uint8_t height, self.view.mouseHidingEnabled = (self.mainWindow.styleMask & NSFullScreenWindowMask) != 0; [self.view flip]; GB_set_pixels_output(&gb, self.view.pixels); - [self reloadVRAMData: nil]; + if (self.vramWindow.isVisible) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self reloadVRAMData: nil]; + }); + } } - (void) run @@ -734,8 +738,13 @@ static void printImage(GB_gameboy_t *gb, uint32_t *image, uint8_t height, NULL, YES, renderingIntent); + CGDataProviderRelease(provider); + CGColorSpaceRelease(colorSpaceRef); - return [[NSImage alloc] initWithCGImage:iref size:NSMakeSize(width * scale, height * scale)]; + NSImage *ret = [[NSImage alloc] initWithCGImage:iref size:NSMakeSize(width * scale, height * scale)]; + CGImageRelease(iref); + + return ret; } - (void) reloadMemoryView diff --git a/Core/gb.c b/Core/gb.c index 923b403..6109c93 100755 --- a/Core/gb.c +++ b/Core/gb.c @@ -137,7 +137,7 @@ void GB_free(GB_gameboy_t *gb) } } for (int i = 0x400; i--;) { - if (gb->reversed_symbol_map.buckets[i]) { + while (gb->reversed_symbol_map.buckets[i]) { GB_symbol_t *next = gb->reversed_symbol_map.buckets[i]->next; free(gb->reversed_symbol_map.buckets[i]); gb->reversed_symbol_map.buckets[i] = next; diff --git a/HexFiend/HFTextVisualStyleRun.m b/HexFiend/HFTextVisualStyleRun.m index e9675cd..39442d5 100644 --- a/HexFiend/HFTextVisualStyleRun.m +++ b/HexFiend/HFTextVisualStyleRun.m @@ -22,6 +22,7 @@ [_backgroundColor release]; [_bookmarkStarts release]; [_bookmarkExtents release]; + [_bookmarkEnds release]; [super dealloc]; }