[Vm-dev] [commit][3477] JMM - eliminate leaks on 32bit platform

commits at squeakvm.org commits at squeakvm.org
Tue Oct 20 00:51:45 UTC 2015


Revision: 3477
Author:   johnmci
Date:     2015-10-19 17:51:42 -0700 (Mon, 19 Oct 2015)
Log Message:
-----------
JMM - eliminate leaks on 32bit platform

Modified Paths:
--------------
    branches/Cog/build.macos32x86/squeak.cog.spur/SqueakCogSpur32x86.xcworkspace/xcuserdata/johnmci.xcuserdatad/UserInterfaceState.xcuserstate
    branches/Cog/platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m
    branches/Cog/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
    branches/Cog/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m
    branches/Cog/platforms/iOS/vm/Common/Classes/Queue.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m
    branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
    branches/Cog/platforms/iOS/vm/OSX/SqViewBitmapConversion.m
    branches/Cog/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
    branches/Cog/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXFileDirectoryInterface.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
    branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m
    branches/Cog/platforms/iOS/vm/SqueakPureObjc_Prefix.pch
    branches/Cog/platforms/iOS/vm/iPhone/Classes/SqueakUIViewOpenGL.m

Modified: branches/Cog/build.macos32x86/squeak.cog.spur/SqueakCogSpur32x86.xcworkspace/xcuserdata/johnmci.xcuserdatad/UserInterfaceState.xcuserstate
===================================================================
(Binary files differ)

Modified: branches/Cog/platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m
===================================================================
--- branches/Cog/platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -75,8 +75,8 @@
 
 void sqPasteboardPutItemFlavordatalengthformatTypeformatLength ( CLIPBOARDTYPE inPasteboard, char* inData, sqInt dataLength, char* format, sqInt formatLength)
 {
-    NSString *formatType = [[NSString alloc] initWithBytes: format length: formatLength encoding:  NSUTF8StringEncoding];
-    NSData* data = [[NSData alloc ] initWithBytes: inData length: dataLength];
+    NSString *formatType = [[[NSString alloc] initWithBytes: format length: formatLength encoding:  NSUTF8StringEncoding] AUTORELEASEOBJ];
+    NSData* data = [[[NSData alloc ] initWithBytes: inData length: dataLength] AUTORELEASEOBJ];
     NSArray *arrayOfTypes = @[formatType];
     
     [inPasteboard declareTypes: arrayOfTypes owner: nil];
@@ -86,7 +86,7 @@
 
 sqInt sqPasteboardCopyItemFlavorDataformatformatLength ( CLIPBOARDTYPE inPasteboard, char* format, sqInt formatLength)
 {
-    NSString *formatType = [[NSString alloc] initWithBytes: format length: formatLength encoding:  NSUTF8StringEncoding];
+    NSString *formatType = [[[NSString alloc] initWithBytes: format length: formatLength encoding:  NSUTF8StringEncoding] AUTORELEASEOBJ];
     NSArray *arrayOfTypes = @[formatType];
     NSString     *type= [inPasteboard availableTypeFromArray: arrayOfTypes];
     

Modified: branches/Cog/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
===================================================================
--- branches/Cog/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -114,7 +114,7 @@
 		return;
 	
 	if (inNumberPacketDescriptions > 0) {
-		soundAtom *atom = [[soundAtom alloc] initWith: inBuffer->mAudioData count: inBuffer->mAudioDataByteSize];
+		soundAtom *atom = [[[soundAtom alloc] initWith: inBuffer->mAudioData count: inBuffer->mAudioDataByteSize] AUTORELEASEOBJ];
 		[myInstance.soundInQueue addItem: atom];
     }
 	
@@ -145,6 +145,7 @@
 	data = 0;
 	byteCount = 0;
 	startOffset = 0;
+    SUPERDEALLOC
 }
 
 @end
@@ -280,7 +281,7 @@
 	OSStatus result  = AudioQueueDispose (self.outputAudioQueue,true);
 #pragma unused(result)
 	self.outputAudioQueue = nil;
-	self.soundOutQueue = [[Queue alloc] init];
+	self.soundOutQueue = [[[Queue alloc] init] AUTORELEASEOBJ];
 	return 1;
 }
 
@@ -307,7 +308,7 @@
 		return interpreterProxy->primitiveFail();
 	//NSLog(@"%i sound place samples on queue frames %i startIndex %i count %i",ioMSecs(),frameCount,startIndex,byteCount-startIndex);
 		
-	soundAtom *atom = [[soundAtom alloc] initWith: arrayIndex+startIndex count: (unsigned) (byteCount-startIndex)];
+	soundAtom *atom = [[[soundAtom alloc] initWith: arrayIndex+startIndex count: (unsigned) (byteCount-startIndex)] AUTORELEASEOBJ];
 	[self.soundOutQueue addItem: atom];
 	
 	if (!self.outputIsRunning) {
@@ -395,7 +396,7 @@
 		return 0;
 	result = AudioQueueDispose (self.inputAudioQueue,true);
 	self.inputAudioQueue = nil;
-	self.soundInQueue = [[Queue alloc] init];
+	self.soundInQueue = [[[Queue alloc] init] AUTORELEASEOBJ];
 	return 1;
 }
 

Modified: branches/Cog/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m
===================================================================
--- branches/Cog/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -71,8 +71,8 @@
 		[self setTarget: dummy];
 	}
 	
-	lockForSqueak = [[NSConditionLock alloc] initWithCondition: 0];
-	sigs = [[NSMutableDictionary alloc] initWithCapacity: 10];
+	self.lockForSqueak = [[NSConditionLock alloc] initWithCondition: 0];
+	self.sigs = [[NSMutableDictionary alloc] initWithCapacity: 10];
 	isCarbonVM = NO;
 	callbackid = 0;
 	
@@ -92,11 +92,11 @@
 		return;
 	}
 	
-	if([lockForSqueak lockWhenCondition: 0 beforeDate: (timeout = [[NSDate alloc] initWithTimeIntervalSinceNow: 3.0])])
+	if([lockForSqueak lockWhenCondition: 0 beforeDate: (timeout = [[[NSDate alloc] initWithTimeIntervalSinceNow: 3.0] AUTORELEASEOBJ])])
 	{ 
 		// NSLog(@"inside lock 0");
 		[lockForSqueak unlockWithCondition: 1];
-		invocation = anInvocation;
+		invocation = [anInvocation RETAINOBJ];
 		
 		// NSLog(@"signalling squeak");
 		interpreterProxy->signalSemaphoreWithIndex(sem);
@@ -104,7 +104,7 @@
 		if (isCarbonVM)
 			interpreterProxy->callbackEnter(&callbackid);
 		
-		if([lockForSqueak lockWhenCondition: 2 beforeDate: (timeout = [[NSDate alloc] initWithTimeIntervalSinceNow: 5.0])])
+		if([lockForSqueak lockWhenCondition: 2 beforeDate: (timeout = [[[NSDate alloc] initWithTimeIntervalSinceNow: 5.0] AUTORELEASEOBJ])] )
 		{
 			// NSLog(@"inside lock 2");
 			invocation = nil;
@@ -187,6 +187,13 @@
 	isCarbonVM = YES;
 }
 
+- (void) dealloc
+{
+    [lockForSqueak RELEASEOBJ];
+    [sigs RELEASEOBJ];
+    [target RELEASEOBJ];
+    SUPERDEALLOC
+}
 
 @end
 

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/Queue.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/Queue.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/Queue.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -71,6 +71,12 @@
 	return self;
 }
 
+- (void) dealloc
+{
+    [mItemArray RELEASEOBJ];
+    SUPERDEALLOC
+}
+
 // Returns (and removes) the oldest item in the queue
 -(id)returnAndRemoveOldest
 {

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -44,6 +44,11 @@
 @implementation sqSqueakAppDelegate
 @synthesize squeakApplication,squeakThread;
 
+- (void)dealloc {
+    [squeakApplication RELEASEOBJ];
+    SUPERDEALLOC
+}
+
 - (void) makeMainWindow {
 	
 	/*Beware creating a main window must be done on main thread it will not work from this interpreter squeak thread */

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -191,22 +191,19 @@
 
 NSString* createFilePathFromString(char * aFilenameString,
 									sqInt filenameLength, sqInt resolveAlias) {
-	NSString * filePath = [[NSString alloc] initWithBytes: aFilenameString length: (NSUInteger) filenameLength encoding: NSUTF8StringEncoding];
+	NSString * filePath = [[[NSString alloc] initWithBytes: aFilenameString length: (NSUInteger) filenameLength encoding: NSUTF8StringEncoding] AUTORELEASEOBJ];
 	if (!filePath) {
-        [filePath RELEASEOBJ];
 		return NULL;
 	}
 	
-    NSString *oldFilePath = filePath;
 	if (resolveAlias) {
 		filePath = [gDelegateApp.squeakApplication.fileDirectoryLogic resolvedAliasFiles: filePath];
-        [oldFilePath RELEASEOBJ];
 	} else {
 		NSString *owningDirectoryPath = [filePath stringByDeletingLastPathComponent];
 		NSString *newFilePath = [gDelegateApp.squeakApplication.fileDirectoryLogic resolvedAliasFiles: owningDirectoryPath];
 		filePath = [newFilePath stringByAppendingPathComponent: [filePath lastPathComponent]];
 	}
-    [oldFilePath RELEASEOBJ];
+    [filePath RETAINOBJ];
 	return filePath;
 }
 

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -375,4 +375,11 @@
 	return filePath;
 }
 
+- (void)dealloc {
+    SUPERDEALLOC
+    [lastPathForDirLookup RELEASEOBJ];
+    [directoryContentsForDirLookup RELEASEOBJ];
+}
+
+
 @end

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -55,9 +55,9 @@
 	return;
 }
 
-//- (void)dealloc {
-//	[super dealloc];
-//	[defaults release];
-//}
+- (void)dealloc {
+    [defaults RELEASEOBJ];
+    SUPERDEALLOC
+}
 
 @end

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -227,6 +227,7 @@
 
 - (void)dealloc {
 	sqMacMemoryFree();
+    SUPERDEALLOC
 }
 
 @end

Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
===================================================================
--- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -206,5 +206,6 @@
 	if (blip) {
 		[blip invalidate];
 	}
+    SUPERDEALLOC
 }
 @end

Modified: branches/Cog/platforms/iOS/vm/OSX/SqViewBitmapConversion.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/SqViewBitmapConversion.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/SqViewBitmapConversion.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -64,7 +64,7 @@
 	copyImage1To32(srcBits, dBits, srcPixelWidth, height, left, top, right, bottom,colorMap);
 	
 	
-	CHECKANDRETURN([[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits 
+	CHECKANDRETURN([[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits
 														   pixelsWide:right-left
 														   pixelsHigh:bottom-top
 														bitsPerSample:bitsPerSample
@@ -73,7 +73,7 @@
 															 isPlanar:NO
 													   colorSpaceName:colorSpace
 														  bytesPerRow:bytesPerRow
-														 bitsPerPixel:bitsPerPixel]);
+														 bitsPerPixel:bitsPerPixel] AUTORELEASEOBJ]);
 }//extractPixels_1_to_32;
 
 
@@ -96,7 +96,7 @@
 	copyImage2To32(srcBits, dBits, srcPixelWidth, height, left, top, right, bottom,colorMap);
 	
 	
-	CHECKANDRETURN([[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits 
+	CHECKANDRETURN([[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits
 														   pixelsWide:right-left
 														   pixelsHigh:bottom-top
 														bitsPerSample:bitsPerSample
@@ -105,7 +105,7 @@
 															 isPlanar:NO
 													   colorSpaceName:colorSpace
 														  bytesPerRow:bytesPerRow
-														 bitsPerPixel:bitsPerPixel]);
+														 bitsPerPixel:bitsPerPixel] AUTORELEASEOBJ]);
 }//extractPixels_2_to_32;
 
 -(CGImageRef)extractPixels_4_to_32:(void*)srcBits 
@@ -127,7 +127,7 @@
 	copyImage4To32(srcBits, dBits, srcPixelWidth, height, left, top, right, bottom,colorMap);
 	
 	
-	CHECKANDRETURN([[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits 
+	CHECKANDRETURN([[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits
 														   pixelsWide:right-left
 														   pixelsHigh:bottom-top
 														bitsPerSample:bitsPerSample
@@ -136,7 +136,7 @@
 															 isPlanar:NO
 													   colorSpaceName:colorSpace
 														  bytesPerRow:bytesPerRow
-														 bitsPerPixel:bitsPerPixel]);
+														 bitsPerPixel:bitsPerPixel] AUTORELEASEOBJ]);
 }//extractPixels_4_to_32;
 
 
@@ -159,7 +159,7 @@
 		copyImage8To32(srcBits, dBits, srcPixelWidth, height, left, top, right, bottom,colorMap);
 		
 		
-		CHECKANDRETURN([[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits 
+		CHECKANDRETURN([[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits
 				pixelsWide:right-left
 				pixelsHigh:bottom-top
 				bitsPerSample:bitsPerSample
@@ -168,7 +168,7 @@
 				isPlanar:NO
 				colorSpaceName:colorSpace
 				bytesPerRow:bytesPerRow
-				bitsPerPixel:bitsPerPixel]);
+				bitsPerPixel:bitsPerPixel] AUTORELEASEOBJ]);
 	}//extractPixels_8_to_32;
 	
 
@@ -189,7 +189,7 @@
 	
 	copyImage16To32(srcBits, dBits, srcPixelWidth, height, left, top, right, bottom);
 	
-	CHECKANDRETURN([[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits 
+	CHECKANDRETURN([[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)&dBits
 														   pixelsWide:right-left
 														   pixelsHigh:bottom-top
 														bitsPerSample:bitsPerSample
@@ -198,7 +198,7 @@
 															 isPlanar:NO
 													   colorSpaceName:colorSpace
 														  bytesPerRow:bytesPerRow
-														 bitsPerPixel:bitsPerPixel]);
+														 bitsPerPixel:bitsPerPixel] AUTORELEASEOBJ]);
 }//extractPixels_16_to_32;
 
 -(CGImageRef)computeBitmapFromBitsIndex:(void*)srcBits

Modified: branches/Cog/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -63,7 +63,7 @@
 @synthesize window,mainView,possibleImageNameAtLaunchTime,checkForFileNameOnFirstParm,windowHandler;
 
 - (sqSqueakMainApplication *) makeApplicationInstance {
-	return [[sqSqueakOSXApplication alloc] init];
+	return [[[sqSqueakOSXApplication alloc] init] AUTORELEASEOBJ];
 }
 
 - (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
@@ -80,8 +80,8 @@
 	
     @autoreleasepool {
 		gDelegateApp = self;	
-		squeakApplication = [self makeApplicationInstance];
-		self.windowHandler = [[sqSqueakOSXScreenAndWindow alloc] init];
+		self.squeakApplication = [self makeApplicationInstance];
+		self.windowHandler = [[[sqSqueakOSXScreenAndWindow alloc] init] AUTORELEASEOBJ];
 		windowHandler.mainViewOnWindow = self.mainView;
 		self.mainView.windowLogic = windowHandler;
 		windowHandler.windowIndex = 1;
@@ -176,7 +176,7 @@
     //It can right now, I have two implementations to pick (CoreGraphics or OpenGL), muy more/different could be added 
     //in the future. 
     
-    NSView *view = [[ContentViewClass alloc] initWithFrame:[[self window] frame]];
+    NSView *view = [[[ContentViewClass alloc] initWithFrame:[[self window] frame]] AUTORELEASEOBJ];
     self.mainView = (id) view;
     [[self window] setContentView: view];
     

Modified: branches/Cog/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -101,7 +101,7 @@
 }
 
 sqInt ioSetTitleOfWindow(sqInt windowIndex, char * newTitle, sqInt sizeOfTitle) {
-    NSString *title = [[NSString alloc] initWithBytes:newTitle length:sizeOfTitle encoding:NSUTF8StringEncoding];
+    NSString *title = [[[NSString alloc] initWithBytes:newTitle length:sizeOfTitle encoding:NSUTF8StringEncoding] AUTORELEASEOBJ];
     [[[NSApplication sharedApplication] mainWindow] setTitle:title];
 	return 1;
 }

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -74,7 +74,7 @@
 
 - (void) clipboardWrite: (sqInt) count from: (char *)byteArrayIndex  startingAt:  (sqInt) startIndex {
 	NSPasteboard      *pboard= [NSPasteboard generalPasteboard];
-	NSString * string = [[NSString alloc] initWithBytes: byteArrayIndex length:(NSUInteger)count encoding: NSUTF8StringEncoding];
+	NSString * string = [[[NSString alloc] initWithBytes: byteArrayIndex length:(NSUInteger)count encoding: NSUTF8StringEncoding] AUTORELEASEOBJ];
 	[pboard declareTypes: @[NSStringPboardType] owner: nil];
 	[pboard setString: string forType: NSStringPboardType];
 }

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -195,7 +195,7 @@
             }
 		}
 		
-		NSString *lookupString = [[NSString alloc] initWithCharacters: &unicode length: 1];
+		NSString *lookupString = [[[NSString alloc] initWithCharacters: &unicode length: 1] AUTORELEASEOBJ];
 		[lookupString getBytes: &macRomanCharacter maxLength: 1 usedLength: NULL encoding: NSMacOSRomanStringEncoding
 					   options: 0 range: picker remainingRange: NULL];
 		

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXApplication.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -126,7 +126,7 @@
 }
 
 - (void) setupSoundLogic {
-	self.soundInterfaceLogic = [[sqSqueakOSXSoundCoreAudio alloc] init];
+	self.soundInterfaceLogic = [[[sqSqueakOSXSoundCoreAudio alloc] init] AUTORELEASEOBJ];
  	[(sqSqueakOSXSoundCoreAudio *) self.soundInterfaceLogic soundInitOverride];
 
 	snd_Start(2644, 22050, 1, 0);
@@ -195,7 +195,7 @@
 	
 	if ([args count] < 2) 
 		return;
-	NSMutableArray *revisedArgs = [args mutableCopyWithZone: NULL];
+	NSMutableArray *revisedArgs = [[args mutableCopyWithZone: NULL] AUTORELEASEOBJ];
 	[revisedArgs removeObjectAtIndex:0];
 	
 	NSUInteger i,result;

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXCGView.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -73,7 +73,7 @@
 		NSOpenGLPFABackingStore,
 		0
     };
-    return[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
+    return[[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] AUTORELEASEOBJ];
 }
 
 - (id)initWithFrame:(NSRect)frameRect {
@@ -113,6 +113,7 @@
 - (void) dealloc {
 	free(colorMap32);
 	CGColorSpaceRelease(colorspace);
+    SUPERDEALLOC
 }
 
 - (BOOL) acceptsFirstResponder {
@@ -334,11 +335,11 @@
 	//http://www.internet4classrooms.com/mac_ext.gif
 	//http://developer.apple.com/legacy/mac/library/documentation/mac/Text/Text-571.html
 	
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	
-	NSArray *down = [[NSArray alloc] initWithObjects: theEvent,nil];
+	NSArray *down = [[[NSArray alloc] initWithObjects: theEvent,nil] AUTORELEASEOBJ];
 	@synchronized(self) {
 		lastSeenKeyBoardStrokeDetails = aKeyBoardStrokeDetails;
 
@@ -354,11 +355,11 @@
 }
 
 -(void)keyDown:(NSEvent*)theEvent {
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	
-	NSArray *down = [[NSArray alloc] initWithObjects: theEvent,nil];
+	NSArray *down = [[[NSArray alloc] initWithObjects: theEvent,nil] AUTORELEASEOBJ];
 //	NSLog(@"sqSqueakOSXCGView.m>>keyDown:");
 	@synchronized(self) {
 		lastSeenKeyBoardStrokeDetails = aKeyBoardStrokeDetails;
@@ -388,7 +389,7 @@
 
 - (void)flagsChanged:(NSEvent *)theEvent {
 //	NSLog(@"sqSqueakOSXCGView.m>>flagsChanged -- %d, %d", [theEvent keyCode], [theEvent modifierFlags] );
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	self.lastSeenKeyBoardModifierDetails = aKeyBoardStrokeDetails;
@@ -463,7 +464,7 @@
     else return;
 	
 	@synchronized(self) {
-		keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+		keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 		aKeyBoardStrokeDetails.keyCode = keyCode;
 		aKeyBoardStrokeDetails.modifierFlags = self.lastSeenKeyBoardModifierDetails.modifierFlags;
 		lastSeenKeyBoardStrokeDetails = aKeyBoardStrokeDetails;

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXFileDirectoryInterface.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXFileDirectoryInterface.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXFileDirectoryInterface.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -74,7 +74,7 @@
 - (NSString *)resolvedAliasFiles:(NSString *)filePath {
 	NSArray *compoents = [[filePath stringByStandardizingPath] pathComponents];
 	NSString *thisComponent;
-	NSString *path = [[NSString alloc] init];
+	NSString *path = [[[NSString alloc] init] AUTORELEASEOBJ];
 	for (thisComponent in compoents) {
 		path = [path stringByAppendingPathComponent:thisComponent];
 		if (![[NSFileManager defaultManager] fileExistsAtPath:path])

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXOpenGLView.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -70,7 +70,7 @@
 		NSOpenGLPFABackingStore,
 		0
     };
-    return[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
+    return[[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] AUTORELEASEOBJ];
 }
 
 - (id)initWithFrame:(NSRect)frameRect {
@@ -103,6 +103,7 @@
 - (void) dealloc {
 	free(colorMap32);
 	CGColorSpaceRelease(colorspace);
+    SUPERDEALLOC
 }
 
 - (BOOL) acceptsFirstResponder {
@@ -414,7 +415,7 @@
 	//http://www.internet4classrooms.com/mac_ext.gif
 	//http://developer.apple.com/legacy/mac/library/documentation/mac/Text/Text-571.html
 	
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	
@@ -432,7 +433,7 @@
 }
 
 -(void)keyDown:(NSEvent*)theEvent {
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	
@@ -461,7 +462,7 @@
 }
 
 - (void)flagsChanged:(NSEvent *)theEvent {
-	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+	keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 	aKeyBoardStrokeDetails.keyCode = [theEvent keyCode];
 	aKeyBoardStrokeDetails.modifierFlags = [theEvent modifierFlags];
 	self.lastSeenKeyBoardModifierDetails = aKeyBoardStrokeDetails;
@@ -548,7 +549,7 @@
 																																									return;
 	
 	@synchronized(self) {
-		keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[keyBoardStrokeDetails alloc] init];
+		keyBoardStrokeDetails *aKeyBoardStrokeDetails = [[[keyBoardStrokeDetails alloc] init] AUTORELEASEOBJ];
 		aKeyBoardStrokeDetails.keyCode = keyCode;
 		aKeyBoardStrokeDetails.modifierFlags = self.lastSeenKeyBoardModifierDetails.modifierFlags;
 		lastSeenKeyBoardStrokeDetails = aKeyBoardStrokeDetails;

Modified: branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m
===================================================================
--- branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -52,6 +52,10 @@
 	return self.mainViewOnWindow;
 }
 
+- (void) dealloc {
+    [mainViewOnWindow RELEASEOBJ];
+    SUPERDEALLOC
+}
 
 - (void)  ioSetFullScreen: (sqInt) fullScreen {
 	[[self getMainView] ioSetFullScreen: fullScreen];

Modified: branches/Cog/platforms/iOS/vm/SqueakPureObjc_Prefix.pch
===================================================================
--- branches/Cog/platforms/iOS/vm/SqueakPureObjc_Prefix.pch	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/SqueakPureObjc_Prefix.pch	2015-10-20 00:51:42 UTC (rev 3477)
@@ -14,5 +14,5 @@
 #define RELEASEOBJ release
 #define RETAINOBJ retain
 #define AUTORELEASEOBJ autorelease
-
+#define SUPERDEALLOC [super dealloc];
 #endif
\ No newline at end of file

Modified: branches/Cog/platforms/iOS/vm/iPhone/Classes/SqueakUIViewOpenGL.m
===================================================================
--- branches/Cog/platforms/iOS/vm/iPhone/Classes/SqueakUIViewOpenGL.m	2015-10-19 23:15:48 UTC (rev 3476)
+++ branches/Cog/platforms/iOS/vm/iPhone/Classes/SqueakUIViewOpenGL.m	2015-10-20 00:51:42 UTC (rev 3477)
@@ -119,7 +119,8 @@
 - (void)dealloc {        
     if ([EAGLContext currentContext] == context)
         [EAGLContext setCurrentContext:nil];
-    
+    self.context = nil;
+    SUPERDEALLOC
 }
 
 - (void)layoutSubviews {



More information about the Vm-dev mailing list