[Vm-dev] [commit][3314] arc and modern C support plus compile on
iphone arm-64 host
commits at squeakvm.org
commits at squeakvm.org
Sun Apr 26 23:58:14 UTC 2015
Revision: 3314
Author: johnmci
Date: 2015-04-26 16:58:12 -0700 (Sun, 26 Apr 2015)
Log Message:
-----------
arc and modern C support plus compile on iphone arm-64 host
Modified Paths:
--------------
trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.h
trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.m
trunk/platforms/iOS/plugins/MacMenubarPlugin/MacMenuOS9ToOSX.m
trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.h
trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
trunk/platforms/iOS/plugins/SqueakObjectiveC/PDColoredProgressView.m
trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.h
trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m
trunk/platforms/iOS/vm/Common/Classes/Queue.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.h
trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.h
trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.h
trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+attributes.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+events.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+imageReadWrite.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+vmAndImagePath.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.h
trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAPI.m
trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.h
trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
trunk/platforms/iOS/vm/Common/aio.c
trunk/platforms/iOS/vm/Common/main.m
trunk/platforms/iOS/vm/MainWindow.xib
trunk/platforms/iOS/vm/OSX/SqViewBitmapConversion.m
trunk/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.h
trunk/platforms/iOS/vm/OSX/SqueakOSXAppDelegate.m
trunk/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.h
trunk/platforms/iOS/vm/OSX/plugins/HostWindowPlugin/sqMacHostWindow.m
trunk/platforms/iOS/vm/OSX/plugins/SoundPlugin/sqSqueakOSXSoundCoreAudio.m
trunk/platforms/iOS/vm/OSX/sqMacUnixExternalPrims.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication+cursor.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication+events.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication+imageReadWrite.h
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication+imageReadWrite.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication.h
trunk/platforms/iOS/vm/OSX/sqSqueakOSXApplication.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXClipboardAPI.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXFileDirectoryInterface.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXInfoPlistInterface.h
trunk/platforms/iOS/vm/OSX/sqSqueakOSXInfoPlistInterface.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXNSView.h
trunk/platforms/iOS/vm/OSX/sqSqueakOSXNSView.m
trunk/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.h
trunk/platforms/iOS/vm/OSX/sqSqueakOSXScreenAndWindow.m
trunk/platforms/iOS/vm/Resources-iPad/MainWindow-iPad.xib
trunk/platforms/iOS/vm/SqueakPureObjc-Info.plist
trunk/platforms/iOS/vm/SqueakPureObjc.xcodeproj/project.pbxproj
trunk/platforms/iOS/vm/SqueakPureObjc.xcodeproj/project.xcworkspace/xcuserdata/johnmci.xcuserdatad/UserInterfaceState.xcuserstate
trunk/platforms/iOS/vm/SqueakPureObjc.xcodeproj/xcuserdata/johnmci.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
trunk/platforms/iOS/vm/iPhone/Classes/SqueakNoOGLIPhoneAppDelegate.h
trunk/platforms/iOS/vm/iPhone/Classes/SqueakNoOGLIPhoneAppDelegate.m
trunk/platforms/iOS/vm/iPhone/Classes/SqueakUIController.m
trunk/platforms/iOS/vm/iPhone/Classes/SqueakUIView.h
trunk/platforms/iOS/vm/iPhone/Classes/SqueakUIView.m
trunk/platforms/iOS/vm/iPhone/Classes/SqueakUIViewCALayer.m
trunk/platforms/iOS/vm/iPhone/Classes/SqueakUIViewOpenGL.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+clipboard.h
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+clipboard.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+events.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+imageReadWrite.h
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+imageReadWrite.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneClipboardAPI.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneFileDirectoryInterface.m
trunk/platforms/iOS/vm/iPhone/Classes/sqSqueakIPhoneInfoPlistInterface.m
trunk/platforms/iOS/vm/iPhone/Classes/sqiPhoneScreenAndWindow.m
trunk/platforms/iOS/vm/iPhone/config.h
trunk/platforms/iOS/vm/iPhone/plugins/ClipboardExtended/sqMacExtendedClipboard.h
trunk/platforms/iOS/vm/iPhone/plugins/ClipboardExtended/sqMacExtendedClipboard.m
trunk/platforms/iOS/vm/iPhone/sqPlatformSpecific.h
trunk/platforms/iOS/vm/src/vm/intplugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
trunk/platforms/iOS/vm/src/vm/sqNamedPrims.h
Modified: trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.h
===================================================================
--- trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -29,10 +29,15 @@
*/
/* The virtual machine proxy definition */
#include "sqVirtualMachine.h"
+#ifdef BUILD_FOR_OSX
+typedef NSPasteboard * CLIPBOARDTYPE;
+#else
+typedef UIPasteboard * CLIPBOARDTYPE;
+#endif
-void sqPasteboardClear( void * inPasteboard );
-sqInt sqPasteboardGetItemCount ( void *inPasteboard );
-sqInt sqPasteboardCopyItemFlavorsitemNumber ( void *inPasteboard, sqInt formatNumber );
+void sqPasteboardClear( CLIPBOARDTYPE inPasteboard );
+sqInt sqPasteboardGetItemCount ( CLIPBOARDTYPE inPasteboard );
+sqInt sqPasteboardCopyItemFlavorsitemNumber ( CLIPBOARDTYPE inPasteboard, sqInt formatNumber );
void * sqCreateClipboard( void );
-void sqPasteboardPutItemFlavordatalengthformatTypeformatLength ( void *inPasteboard, char* inData, sqInt dataLength, char* format, sqInt formatLength);
-sqInt sqPasteboardCopyItemFlavorDataformatformatLength ( void* inPasteboard, char* format, sqInt formatLength);
+void sqPasteboardPutItemFlavordatalengthformatTypeformatLength ( CLIPBOARDTYPE inPasteboard, char* inData, sqInt dataLength, char* format, sqInt formatLength);
+sqInt sqPasteboardCopyItemFlavorDataformatformatLength ( CLIPBOARDTYPE inPasteboard, char* format, sqInt formatLength);
Modified: trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.m
===================================================================
--- trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/ClipboardExtended/sqMacExtendedClipboard.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -31,35 +31,33 @@
#include "sqMacExtendedClipboard.h"
#import <Cocoa/Cocoa.h>
-
extern struct VirtualMachine* interpreterProxy;
-void sqPasteboardClear(void *inPasteboard )
+void sqPasteboardClear(CLIPBOARDTYPE inPasteboard )
{
NSArray *arrayOfTypes = [[NSArray alloc] init];
- [(NSPasteboard*) inPasteboard declareTypes: arrayOfTypes owner: nil];
- [arrayOfTypes release];
+ [inPasteboard declareTypes: arrayOfTypes owner: nil];
}
-sqInt sqPasteboardGetItemCount (void *inPasteboard )
+sqInt sqPasteboardGetItemCount (CLIPBOARDTYPE inPasteboard )
{
- return [[(NSPasteboard *)inPasteboard types] count];
+ return [[inPasteboard types] count];
}
-sqInt sqPasteboardCopyItemFlavorsitemNumber ( void *inPasteboard, sqInt formatNumber )
+sqInt sqPasteboardCopyItemFlavorsitemNumber ( CLIPBOARDTYPE inPasteboard, sqInt formatNumber )
{
sqInt formatTypeLength;
sqInt flavorCount;
- flavorCount = [[(NSPasteboard *)inPasteboard types] count];
+ flavorCount = [[inPasteboard types] count];
if (formatNumber > flavorCount) {
return interpreterProxy->nilObject();
}
- NSString *formatType = [[(NSPasteboard *)inPasteboard types] objectAtIndex: formatNumber-1];
+ NSString *formatType = [inPasteboard types][formatNumber-1];
const char *utf8data = [formatType UTF8String];
formatTypeLength = strlen(utf8data);
@@ -72,42 +70,35 @@
void * sqCreateClipboard( void )
{
- return (void*) [NSPasteboard generalPasteboard];
+ return (__bridge void*) [NSPasteboard generalPasteboard];
}
-void sqPasteboardPutItemFlavordatalengthformatTypeformatLength ( void *inPasteboard, char* inData, sqInt dataLength, char* format, sqInt formatLength)
+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];
NSArray *arrayOfTypes = [[NSArray alloc] initWithObjects: formatType,nil];
- [(NSPasteboard *)inPasteboard declareTypes: arrayOfTypes owner: nil];
- [(NSPasteboard *)inPasteboard setData: data forType: formatType];
+ [inPasteboard declareTypes: arrayOfTypes owner: nil];
+ [inPasteboard setData: data forType: formatType];
- [arrayOfTypes release];
- [data release];
- [formatType release];
}
-sqInt sqPasteboardCopyItemFlavorDataformatformatLength ( void *inPasteboard, char* format, sqInt formatLength)
+sqInt sqPasteboardCopyItemFlavorDataformatformatLength ( CLIPBOARDTYPE inPasteboard, char* format, sqInt formatLength)
{
NSString *formatType = [[NSString alloc] initWithBytes: format length: formatLength encoding: NSUTF8StringEncoding];
NSArray *arrayOfTypes = [[NSArray alloc] initWithObjects: formatType,nil];
- NSString *type= [(NSPasteboard *)inPasteboard availableTypeFromArray: arrayOfTypes];
+ NSString *type= [inPasteboard availableTypeFromArray: arrayOfTypes];
if (type == NULL) {
- [formatType release];
- [arrayOfTypes release];
return interpreterProxy->nilObject();
}
- NSData *dataBuffer = [(NSPasteboard *)inPasteboard dataForType: type];
+ NSData *dataBuffer = [inPasteboard dataForType: type];
sqInt dataLength = [dataBuffer length];
sqInt outData = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classByteArray(), dataLength );
char *outDataPtr = (char *) interpreterProxy->firstIndexableField(outData);
[dataBuffer getBytes: outDataPtr];
- [formatType release];
- [arrayOfTypes release];
return outData;
}
\ No newline at end of file
Modified: trunk/platforms/iOS/plugins/MacMenubarPlugin/MacMenuOS9ToOSX.m
===================================================================
--- trunk/platforms/iOS/plugins/MacMenubarPlugin/MacMenuOS9ToOSX.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/MacMenubarPlugin/MacMenuOS9ToOSX.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -21,7 +21,7 @@
MenuRef GetMenuHandle(MenuID menuID){
NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
NSMenuItem *menuRef = [mainMenu itemAtIndex: menuID];
- MenuRef handle = (MenuRef)menuRef;
+ MenuRef handle = (__bridge MenuRef)menuRef;
return handle;
};
@@ -222,7 +222,7 @@
MenuID GetMenuID(MenuRef menu){
NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
- NSMenuItem *menuItem = (NSMenuItem *) menu;
+ NSMenuItem *menuItem = (__bridge NSMenuItem *) menu;
return (MenuID) [mainMenu indexOfItem: menuItem];
};
@@ -273,6 +273,6 @@
MenuItemIndex * outIndex){
NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];
- NSMenuItem *inputMenu = (NSMenuItem *) inMenu;
+ NSMenuItem *inputMenu = (__bridge NSMenuItem *) inMenu;
OSType inputCommandID = inCommandID;
};
\ No newline at end of file
Modified: trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.h
===================================================================
--- trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -89,8 +89,8 @@
@property (nonatomic) AudioStreamBasicDescription* inputFormat;
@property (nonatomic) AudioQueueBufferRef * outputBuffers;
@property (nonatomic) AudioQueueBufferRef * inputBuffers;
- at property (nonatomic,retain) Queue* soundOutQueue;
- at property (nonatomic,retain) Queue* soundInQueue;
+ at property (nonatomic,strong) Queue* soundOutQueue;
+ at property (nonatomic,strong) Queue* soundInQueue;
@end
@interface soundAtom : NSObject {
@@ -98,7 +98,7 @@
usqInt byteCount;
usqInt startOffset;
}
-- (id) initWith: (char*) buffer count: (usqInt) bytes;
+- (instancetype) initWith: (char*) buffer count: (usqInt) bytes;
@property (nonatomic,assign) char * data;
@property (nonatomic,assign) usqInt byteCount;
Modified: trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m
===================================================================
--- trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/SoundPlugin/sqSqueakSoundCoreAudio.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -40,15 +40,14 @@
#define SqueakFrameSize 4 // guaranteed (see class SoundPlayer)
extern struct VirtualMachine* interpreterProxy;
-void MyAudioQueueOutputCallback (void *inUserData,
+void MyAudioQueueOutputCallback (sqSqueakSoundCoreAudio *inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer);
-void MyAudioQueueOutputCallback (void *inUserData,
+void MyAudioQueueOutputCallback (sqSqueakSoundCoreAudio *myInstance,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer) {
- sqSqueakSoundCoreAudio * myInstance = ( sqSqueakSoundCoreAudio *)inUserData;
soundAtom *atom = [myInstance.soundOutQueue returnOldest];
if (!atom) {
@@ -60,7 +59,6 @@
atom = [myInstance.soundOutQueue returnAndRemoveOldest];
inBuffer->mAudioDataByteSize = (int) atom.byteCount;
memcpy(inBuffer->mAudioData,atom.data,atom.byteCount);
- [atom release];
//NSLog(@"%i Fill sound buffer with %i bytesA",ioMSecs(),inBuffer->mAudioDataByteSize);
} else {
inBuffer->mAudioDataByteSize = (int) MIN(atom.byteCount - atom.startOffset,inBuffer->mAudioDataBytesCapacity);
@@ -68,7 +66,6 @@
atom.startOffset = atom.startOffset + inBuffer->mAudioDataByteSize;
if (atom.startOffset == atom.byteCount) {
atom = [myInstance.soundOutQueue returnAndRemoveOldest]; //ignore now it's empty
- [atom release];
}
//NSLog(@"%i Fill sound buffer with %i bytesB",ioMSecs(),inBuffer->mAudioDataByteSize);
}
@@ -87,7 +84,7 @@
{
sqInt isRunning;
UInt32 size = sizeof(isRunning);
- sqSqueakSoundCoreAudio * myInstance = ( sqSqueakSoundCoreAudio *)inUserData;
+ sqSqueakSoundCoreAudio * myInstance = (__bridge sqSqueakSoundCoreAudio *)inUserData;
AudioQueueGetProperty (inAQ, kAudioQueueProperty_IsRunning, &isRunning, &size);
myInstance.outputIsRunning = isRunning;
@@ -111,7 +108,7 @@
UInt32 inNumberPacketDescriptions,
const AudioStreamPacketDescription *inPacketDescs) {
- sqSqueakSoundCoreAudio * myInstance = ( sqSqueakSoundCoreAudio *)inUserData;
+ sqSqueakSoundCoreAudio * myInstance = (__bridge sqSqueakSoundCoreAudio *)inUserData;
if (!myInstance.inputIsRunning)
return;
@@ -119,7 +116,6 @@
if (inNumberPacketDescriptions > 0) {
soundAtom *atom = [[soundAtom alloc] initWith: inBuffer->mAudioData count: inBuffer->mAudioDataByteSize];
[myInstance.soundInQueue addItem: atom];
- [atom release];
}
AudioQueueEnqueueBuffer (inAQ,
@@ -136,7 +132,7 @@
@synthesize byteCount;
@synthesize startOffset;
-- initWith: (char*) buffer count: (usqInt) bytes {
+- (instancetype) initWith: (char*) buffer count: (usqInt) bytes {
data = malloc(bytes);
memcpy(data,buffer,bytes);
byteCount = bytes;
@@ -149,7 +145,6 @@
data = 0;
byteCount = 0;
startOffset = 0;
- [super dealloc];
}
@end
@@ -182,8 +177,8 @@
self.inputFormat = calloc(1,sizeof(AudioStreamBasicDescription));
self.outputBuffers = calloc((unsigned)kNumberOfBuffers,sizeof(AudioQueueBufferRef));
self.inputBuffers = calloc((unsigned) kNumberOfBuffers,sizeof(AudioQueueBufferRef));
- soundOutQueue = [Queue new];
- soundInQueue = [Queue new];
+ soundOutQueue = [[Queue alloc] init];
+ soundInQueue = [[Queue alloc] init];
return 1;
}
@@ -221,14 +216,14 @@
/* we want to create a new audio queue only if we have to */
- if (self.outputAudioQueue == nil || (memcmp(&check,self.outputFormat,sizeof(AudioStreamBasicDescription) != 0))) {
+ if (self.outputAudioQueue == nil || (memcmp(&check,self.outputFormat,(size_t)(sizeof(AudioStreamBasicDescription) != 0)))) {
AudioQueueRef newQueue;
//NSLog(@"%i create new audioqueue",ioMSecs());
if (self.outputAudioQueue)
[self snd_StopAndDispose];
*self.outputFormat = check;
- result = AudioQueueNewOutput (self.outputFormat, &MyAudioQueueOutputCallback,
- (void*) self,
+ result = AudioQueueNewOutput (self.outputFormat, (void*) &MyAudioQueueOutputCallback,
+ (__bridge void*) self,
NULL,
NULL,
0,
@@ -238,7 +233,7 @@
return interpreterProxy->primitiveFail();
self.outputAudioQueue = newQueue;
- AudioQueueAddPropertyListener (self.outputAudioQueue, kAudioQueueProperty_IsRunning, MyAudioQueuePropertyListenerProc, self);
+ AudioQueueAddPropertyListener (self.outputAudioQueue, kAudioQueueProperty_IsRunning, MyAudioQueuePropertyListenerProc, (__bridge void *)(self));
self.bufferSizeForOutput = (unsigned) (SqueakFrameSize * nChannels * frameCount * 2);
int i;
@@ -285,7 +280,7 @@
OSStatus result = AudioQueueDispose (self.outputAudioQueue,true);
#pragma unused(result)
self.outputAudioQueue = nil;
- self.soundOutQueue = [Queue new];
+ self.soundOutQueue = [[Queue alloc] init];
return 1;
}
@@ -314,7 +309,6 @@
soundAtom *atom = [[soundAtom alloc] initWith: arrayIndex+startIndex count: (unsigned) (byteCount-startIndex)];
[self.soundOutQueue addItem: atom];
- [atom release];
if (!self.outputIsRunning) {
int i;
@@ -365,7 +359,7 @@
AudioQueueRef newQueue;
OSStatus result = AudioQueueNewInput (self.inputFormat, &MyAudioQueueInputCallback,
- (void*) self,
+ (__bridge void*) self,
NULL,
NULL,
0,
@@ -401,7 +395,7 @@
return 0;
result = AudioQueueDispose (self.inputAudioQueue,true);
self.inputAudioQueue = nil;
- self.soundInQueue = [Queue new];
+ self.soundInQueue = [[Queue alloc] init];
return 1;
}
@@ -429,7 +423,6 @@
atom = [self.soundInQueue returnAndRemoveOldest];
memcpy(arrayIndex+start,atom.data,atom.byteCount);
count= MIN(atom.byteCount, bufferSizeInBytes - start);
- [atom release];
return count / (SqueakFrameSize / 2) / self.inputChannels;
} else {
count= MIN(atom.byteCount-atom.startOffset, bufferSizeInBytes - start);
@@ -437,7 +430,6 @@
atom.startOffset = atom.startOffset + (count);
if (atom.startOffset == atom.byteCount) {
atom = [self.soundInQueue returnAndRemoveOldest]; //ignore now it's empty
- [atom release];
}
return count / (SqueakFrameSize / 2) / self.inputChannels;
}
Modified: trunk/platforms/iOS/plugins/SqueakObjectiveC/PDColoredProgressView.m
===================================================================
--- trunk/platforms/iOS/plugins/SqueakObjectiveC/PDColoredProgressView.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/SqueakObjectiveC/PDColoredProgressView.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -104,15 +104,10 @@
}
- (void) setTintColor: (UIColor *) aColor {
- [_tintColor release];
- _tintColor = [aColor retain];
+ _tintColor = aColor;
}
-- (void)dealloc {
- [super dealloc];
- [_tintColor release];
-}
@end
Modified: trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.h
===================================================================
--- trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -74,24 +74,24 @@
@interface SqueakProxy : NSObject
{
sqInt sem;
- Protocol* protocol;
- NSInvocation* invocation;
+ Protocol* __unsafe_unretained protocol;
+ NSInvocation* __weak invocation;
NSConditionLock* lockForSqueak;
NSMutableDictionary *sigs;
id target;
sqInt callbackid;
BOOL isCarbonVM;
}
-- (id) initWithSemaphore: (sqInt) squeakSem protocolNSString: (NSString *) nameString target: (id) aTarget;
+- (instancetype) initWithSemaphore: (sqInt) squeakSem protocolNSString: (NSString *) nameString target: (id) aTarget;
- (void) setReturnValue: (void*) pointer;
- (BOOL) isDataTypeAware;
- (void) setIsCarbonVM;
@property (nonatomic,assign) sqInt sem;
- at property (nonatomic,assign) Protocol* protocol;
- at property (nonatomic,assign) NSInvocation* invocation;
- at property (nonatomic,assign) NSConditionLock* lockForSqueak;
- at property (nonatomic,assign) NSMutableDictionary *sigs;
- at property (nonatomic,retain) id target;
+ at property (nonatomic,unsafe_unretained) Protocol* protocol;
+ at property (weak, nonatomic) NSInvocation* invocation;
+ at property (nonatomic) NSConditionLock* lockForSqueak;
+ at property (nonatomic) NSMutableDictionary *sigs;
+ at property (nonatomic,strong) id target;
@property (nonatomic,assign) sqInt callbackid;
@end
Modified: trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m
===================================================================
--- trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/plugins/SqueakObjectiveC/squeakProxy.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -44,8 +44,8 @@
//
#import "squeakProxy.h"
+#include <dlfcn.h>
-
@implementation SqueakProxy
@synthesize sem;
@@ -56,7 +56,7 @@
@synthesize target;
@synthesize callbackid;
-- (id) initWithSemaphore: (sqInt) squeakSem protocolNSString: (NSString *) nameString target: aTarget
+- (instancetype) initWithSemaphore: (sqInt) squeakSem protocolNSString: (NSString *) nameString target: aTarget
{
sem = squeakSem;
if (nameString)
@@ -69,7 +69,6 @@
} else {
NSObject *dummy = [[NSObject alloc] init];
[self setTarget: dummy];
- [dummy release];
}
lockForSqueak = [[NSConditionLock alloc] initWithCondition: 0];
@@ -80,7 +79,7 @@
return self;
}
-#include <dlfcn.h>
+
- (void) forwardInvocation: (NSInvocation*) anInvocation
{
NSDate *timeout;
@@ -88,7 +87,7 @@
// NSLog(@"currentThread: %@", [NSThread currentThread]);
SEL selector = [anInvocation selector];
NSString *selectorString = NSStringFromSelector(selector);
- if (![sigs objectForKey: selectorString]) {
+ if (!sigs[selectorString]) {
[anInvocation invokeWithTarget: target];
return;
}
@@ -97,8 +96,7 @@
{
// NSLog(@"inside lock 0");
[lockForSqueak unlockWithCondition: 1];
- [timeout release];
- invocation = [anInvocation retain];
+ invocation = anInvocation;
// NSLog(@"signalling squeak");
interpreterProxy->signalSemaphoreWithIndex(sem);
@@ -109,16 +107,12 @@
if([lockForSqueak lockWhenCondition: 2 beforeDate: (timeout = [[NSDate alloc] initWithTimeIntervalSinceNow: 5.0])])
{
// NSLog(@"inside lock 2");
- [timeout release];
- [invocation release];
invocation = nil;
[lockForSqueak unlockWithCondition: 0];
}
else
{
// NSLog(@"failed lock 2");
- [timeout release];
- [invocation release];
invocation = nil;
[lockForSqueak unlockWithCondition: 0];
}
@@ -126,7 +120,6 @@
}
else
{
- [timeout release];
//NSLog(@"failed lock 0");
}
}
@@ -145,7 +138,7 @@
NSString *selectorString = NSStringFromSelector (selector);
- if (sigAsString = [sigs objectForKey: selectorString]) {
+ if (sigAsString = sigs[selectorString]) {
if (protocol) {
struct objc_method_description methodDescription;
@@ -176,7 +169,7 @@
NSString *which = NSStringFromSelector(selector);
- if ([sigs objectForKey: which])
+ if (sigs[which])
return true;
return false;
@@ -194,13 +187,6 @@
isCarbonVM = YES;
}
-- (void) dealloc
-{
- [lockForSqueak release];
- [sigs release];
- [target release];
- [super dealloc];
-}
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/Queue.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/Queue.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/Queue.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -52,6 +52,8 @@
*/
+/* Arc version */
+
#import "Queue.h"
@@ -59,7 +61,7 @@
// Initialize a empty mutable array for queue items
// which we can fill
-- (id) init
+- (instancetype) init
{
self = [super init];
{
@@ -78,7 +80,6 @@
anObject = [mItemArray lastObject];
if (anObject)
{
- [anObject retain];
[mItemArray removeLastObject];
}
}
@@ -113,11 +114,5 @@
return mItemArray;
}
-- (void) dealloc
-{
- [mItemArray release];
-
- [super dealloc];
-}
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.h
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -44,15 +44,15 @@
@interface sqSqueakAppDelegate : NSObject {
sqSqueakMainApplication *squeakApplication;
+ NSThread *squeakThread;
}
- at property (nonatomic,retain) sqSqueakMainApplication *squeakApplication;
+ at property (nonatomic,strong) sqSqueakMainApplication *squeakApplication;
+ at property (nonatomic, strong) NSThread *squeakThread;
- (void) makeMainWindowOnMainThread ;
- (void) makeMainWindow;
- (id) createPossibleWindow;
-- (NSTimeInterval) squeakUIFlushPrimaryDeferNMilliseconds;
-- (sqSqueakMainApplication *) makeApplicationInstance;
- (void) workerThreadStart;
- (void) singleThreadStart;
-
+- (NSTimeInterval) squeakUIFlushPrimaryDeferNMilliseconds;
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakAppDelegate.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -42,7 +42,7 @@
#import "sqMacHostWindow.h"
@implementation sqSqueakAppDelegate
- at synthesize squeakApplication;
+ at synthesize squeakApplication,squeakThread;
- (void) makeMainWindow {
@@ -60,7 +60,7 @@
width = ((unsigned) getSavedWindowSize()) >> 16;
height = getSavedWindowSize() & 0xFFFF;
windowBlock = AddWindowBlock();
- windowBlock-> handle = createdWindow;
+ windowBlock->handle = createdWindow;
windowBlock->context = nil;
windowBlock->updateArea = CGRectZero;
width = (usqInt) ioScreenSize() >> 16;
@@ -88,14 +88,14 @@
- (void) workerThreadStart {
// Run the squeak process in a worker thread
- NSThread* myThread = [[NSThread alloc] initWithTarget: self.squeakApplication
+ squeakThread = [[NSThread alloc] initWithTarget: self.squeakApplication
selector: @selector(runSqueak)
object:nil];
#if COGVM
- [myThread setStackSize: [myThread stackSize]*4];
+ [squeakThread setStackSize: [squeakThread stackSize]*4];
#endif
- [myThread start];
+ [squeakThread start];
}
- (void) singleThreadStart {
@@ -106,13 +106,9 @@
target: self.squeakApplication
argument: nil
order: 1
- modes: [NSArray arrayWithObject: NSDefaultRunLoopMode]];
+ modes: @[NSDefaultRunLoopMode]];
}
-- (void)dealloc {
- [squeakApplication release];
- [super dealloc];
-}
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakEventsAPI.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -53,6 +53,11 @@
aioPoll(0);
+ if ([[NSThread currentThread] isCancelled]) {
+ gQuitNowRightNow = YES;
+ return 0;
+ }
+
if ([getMainWindowDelegate() forceUpdateFlush]) {
[getMainWindowDelegate() ioForceDisplayUpdate];
}
@@ -83,4 +88,4 @@
NSLog(@"evt.type %i keyboard pc %i cc %i uc %i m %i",evt->type,((sqKeyboardEvent *)evt)->pressCode,((sqKeyboardEvent *) evt)->charCode,((sqKeyboardEvent *) evt)->utf32Code,((sqKeyboardEvent *) evt)->modifiers);
} */
return 0;
-}
\ No newline at end of file
+}
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -56,13 +56,13 @@
filenameSize is size of file name
fType and fCreator is type and creator codes (4 bytes preallocated)
*/
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
- sqInt status = [gDelegateApp.squeakApplication.fileDirectoryLogic dir_GetMacFileTypeAndCreator: filename
- fileNameSize: filenameSize
- fType: fType
- fCreator: fCreator];
- [pool drain];
+ @autoreleasepool {
+ sqInt status = [gDelegateApp.squeakApplication.fileDirectoryLogic dir_GetMacFileTypeAndCreator: filename
+ fileNameSize: filenameSize
+ fType: fType
+ fCreator: fCreator];
return status;
+ }
}
sqInt dir_SetMacFileTypeAndCreator(char *filename, sqInt filenameSize, char *fType, char *fCreator) {
@@ -71,13 +71,14 @@
filenameSize is size of file name
fType and fCreator is type and creator codes (4 bytes)
*/
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
+ @autoreleasepool {
sqInt status = [gDelegateApp.squeakApplication.fileDirectoryLogic dir_SetMacFileTypeAndCreator: filename
fileNameSize: filenameSize
fType: fType
fCreator: fCreator];
- [pool drain];
+
return status;
+ }
}
sqInt dir_Delimitor(void)
@@ -102,9 +103,8 @@
/*Implementation notes
if pathStringLength = 0 then we use the current working directory
if pathStringLength > 0 then we resolve the pathString and alias */
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
-
- sqInt status =
+ @autoreleasepool {
+ sqInt status =
[gDelegateApp.squeakApplication.fileDirectoryLogic dir_Lookup: pathString
length: pathStringLength
index: index
@@ -114,16 +114,15 @@
modificationDate: modificationDate
isDirectory: isDirectory
sizeIfFile: sizeIfFile];
- [pool drain];
return status;
+ }
}
sqInt dir_EntryLookup(char *pathString, sqInt pathStringLength, char* nameString, sqInt nameStringLength,
/* outputs: */ char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate,
sqInt *isDirectory, squeakFileOffsetType *sizeIfFile)
{
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
-
+ @autoreleasepool {
sqInt status =
[gDelegateApp.squeakApplication.fileDirectoryLogic dir_EntryLookup: pathString
length: pathStringLength
@@ -135,36 +134,34 @@
modificationDate: modificationDate
isDirectory: isDirectory
sizeIfFile: sizeIfFile];
- [pool drain];
return status;
+ }
}
sqInt dir_Create(char *pathString, sqInt pathStringLength){
//API Documented
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
+ @autoreleasepool {
sqInt status = [gDelegateApp.squeakApplication.fileDirectoryLogic
dir_Create: pathString
length: pathStringLength];
- [pool drain];
return status;
+ }
}
sqInt dir_Delete(char *pathString, sqInt pathStringLength){
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
+ @autoreleasepool {
sqInt status = [gDelegateApp.squeakApplication.fileDirectoryLogic
dir_Delete: pathString
length: pathStringLength];
- [pool drain];
return status;
+ }
}
-NSString* createFilePathFromString(char * aFilenameString,
+NSString* createFilePathFromString(char * aFilenameString,
sqInt filenameLength, sqInt resolveAlias) {
-
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
- NSString * filePath = [[[NSString alloc] initWithBytes: aFilenameString length: (NSUInteger) filenameLength encoding: NSUTF8StringEncoding] autorelease];
+ @autoreleasepool {
+ NSString * filePath = [[NSString alloc] initWithBytes: aFilenameString length: (NSUInteger) filenameLength encoding: NSUTF8StringEncoding];
if (!filePath) {
- [pool drain];
return NULL;
}
@@ -175,12 +172,11 @@
NSString *newFilePath = [gDelegateApp.squeakApplication.fileDirectoryLogic resolvedAliasFiles: owningDirectoryPath];
filePath = [newFilePath stringByAppendingPathComponent: [filePath lastPathComponent]];
}
- [filePath retain];
- [pool drain];
return filePath;
+ }
}
-sqInt sqGetFilenameFromString(char * aCharBuffer, char * aFilenameString,
+sqInt sqGetFilenameFromString(char * aCharBuffer, char * aFilenameString,
sqInt filenameLength, sqInt resolveAlias) {
//API Documented
BOOL ok;
@@ -194,7 +190,6 @@
//1000 is coded by callers, really should pass in, but historical issue, this also includes null byte which is accounted for by maxLength
//Obviously this is a problem that lets a caller do a buffer overflow?
- [filePath release];
return 0;
}
@@ -205,4 +200,4 @@
sqInt dir_PathToWorkingDir(char *pathName, sqInt pathNameMax){
//API Documented
return 0;
-}
\ No newline at end of file
+}
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.h
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -80,9 +80,9 @@
fCreator: (char *) fCreator;
- (NSString *) resolvedAliasFiles: (NSString *) filePath;
- at property (nonatomic,retain) NSString* lastPathForDirLookup;
+ at property (nonatomic,strong) NSString* lastPathForDirLookup;
@property (nonatomic,assign) NSInteger lastIndexForDirLookup;
- at property (nonatomic,retain) NSArray * directoryContentsForDirLookup;
+ at property (nonatomic,strong) NSArray * directoryContentsForDirLookup;
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -103,7 +103,7 @@
}
if (pathStringLength > 0)
- directoryPath = [[[NSString alloc] initWithBytes: pathString length: (NSUInteger) pathStringLength encoding: NSUTF8StringEncoding] autorelease];
+ directoryPath = [[NSString alloc] initWithBytes: pathString length: (NSUInteger) pathStringLength encoding: NSUTF8StringEncoding];
if (directoryPath == NULL)
return BAD_PATH;
@@ -135,7 +135,7 @@
if (index < 1 || (NSUInteger) index > [directoryContentsForDirLookup count])
return NO_MORE_ENTRIES;
- filePath = [ directoryContentsForDirLookup objectAtIndex: (NSUInteger) (index-1)];
+ filePath = directoryContentsForDirLookup[(NSUInteger) (index-1)];
filePath = [[ lastPathForDirLookup stringByAppendingString: @"/"] stringByAppendingString: filePath] ;
fileName = [[filePath lastPathComponent] precomposedStringWithCanonicalMapping];
strlcpy(name,[fileName UTF8String],256);
@@ -155,19 +155,20 @@
if (!fileAttributes) {
return ENTRY_FOUND;
}
- fileType = [fileAttributes objectForKey: NSFileType];
+ fileType = fileAttributes[NSFileType];
*isDirectory = [fileType isEqualToString: NSFileTypeDirectory] ? 1 : 0;
} else {
NSDictionary *fileAttributesPossibleAlias = [fileMgr attributesOfItemAtPath: newFilePath error: &error]; // do symbolic link
- fileAttributes = fileAttributesPossibleAlias;
+ if (!fileAttributes)
+ fileAttributes = fileAttributesPossibleAlias;
- fileType = [fileAttributesPossibleAlias objectForKey: NSFileType];
+ fileType = fileAttributesPossibleAlias[NSFileType];
*isDirectory = [fileType isEqualToString: NSFileTypeDirectory] ? 1 : 0;
}
- *creationDate = convertToSqueakTime([fileAttributes objectForKey: NSFileCreationDate ]);
- *modificationDate = convertToSqueakTime([fileAttributes objectForKey: NSFileModificationDate]);
- *sizeIfFile = [[fileAttributes objectForKey: NSFileSize] integerValue];
+ *creationDate = convertToSqueakTime(fileAttributes[NSFileCreationDate]);
+ *modificationDate = convertToSqueakTime(fileAttributes[NSFileModificationDate]);
+ *sizeIfFile = [fileAttributes[NSFileSize] integerValue];
/* POSSIBLE IPHONE BUG CHECK */
if (*creationDate == 0)
@@ -197,7 +198,6 @@
NSError *error;
ok = [fileMgr createDirectoryAtPath: directoryPath withIntermediateDirectories: NO attributes: NULL error: &error];
- [directoryPath release];
return ok;
}
@@ -224,7 +224,6 @@
if (directoryContentsForDirLookupCheck == NULL || ([directoryContentsForDirLookupCheck count])) {
/* We don't recursive delete directory, that is too dangerous, let the squeak programmer do it
which is why if the directory content count is > 0 we abort the delete */
- [directoryPath release];
return 0;
}
@@ -239,8 +238,6 @@
if (lastPathForDirLookup) {
self.lastPathForDirLookup = NULL;
}
-
- [directoryPath release];
return ok;
}
@@ -268,12 +265,11 @@
NSError *error;
NSDictionary * fileAttributes = [fileMgr attributesOfItemAtPath:filePath error:&error];
- [filePath release];
if (!fileAttributes)
return 0;
- NSNumber *typeCode = [fileAttributes objectForKey: NSFileHFSTypeCode];
- NSNumber *creatorCode = [fileAttributes objectForKey: NSFileHFSCreatorCode];
+ NSNumber *typeCode = fileAttributes[NSFileHFSTypeCode];
+ NSNumber *creatorCode = fileAttributes[NSFileHFSCreatorCode];
if (creatorCode == NULL || typeCode == NULL)
return 0;
@@ -302,19 +298,12 @@
return 0;
}
- NSNumber *typeCode,*creatorCode;
- typeCode = [NSNumber numberWithUnsignedLong: CFSwapInt32HostToBig(*((uint32_t *) fType))];
- creatorCode = [NSNumber numberWithUnsignedLong: CFSwapInt32HostToBig(*((uint32_t *) fCreator))];
+ NSNumber *typeCode = [NSNumber numberWithUnsignedLong: CFSwapInt32HostToBig(*((uint32_t *) fType))];
+ NSNumber *creatorCode = [NSNumber numberWithUnsignedLong: CFSwapInt32HostToBig(*((uint32_t *) fCreator))];
- NSMutableDictionary *fileAttributes = [NSMutableDictionary new];
- [fileAttributes setObject: typeCode forKey: NSFileHFSTypeCode];
- [fileAttributes setObject: creatorCode forKey: NSFileHFSCreatorCode];
-
- BOOL ok=[fileMgr setAttributes: fileAttributes ofItemAtPath: filePath
+ BOOL ok=[fileMgr setAttributes: @{ NSFileHFSTypeCode : typeCode, NSFileHFSCreatorCode: creatorCode} ofItemAtPath: filePath
error: NULL];
- [fileAttributes release];
- [filePath release];
return ok;
}
@@ -322,10 +311,4 @@
return filePath;
}
-- (void)dealloc {
- [super dealloc];
- [lastPathForDirLookup release];
- [directoryContentsForDirLookup release];
-}
-
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.h
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -43,7 +43,7 @@
}
- (void) parseInfoPlist;
- at property (nonatomic,retain) NSUserDefaults* defaults;
+ at property (nonatomic,strong) NSUserDefaults* defaults;
@property (nonatomic,assign) BOOL SqueakUseFileMappedMMAP;
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakInfoPlistInterface.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -55,9 +55,9 @@
return;
}
-- (void)dealloc {
- [super dealloc];
- [defaults release];
-}
+//- (void)dealloc {
+// [super dealloc];
+// [defaults release];
+//}
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+attributes.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+attributes.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+attributes.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -60,7 +60,7 @@
if (indexNumber < 0) /* VM argument */ {
if (-indexNumber <= [self.argsArguments count])
- return (char *) [self.argsArguments objectAtIndex: (NSUInteger) (-indexNumber - 1)];
+ return (char *) [(self.argsArguments)[(NSUInteger) (indexNumber - 1)] cStringUsingEncoding: [self currentVMEncoding]];
}
else {
switch (indexNumber) {
@@ -94,7 +94,7 @@
default:
if ((indexNumber - 2) > 0 && ((indexNumber - 2) < [self.argsArguments count]))
- return (char *) [[self.argsArguments objectAtIndex: (NSUInteger) (indexNumber - 2)] cStringUsingEncoding: [self currentVMEncoding]];
+ return (char *) [(self.argsArguments)[(NSUInteger) (indexNumber - 2)] cStringUsingEncoding: [self currentVMEncoding]];
}
}
interpreterProxy->success(false);
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+events.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+events.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+events.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -68,10 +68,9 @@
ioProcessEvents();
id event = [eventQueue returnAndRemoveOldest];
if (event) {
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
- [self processAsOldEventOrComplexEvent: event placeIn: evt];
- [event release];
- [pool drain];
+ @autoreleasepool {
+ [self processAsOldEventOrComplexEvent: event placeIn: evt];
+ }
}
}
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+imageReadWrite.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+imageReadWrite.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+imageReadWrite.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -44,17 +44,16 @@
}
- (BOOL) readImageIntoMemory {
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
+ @autoreleasepool {
const char * characterPathForImage = (const char *) [[NSFileManager defaultManager] fileSystemRepresentationWithPath: [self.imageNameURL path]];
sqImageFile f;
if (!characterPathForImage) {
- [pool drain];
return NO;
}
f = sqImageFileOpen(characterPathForImage, "rb");
readImageFromFileHeapSizeStartingAt(f, sqGetAvailableMemory(), (squeakFileOffsetType) 0); //This is a VM Callback
sqImageFileClose(f);
- [pool drain];
return YES;
+ }
}
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+vmAndImagePath.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+vmAndImagePath.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+vmAndImagePath.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -80,7 +80,7 @@
if (!sqImageName)
return;
- self.imageNameURL = [NSURL fileURLWithPath: [NSString stringWithUTF8String: sqImageName] isDirectory: NO];
+ self.imageNameURL = [NSURL fileURLWithPath: @(sqImageName) isDirectory: NO];
}
- (const char *) getVMPath {
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.h
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -71,19 +71,21 @@
- (void) setupBrowserLogic;
- (void) setupSoundLogic;
- (void) runSqueak;
+- (void) tearDown;
- (void) MenuBarRestore;
- (void) ioExit;
- (void) ioExitWithErrorCode: (int) ec;
- (sqSqueakFileDirectoryInterface *) newFileDirectoryInterfaceInstance;
+- (void) imageNamePut:(const char *) sqImageName;
- at property (nonatomic,retain) NSURL* vmPathStringURL;
- at property (nonatomic,retain) sqSqueakInfoPlistInterface* infoPlistInterfaceLogic;
- at property (nonatomic,retain) sqSqueakSoundCoreAudio* soundInterfaceLogic;
- at property (nonatomic,retain) NSURL* imageNameURL;
+ at property (nonatomic,strong) NSURL* vmPathStringURL;
+ at property (nonatomic,strong) sqSqueakInfoPlistInterface* infoPlistInterfaceLogic;
+ at property (nonatomic,strong) sqSqueakSoundCoreAudio* soundInterfaceLogic;
+ at property (nonatomic,strong) NSURL* imageNameURL;
@property (nonatomic,assign) sqInt inputSemaphoreIndex;
@property (nonatomic,assign) NSStringEncoding currentVMEncoding;
- at property (nonatomic,retain) Queue* eventQueue;
- at property (nonatomic,retain) sqSqueakFileDirectoryInterface * fileDirectoryLogic;
- at property (nonatomic,retain) NSMutableArray* argsArguments;
+ at property (nonatomic,strong) Queue* eventQueue;
+ at property (nonatomic,strong) sqSqueakFileDirectoryInterface * fileDirectoryLogic;
+ at property (nonatomic,strong) NSMutableArray* argsArguments;
@end
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakMainApplication.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -75,7 +75,7 @@
}
- (sqSqueakInfoPlistInterface *) newSqSqueakInfoPlistInterfaceCreation {
- return [sqSqueakInfoPlistInterface new];
+ return [[sqSqueakInfoPlistInterface alloc] init];
}
- (void) fetchPreferences {
@@ -111,23 +111,25 @@
}
- (void) setupEventQueue {
- eventQueue = [Queue new];
+ eventQueue = [[Queue alloc] init];
}
- (void) setupBrowserLogic {
}
- (void) setupSoundLogic {
- soundInterfaceLogic = [sqSqueakSoundCoreAudio new];
+ soundInterfaceLogic = [[sqSqueakSoundCoreAudio alloc] init];
}
- (sqSqueakFileDirectoryInterface *) newFileDirectoryInterfaceInstance {
- return [sqSqueakFileDirectoryInterface new];
+ return [[sqSqueakFileDirectoryInterface alloc] init];
}
- (void) runSqueak {
- NSAutoreleasePool * pool = [NSAutoreleasePool new]; //Needed since this is a worker thread, see comments in NSAutoreleasePool Class Reference about Threads
-
+ @autoreleasepool {
+ extern BOOL gQuitNowRightNow;
+ gQuitNowRightNow=false;
+
[self setupFloat]; //JMM We have code for intel and powerpc float, but arm?
[self setupErrorRecovery];
[self fetchPreferences];
@@ -135,7 +137,6 @@
fileDirectoryLogic = [self newFileDirectoryInterfaceInstance];
[self setVMPathFromApplicationDirectory];
if (![self.fileDirectoryLogic setWorkingDirectory]) {
- [pool drain];
return;
}
@@ -153,12 +154,10 @@
[self findImageViaBundleOrPreferences];
if ([self ImageNameIsEmpty]) {
- [pool drain];
return;
}
if (![self readImageIntoMemory]) {
- [pool drain];
return;
}
@@ -170,10 +169,15 @@
[gDelegateApp makeMainWindow];
interpret();
- [pool drain]; //may not return here, could call exit() via quit image
- [self release];
+ [self tearDown];
+ }
+ [NSThread exit];
}
+- (void) tearDown{
+
+}
+
- (void) MenuBarRestore {
}
@@ -190,14 +194,13 @@
}
- (void)dealloc {
- [infoPlistInterfaceLogic release];
- [soundInterfaceLogic release];
- [vmPathStringURL release];
- [imageNameURL release];
- [fileDirectoryLogic release];
- [eventQueue release];
+// [infoPlistInterfaceLogic release];
+// [soundInterfaceLogic release];
+// [vmPathStringURL release];
+// [imageNameURL release];
+// [fileDirectoryLogic release];
+// [eventQueue release];
sqMacMemoryFree();
- [super dealloc];
}
@end
@@ -229,4 +232,4 @@
/* Squeak epoch is Jan 1, 1901. Unix epoch is Jan 1, 1970: 17 leap years
and 52 non-leap years later than Squeak. */
return unixTime + ((52*365UL + 17*366UL) * 24*60*60UL);
-}
\ No newline at end of file
+}
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAPI.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAPI.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAPI.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -53,7 +53,7 @@
sqSqueakScreenAndWindow *getMainWindowDelegate() {
#ifdef BUILD_FOR_OSX
- return ((NSWindow *) windowHandleFromIndex(1)).delegate;
+ return (windowHandleFromIndex(1)).delegate;
#else
return [gDelegateApp screenAndWindow];
#endif
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.h
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.h 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.h 2015-04-26 23:58:12 UTC (rev 3314)
@@ -66,7 +66,7 @@
- (id) getMainView;
- (void) ioForceDisplayUpdateFlush: (NSTimer*)theTimer;
@property (nonatomic,assign) sqInt windowIndex;
- at property (nonatomic,retain) NSTimer *blip;
+ at property (nonatomic,strong) NSTimer *blip;
@property (nonatomic,assign) NSTimeInterval squeakUIFlushPrimaryDeferNMilliseconds;
@property (nonatomic,assign) NSTimeInterval lastFlushTime;
@property (nonatomic,assign) BOOL forceUpdateFlush;
Modified: trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m
===================================================================
--- trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/Classes/sqSqueakScreenAndWindow.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -40,6 +40,7 @@
#import "sqSqueakScreenAndWindow.h"
#import "sqSqueakMainApplication+screen.h"
#import "sqMacHostWindow.h"
+
#ifdef BUILD_FOR_OSX
#import "SqueakOSXAppDelegate.h"
extern SqueakOSXAppDelegate *gDelegateApp;
@@ -64,7 +65,7 @@
@synthesize windowIndex;
@synthesize blip,squeakUIFlushPrimaryDeferNMilliseconds,forceUpdateFlush,lastFlushTime,displayIsDirty;
-- (id)init {
+- (instancetype)init {
self = [super init];
if (self) {
// Initialization code here.
@@ -112,11 +113,13 @@
lastFlushTime = [NSDate timeIntervalSinceReferenceDate];
self.displayIsDirty = NO;
self.forceUpdateFlush = NO;
- if ([NSThread isMainThread])
+
+ [[self getMainView] preDrawThelayers];
+
+
+ dispatch_async(dispatch_get_main_queue(), ^{
[[self getMainView] drawThelayers];
- else {
- [[self getMainView] performSelectorOnMainThread: @selector(drawThelayers) withObject: nil waitUntilDone: NO];
- }
+ });
}
- (void) ioForceDisplayUpdate {
@@ -200,6 +203,8 @@
}
- (void)dealloc {
- [super dealloc];
+ if (blip) {
+ [blip invalidate];
+ }
}
@end
Modified: trunk/platforms/iOS/vm/Common/aio.c
===================================================================
--- trunk/platforms/iOS/vm/Common/aio.c 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/aio.c 2015-04-26 23:58:12 UTC (rev 3314)
@@ -31,6 +31,7 @@
*/
#include "sqaio.h"
+#include "sqMemoryAccess.h"
#ifdef HAVE_CONFIG_H
@@ -123,8 +124,6 @@
#define _DO_FLAG_TYPE() _DO(AIO_R, rd) _DO(AIO_W, wr) _DO(AIO_X, ex)
-static int one= 1;
-
static aioHandler rdHandler[FD_SETSIZE];
static aioHandler wrHandler[FD_SETSIZE];
static aioHandler exHandler[FD_SETSIZE];
@@ -219,9 +218,9 @@
if (maxFd == 0)
return 0;
#endif
+ extern sqInt ioMSecs(void);
+ ms= (sqInt) ioMSecs();
- ms= (int) ioMSecs();
-
for (;;)
{
struct timeval tv;
Modified: trunk/platforms/iOS/vm/Common/main.m
===================================================================
--- trunk/platforms/iOS/vm/Common/main.m 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/Common/main.m 2015-04-26 23:58:12 UTC (rev 3314)
@@ -48,9 +48,9 @@
int main(int argc, char *argv[]) {
- NSAutoreleasePool * pool = [NSAutoreleasePool new];
- int retVal = UIApplicationMain(argc, argv, nil, nil);
- [pool drain];
- return retVal;
+ @autoreleasepool {
+ int retVal = UIApplicationMain(argc, argv, nil, nil);
+ return retVal;
+ }
}
#endif
\ No newline at end of file
Modified: trunk/platforms/iOS/vm/MainWindow.xib
===================================================================
--- trunk/platforms/iOS/vm/MainWindow.xib 2015-04-22 18:36:16 UTC (rev 3313)
+++ trunk/platforms/iOS/vm/MainWindow.xib 2015-04-26 23:58:12 UTC (rev 3314)
@@ -1,172 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
- <data>
- <int key="IBDocument.SystemTarget">512</int>
- <string key="IBDocument.SystemVersion">12C3006</string>
- <string key="IBDocument.InterfaceBuilderVersion">2840</string>
- <string key="IBDocument.AppKitVersion">1187.34</string>
- <string key="IBDocument.HIToolboxVersion">625.00</string>
- <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
- <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">1926</string>
- </object>
- <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>IBProxyObject</string>
- <string>IBUICustomObject</string>
- <string>IBUIWindow</string>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
- <integer value="1" key="NS.object.0"/>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBProxyObject" id="841351856">
- <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBProxyObject" id="64004946">
- <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUICustomObject" id="664661524">
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- </object>
- <object class="IBUIWindow" id="380026005">
- <reference key="NSNextResponder"/>
- <int key="NSvFlags">1316</int>
- <object class="NSPSMatrix" key="NSFrameMatrix"/>
- <string key="NSFrameSize">{320, 480}</string>
- <reference key="NSSuperview"/>
- <object class="NSColor" key="IBUIBackgroundColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MSAxIDEAA</bytes>
- </object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <bool key="IBUIMultipleTouchEnabled">YES</bool>
- <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
- <bool key="IBUIVisibleAtLaunch">YES</bool>
@@ Diff output truncated at 50000 characters. @@
More information about the Vm-dev
mailing list