Timothy M uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-tty.752.mcz
==================== Summary ====================
Name: VMMaker.oscog-tty.752 Author: tty Time: 2 June 2014, 4:15:47.09 pm UUID: 0de7fb38-1e84-4773-8df5-d79afb9b032a Ancestors: VMMaker.oscog-tty.751
Remove ObjectiveCPlugin from this repository upon learning that it lives at squeaksoruce.com/ObjectiveCBridge2
I am updating the BuildSqueakXYZCmakeImage*.st scripts to retrieve from that repository instead.
=============== Diff against VMMaker.oscog-tty.751 ===============
Item was removed: - SmartSyntaxInterpreterPlugin subclass: #ObjectiveCPlugin - instanceVariableNames: '' - classVariableNames: '' - poolDictionaries: '' - category: 'VMMaker-Plugins'! - - !ObjectiveCPlugin commentStamp: '<historical>' prior: 0! - * Created by John M McIntosh on 9/17/08. - - Some of this code was funded via a grant from the European Smalltalk User Group (ESUG) - Copyright (c) 2008 Corporate Smalltalk Consulting Ltd. All rights reserved. - MIT License - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - The end-user documentation included with the redistribution, if any, must include the following acknowledgment: - "This product includes software developed by Corporate Smalltalk Consulting Ltd (http://www.smalltalkconsulting.com) - and its contributors", in the same place and form as other third-party acknowledgments. - Alternately, this acknowledgment may appear in the software itself, in the same form and location as other - such third-party acknowledgments. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>initialiseModule (in category 'initialize-release') ----- - initialiseModule - "Initialise the module" - - ^ true - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveCallbackLeave: (in category 'system primitives') ----- - primitiveCallbackLeave: aNumber - - self primitive: 'primitiveCallbackLeave' - parameters: #(SmallInteger). - aNumber = 0 ifTrue: [^self]. - interpreterProxy callbackLeave: aNumber.!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetAddressFromEntryPointString: (in category 'system primitives') ----- - primitiveGetAddressFromEntryPointString: aEntryPointName - | entryPointNameLength fn entryPointName | - self primitive: 'primitiveGetAddressFromEntryPointString' - parameters: #(String). - - self var: 'entryPointName' declareC: 'char entryPointName[256]'. - self var: 'fn' declareC: 'void * fn'. - entryPointNameLength := interpreterProxy slotSizeOf: aEntryPointName cPtrAsOop. - entryPointNameLength > 255 ifTrue: [^interpreterProxy positive64BitIntegerFor: 0]. - self str: entryPointName l: aEntryPointName cpy: entryPointNameLength+1. - fn := self dl: -2 sym: entryPointName. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: fn to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetAutoReleasePool (in category 'system primitives') ----- - primitiveGetAutoReleasePool - | pool | - self primitive: 'primitiveGetAutoReleasePool'. - self var: 'pool' declareC: 'NSAutoreleasePool * pool'. - pool := nil. - self cCode: ' NS_DURING'. - self cCode: 'pool = [NSAutoreleasePool new]'. - self cCode: ' NS_HANDLER - pool = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: pool to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetClass: (in category 'system primitives') ----- - primitiveGetClass: aClassOrInstanceOop - | classOrInstanceObject classObject | - self primitive: 'primitiveGetClass' - parameters: #(Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'classObject' declareC: 'Class classObject'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - classObject := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: classOrInstanceObject. - self touch: classObject. - self cCode: ' NS_DURING'. - self cCode: 'classObject = [classOrInstanceObject class]'. - self cCode: ' NS_HANDLER - classObject = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: classObject to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetDescription: (in category 'system primitives') ----- - primitiveGetDescription: aClassOrInstanceOop - | classOrInstanceObject utf8String utf8StringOop nsStringObject | - self primitive: 'primitiveGetDescription' - parameters: #(Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'nsStringObject' declareC: 'NSString* nsStringObject'. - self var: 'utf8String' declareC: 'const char * utf8String'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - utf8String := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsStringObject. - self cCode: ' NS_DURING'. - self cCode: 'nsStringObject = [classOrInstanceObject description]; - utf8String = [nsStringObject UTF8String]'. - self cCode: ' NS_HANDLER - utf8String = nil;'. - self cCode: ' NS_ENDHANDLER'. - utf8String - ifFalse: [interpreterProxy success: false. - ^nil]. - utf8StringOop := self stringFromCString: utf8String. - ^utf8StringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetMethodSignatureForSelector:on: (in category 'system primitives') ----- - primitiveGetMethodSignatureForSelector: aSelectorOop on: aClassOrInstanceOop - | selectorObject classOrInstanceObject messageSignatureObject | - self primitive: 'primitiveGetMethodSignatureForSelector' - parameters: #(Oop Oop). - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'messageSignatureObject' declareC: 'NSMethodSignature * messageSignatureObject'. - - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - messageSignatureObject := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: classOrInstanceObject. - self touch: selectorObject. - self cCode: ' NS_DURING'. - self cCode: 'messageSignatureObject = [classOrInstanceObject methodSignatureForSelector: selectorObject]'. - self cCode: ' NS_HANDLER - messageSignatureObject = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: messageSignatureObject to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetNSStringForString:encoding: (in category 'system primitives') ----- - primitiveGetNSStringForString: aStringOop encoding: anEncoding - | stringLength aStringAsNSString encoding aString | - self primitive: 'primitiveGetNSStringForString' - parameters: #(Oop Oop). - self var: 'aStringAsNSString' declareC: 'NSString* aStringAsNSString'. - self var: 'encoding' declareC: 'NSUInteger encoding'. - self var: 'aString' declareC: 'char* aString'. - encoding := self cCoerce: (interpreterProxy positive64BitValueOf: anEncoding) to: 'NSUInteger'. - aString := interpreterProxy firstIndexableField: aStringOop. - stringLength := interpreterProxy byteSizeOf: aStringOop. - self touch: stringLength. - aStringAsNSString := 0. - self cCode: ' NS_DURING'. - aStringAsNSString := self cCode: '[[NSString alloc] initWithBytes: aString length: stringLength encoding: encoding]'. - self cCode: ' NS_HANDLER - aStringAsNSString = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: aStringAsNSString to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetObjCClassForString: (in category 'system primitives') ----- - primitiveGetObjCClassForString: aClassName - | classNameLength classNameNSString classObject | - self primitive: 'primitiveGetObjCClassForString' - parameters: #(Symbol). - self var: 'classObject' declareC: 'Class classObject'. - self var: 'classNameNSString' declareC: 'NSString* classNameNSString'. - - classNameLength := interpreterProxy slotSizeOf: aClassName cPtrAsOop. - self touch: classNameLength. - classNameNSString := self cCode: '[[NSString alloc] initWithBytes: aClassName length: classNameLength encoding: NSUTF8StringEncoding]'. - self cCode: ' NS_DURING'. - classObject := classNameNSString NSClassFromString. - self cCode: ' NS_HANDLER - classObject = nil;'. - self cCode: ' NS_ENDHANDLER'. - self cCode: '[classNameNSString release]'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: classObject to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetSelectorFromString: (in category 'system primitives') ----- - primitiveGetSelectorFromString: aSelectorName - | selectorLength selectorNSString selectorObject | - self primitive: 'primitiveGetSelectorForString' - parameters: #(Symbol). - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'selectorNSString' declareC: 'NSString * selectorNSString'. - - selectorLength := interpreterProxy slotSizeOf: aSelectorName cPtrAsOop. - self touch: selectorLength. - selectorNSString := self cCode: '[[NSString alloc] initWithBytes: aSelectorName length: selectorLength encoding: NSUTF8StringEncoding]'. - self cCode: ' NS_DURING'. - selectorObject := selectorNSString NSSelectorFromString. - self cCode: ' NS_HANDLER - selectorObject = nil;'. - self cCode: ' NS_ENDHANDLER'. - self cCode: '[selectorNSString release]'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: selectorObject to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveGetSuperClass: (in category 'system primitives') ----- - primitiveGetSuperClass: aClassOrInstanceOop - | classOrInstanceObject classObject | - self primitive: 'primitiveGetSuperClass' - parameters: #(Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'classObject' declareC: 'Class classObject'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - classObject := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: classOrInstanceObject. - self touch: classObject. - self cCode: ' NS_DURING'. - self cCode: 'classObject = [classOrInstanceObject superclass]'. - self cCode: ' NS_HANDLER - classObject = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: classObject to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveIsEqual:to: (in category 'system primitives') ----- - primitiveIsEqual: anOop1 to: anOop2 - | oop1 oop2 result | - self primitive: 'primitiveIsEqual' - parameters: #(Oop Oop). - self var: 'oop1' declareC: 'id oop1'. - self var: 'oop2' declareC: 'id oop2'. - self var: 'result' declareC: 'BOOL result'. - - oop1 := self cCoerce: (interpreterProxy positive64BitValueOf: anOop1) to: 'id'. - oop2 := self cCoerce: (interpreterProxy positive64BitValueOf: anOop2) to: 'id'. - interpreterProxy failed ifTrue: [^nil]. - self touch: oop1. - self touch: oop2. - result := 0. - self cCode: ' NS_DURING'. - self cCode: 'result = [oop1 isEqual: oop2]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^(result = 1) asBooleanObj - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveMethodSignatureGetArgumentType:atIndex: (in category 'system primitives') ----- - primitiveMethodSignatureGetArgumentType: aMethodSignatureOop atIndex: aIndexNumber - | nsMethodSignatureObject string stringOop | - self primitive: 'primitiveMethodSignatureGetArgumentType' - parameters: #(Oop SmallInteger). - self var: 'nsMethodSignatureObject' declareC: 'NSMethodSignature* nsMethodSignatureObject'. - self var: 'string' declareC: 'const char * string'. - - nsMethodSignatureObject := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSMethodSignature *'. - string := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsMethodSignatureObject. - self cCode: ' NS_DURING'. - self cCode: 'string = [nsMethodSignatureObject getArgumentTypeAtIndex: aIndexNumber]'. - self cCode: ' NS_HANDLER - string = nil;'. - self cCode: ' NS_ENDHANDLER'. - string - ifFalse: [interpreterProxy success: false. - ^nil]. - stringOop := self stringFromCString: string. - ^stringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveMethodSignatureGetMethodReturnLength: (in category 'system primitives') ----- - primitiveMethodSignatureGetMethodReturnLength: aMethodSignatureOop - | nsMethodSignatureObject methodReturnLength | - self primitive: 'primitiveMethodSignatureGetMethodReturnLength' - parameters: #(Oop). - self var: 'nsMethodSignatureObject' declareC: 'NSMethodSignature* nsMethodSignatureObject'. - self var: 'methodReturnLength' declareC: 'NSUInteger methodReturnLength'. - - nsMethodSignatureObject := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSMethodSignature *'. - methodReturnLength := 0. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsMethodSignatureObject. - self cCode: ' NS_DURING'. - self cCode: 'methodReturnLength = [nsMethodSignatureObject methodReturnLength]'. - self cCode: ' NS_HANDLER - methodReturnLength = 0xFFFFFFFF'. - self cCode: ' NS_ENDHANDLER'. - methodReturnLength = 16rFFFFFFFF - ifTrue: [interpreterProxy success: false. - ^nil]. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: methodReturnLength to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveMethodSignatureGetNumberOfArguments: (in category 'system primitives') ----- - primitiveMethodSignatureGetNumberOfArguments: aMethodSignatureOop - | nsMethodSignatureObject numberOfArguments | - self primitive: 'primitiveMethodSignatureGetNumberOfArguments' - parameters: #(Oop). - self var: 'nsMethodSignatureObject' declareC: 'NSMethodSignature* nsMethodSignatureObject'. - self var: 'numberOfArguments' declareC: 'NSUInteger numberOfArguments'. - - nsMethodSignatureObject := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSMethodSignature *'. - numberOfArguments := 9999999. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsMethodSignatureObject. - self cCode: ' NS_DURING'. - self cCode: 'numberOfArguments = [nsMethodSignatureObject numberOfArguments]'. - self cCode: ' NS_HANDLER - numberOfArguments = 9999999'. - self cCode: ' NS_ENDHANDLER'. - numberOfArguments = 9999999 - ifTrue: [interpreterProxy success: false. - ^nil]. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: numberOfArguments to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveMethodSignatureGetReturnType: (in category 'system primitives') ----- - primitiveMethodSignatureGetReturnType: aMethodSignatureOop - | nsMethodSignatureObject string stringOop | - self primitive: 'primitiveMethodSignatureGetReturnType' - parameters: #(Oop). - self var: 'nsMethodSignatureObject' declareC: 'NSMethodSignature* nsMethodSignatureObject'. - self var: 'string' declareC: 'const char * string'. - - nsMethodSignatureObject := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSMethodSignature *'. - string := nil. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsMethodSignatureObject. - self cCode: ' NS_DURING'. - self cCode: 'string = [nsMethodSignatureObject methodReturnType]'. - self cCode: ' NS_HANDLER - string = nil;'. - self cCode: ' NS_ENDHANDLER'. - string - ifFalse: [interpreterProxy success: false. - ^nil]. - stringOop := self stringFromCString: string. - ^stringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationCalloc: (in category 'system primitives') ----- - primitiveNSInvocationCalloc: size - | pointer | - self primitive: 'primitiveNSInvocationCalloc' - parameters: #(SmallInteger). - self var: 'pointer' declareC: 'void* pointer'. - self cCode: 'pointer = calloc(size,1)'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: pointer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationFree: (in category 'system primitives') ----- - primitiveNSInvocationFree: pointer - | pointerToFree | - self primitive: 'primitiveNSInvocationFree' - parameters: #(Oop). - self var: 'pointerToFree' declareC: 'void* pointerToFree'. - - pointerToFree := self cCoerce: (interpreterProxy positive64BitValueOf: pointer) to: 'void *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'free((void*)pointerToFree)'. - self touch: pointer. - ^self!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetArgument:buffer:atIndex: (in category 'system primitives') ----- - primitiveNSInvocationGetArgument: aMethodSignatureOop buffer: bufferOop atIndex: index - | nsInvocationInstance buffer | - self primitive: 'primitiveNSInvocationGetArgument' - parameters: #(Oop Oop SmallInteger). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferOop) to: 'void *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance getArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^self!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetCType:signed: (in category 'system primitives') ----- - primitiveNSInvocationGetCType: bufferAddressOop signed: signedBoolean - | buffer newCharacterOop targetOopData | - self primitive: 'primitiveNSInvocationGetCType' - parameters: #(Oop Boolean). - self var: 'buffer' declareC: 'char * buffer'. - self var: 'targetOopData' declareC: 'char targetOopData'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'char *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - newCharacterOop := interpreterProxy - instantiateClass: interpreterProxy classCharacter - indexableSize: 1. - targetOopData := 0. - self touch: targetOopData. - signedBoolean - ifTrue: [self cCode: 'targetOopData = *(char*) buffer'. - interpreterProxy storeInteger: 0 ofObject: newCharacterOop withValue: - (self cCoerce: targetOopData to: 'sqInt').] - ifFalse: [self cCode: 'targetOopData = *(char*) buffer'. - interpreterProxy storeInteger: 0 ofObject: newCharacterOop withValue: - (self cCoerce: targetOopData to: 'usqInt').]. - - ^newCharacterOop!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetCharPointerType: (in category 'system primitives') ----- - primitiveNSInvocationGetCharPointerType: bufferAddressOop - | buffer stringOop bufferPointer | - self primitive: 'primitiveNSInvocationGetCharPointerType' - parameters: #(Oop). - self var: 'bufferPointer' declareC: 'char ** bufferPointer'. - self var: 'buffer' declareC: 'char * buffer'. - - bufferPointer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'char **'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = *bufferPointer'. - stringOop := self stringFromCString: buffer. - ^stringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetClassType: (in category 'system primitives') ----- - primitiveNSInvocationGetClassType: bufferAddressOop - | buffer data | - self primitive: 'primitiveNSInvocationGetClassType' - parameters: #(Oop). - self var: 'buffer' declareC: 'Class * buffer'. - self var: 'data' declareC: 'Class data'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'Class *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: 'data = *buffer'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: data to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetDoubleType: (in category 'system primitives') ----- - primitiveNSInvocationGetDoubleType: bufferAddressOop - | buffer data | - self primitive: 'primitiveNSInvocationGetDoubleType' - parameters: #(Oop). - self var: 'buffer' declareC: 'double * buffer'. - self var: 'data' declareC: 'double data'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'double *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: 'data = *buffer'. - ^interpreterProxy floatObjectOf: data!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetFloatType: (in category 'system primitives') ----- - primitiveNSInvocationGetFloatType: bufferAddressOop - | buffer data | - self primitive: 'primitiveNSInvocationGetFloatType' - parameters: #(Oop). - self var: 'buffer' declareC: 'float * buffer'. - self var: 'data' declareC: 'float data'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'float *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: 'data = *buffer'. - ^interpreterProxy floatObjectOf: data!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetIntType:signed: (in category 'system primitives') ----- - primitiveNSInvocationGetIntType: bufferAddressOop signed: signedBoolean - | buffer data unsignedData | - self primitive: 'primitiveNSInvocationGetIntType' - parameters: #(Oop Boolean). - self var: 'buffer' declareC: 'int * buffer'. - self var: 'data' declareC: 'int data'. - self var: 'unsignedData' declareC: 'unsigned int unsignedData'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'int *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - unsignedData := data := 0. - signedBoolean - ifTrue: [self cCode: 'data = *buffer'. - ^interpreterProxy signed32BitIntegerFor: (self cCoerce: data to: 'sqInt') ] - ifFalse: [self cCode: 'unsignedData = *(unsigned int *)buffer'. - ^interpreterProxy positive32BitIntegerFor: (self cCoerce: unsignedData to: 'usqInt') ]. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetLongLongType:signed: (in category 'system primitives') ----- - primitiveNSInvocationGetLongLongType: bufferAddressOop signed: signedBoolean - | buffer data unsignedData | - self primitive: 'primitiveNSInvocationGetLongLongType' - parameters: #(Oop Boolean). - self var: 'buffer' declareC: 'long long * buffer'. - self var: 'data' declareC: 'long long data'. - self var: 'unsignedData' declareC: 'unsigned long long unsignedData'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'long long *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - unsignedData := data := 0. - signedBoolean - ifTrue: [self cCode: 'data = *buffer'. - ^interpreterProxy signed64BitIntegerFor: (self cCoerce: data to: 'long long') ] - ifFalse: [self cCode: 'unsignedData = * (unsigned long long*) buffer'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: unsignedData to: 'unsigned long long') ]. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetLongType:signed: (in category 'system primitives') ----- - primitiveNSInvocationGetLongType: bufferAddressOop signed: signedBoolean - | buffer data unsignedData | - self primitive: 'primitiveNSInvocationGetLongType' - parameters: #(Oop Boolean). - self var: 'buffer' declareC: 'long * buffer'. - self var: 'data' declareC: 'long data'. - self var: 'unsignedData' declareC: 'unsigned long unsignedData'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'long *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - unsignedData := data := 0. - signedBoolean - ifTrue: [self cCode: 'data = *buffer'. - ^interpreterProxy signed64BitIntegerFor: (self cCoerce: data to: 'sqInt') ] - ifFalse: [self cCode: 'unsignedData = *(unsigned long *) buffer'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: unsignedData to: 'usqInt') ]. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetObjectType: (in category 'system primitives') ----- - primitiveNSInvocationGetObjectType: bufferAddressOop - | buffer data | - self primitive: 'primitiveNSInvocationGetObjectType' - parameters: #(Oop). - self var: 'buffer' declareC: 'id * buffer'. - self var: 'data' declareC: 'id data'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'id *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: 'data = *buffer'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: data to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetReturnValue:on: (in category 'system primitives') ----- - primitiveNSInvocationGetReturnValue: bufferAddressOop on: aNSinvokeOops - | buffer nsInvoke | - self primitive: 'primitiveNSInvocationGetReturnValue' - parameters: #(Oop Oop). - self var: 'buffer' declareC: 'void * buffer'. - self var: 'nsInvoke' declareC: 'NSInvocation *nsInvoke'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'void *'. - nsInvoke := self cCoerce: (interpreterProxy positive64BitValueOf: aNSinvokeOops) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvoke getReturnValue: buffer]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^self!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetSelectorType: (in category 'system primitives') ----- - primitiveNSInvocationGetSelectorType: bufferAddressOop - | buffer data | - self primitive: 'primitiveNSInvocationGetSelectorType' - parameters: #(Oop). - self var: 'buffer' declareC: 'SEL * buffer'. - self var: 'data' declareC: 'SEL data'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'SEL *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - self cCode: 'data = *buffer'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: data to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetShortType:signed: (in category 'system primitives') ----- - primitiveNSInvocationGetShortType: bufferAddressOop signed: signedBoolean - | buffer data unsignedData | - self primitive: 'primitiveNSInvocationGetShortType' - parameters: #(Oop Boolean). - self var: 'buffer' declareC: 'short * buffer'. - self var: 'data' declareC: 'short data'. - self var: 'unsignedData' declareC: 'unsigned short unsignedData'. - - buffer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'short *'. - unsignedData := data := 0. - interpreterProxy failed ifTrue: [^nil]. - self touch: buffer. - signedBoolean - ifTrue: [self cCode: 'data = *buffer'. - ^interpreterProxy signed32BitIntegerFor: (self cCoerce: data to: 'sqInt') ] - ifFalse: [self cCode: 'unsignedData = *(unsigned short *)buffer'. - ^interpreterProxy positive32BitIntegerFor: (self cCoerce: unsignedData to: 'usqInt') ]. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationGetStructureType:length: (in category 'system primitives') ----- - primitiveNSInvocationGetStructureType: bufferAddressOop length: length - | bufferPointer newByteArray | - self primitive: 'primitiveNSInvocationGetStructureType' - parameters: #(Oop SmallInteger). - self var: 'bufferPointer' declareC: 'char ** bufferPointer'. - self var: 'buffer' declareC: 'char * buffer'. - - bufferPointer := self cCoerce: (interpreterProxy positive64BitValueOf: bufferAddressOop) to: 'void *'. - interpreterProxy failed ifTrue: [^nil]. - newByteArray := interpreterProxy - instantiateClass: interpreterProxy classByteArray - indexableSize: length. - self me: (interpreterProxy arrayValueOf: newByteArray) - m: bufferPointer - cpy: length. "void * memcpy(void *restrict s1, const void *restrict s2, size_t n)" - ^newByteArray - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationMalloc: (in category 'system primitives') ----- - primitiveNSInvocationMalloc: size - | pointer | - self primitive: 'primitiveNSInvocationMalloc' - parameters: #(SmallInteger). - self var: 'pointer' declareC: 'void* pointer'. - self cCode: 'pointer = malloc(size)'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: pointer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetCType:signed:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetCType: aMethodSignatureOop signed: signedBoolean index: index value: newCharacterOop - | nsInvocationInstance buffer aValue aUnsignedValue | - self primitive: 'primitiveNSInvocationSetCType' - parameters: #(Oop Boolean SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'buffer' declareC: 'void * buffer'. - self var: 'aValue' declareC: 'char aValue'. - self var: 'aUnsignedValue' declareC: 'unsigned char aUnsignedValue'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - aValue := interpreterProxy fetchInteger: 0 ofObject: newCharacterOop. - aUnsignedValue := interpreterProxy fetchInteger: 0 ofObject: newCharacterOop. - signedBoolean - ifTrue: [self cCode: 'buffer = malloc(sizeof(char)); - *(char*) buffer = (char) aValue'] - ifFalse: [self cCode: 'buffer = malloc(sizeof(unsigned char)); - *(unsigned char*)buffer = (unsigned char) aUnsignedValue']. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetDoubleType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetDoubleType: aMethodSignatureOop index: index value: aValue - | nsInvocationInstance buffer | - self primitive: 'primitiveNSInvocationSetDoubleType' - parameters: #(Oop SmallInteger Float). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'double aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(double)); - *(double*) buffer = (double) aValue'. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetFloatType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetFloatType: aMethodSignatureOop index: index value: aValue - | nsInvocationInstance buffer | - self primitive: 'primitiveNSInvocationSetFloatType' - parameters: #(Oop SmallInteger Float). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'float aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(float)); - *(float*) buffer = (float) aValue'. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetIntType:signed:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetIntType: aMethodSignatureOop signed: signedBoolean index: index value: intValue - | nsInvocationInstance buffer aValue | - self primitive: 'primitiveNSInvocationSetIntType' - parameters: #(Oop Boolean SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'int aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - signedBoolean - ifTrue: [aValue := self cCoerce: (interpreterProxy signed64BitValueOf: intValue) to: 'int'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(int)); - *(int*) buffer = (int) aValue'] - ifFalse: [aValue := self cCoerce: (interpreterProxy positive64BitValueOf: intValue) to: 'unsigned int'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(unsigned int)); - *(unsigned int*)buffer = (unsigned int) aValue']. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetLongLongType:signed:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetLongLongType: aMethodSignatureOop signed: signedBoolean index: index value: intValue - | nsInvocationInstance buffer aValue | - self primitive: 'primitiveNSInvocationSetLongLongType' - parameters: #(Oop Boolean SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'long long aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - signedBoolean - ifTrue: [aValue := self cCoerce: (interpreterProxy signed64BitValueOf: intValue) to: 'long long'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(long long)); - *(long long*) buffer = (long long) aValue'] - ifFalse: [aValue := self cCoerce: (interpreterProxy positive64BitValueOf: intValue) to: 'unsigned long long'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(unsigned long long)); - *(unsigned long long*)buffer = (unsigned long long) aValue']. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetLongType:signed:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetLongType: aMethodSignatureOop signed: signedBoolean index: index value: intValue - | nsInvocationInstance buffer aValue | - self primitive: 'primitiveNSInvocationSetLongType' - parameters: #(Oop Boolean SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'long aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - signedBoolean - ifTrue: [aValue := self cCoerce: (interpreterProxy signed64BitValueOf: intValue) to: 'long'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(long)); - *(long*) buffer = (long) aValue'] - ifFalse: [aValue := self cCoerce: (interpreterProxy positive64BitValueOf: intValue) to: 'unsigned long'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(unsigned long)); - *(unsigned long*)buffer = (unsigned long) aValue']. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetPointerType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetPointerType: aMethodSignatureOop index: index value: pointerValue - | nsInvocationInstance buffer aValue | - self primitive: 'primitiveNSInvocationSetPointerType' - parameters: #(Oop SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'void * aValue'. - self var: 'buffer' declareC: 'void ** buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - aValue := self cCoerce: (interpreterProxy positive64BitValueOf: pointerValue) to: 'char *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(void*)); - *buffer = aValue'. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetRetained: (in category 'system primitives') ----- - primitiveNSInvocationSetRetained: aMethodSignatureOop - | nsInvocationInstance | - self primitive: 'primitiveNSInvocationSetRetained' - parameters: #(Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance retainArguments]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - self cCode: ' NS_ENDHANDLER'. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetSelector:target:on: (in category 'system primitives') ----- - primitiveNSInvocationSetSelector: aSelectorOop target: object1Oops on: aNSinvokeOops - | selectorObject object1 nsInvoke | - self primitive: 'primitiveNSInvocationSetSelector' - parameters: #(Oop Oop Oop). - - self var: 'object1' declareC: 'id object1'. - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'nsInvoke' declareC: 'NSInvocation *nsInvoke'. - - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - object1 := self cCoerce: (interpreterProxy positive64BitValueOf: object1Oops) to: 'id'. - nsInvoke := self cCoerce: (interpreterProxy positive64BitValueOf: aNSinvokeOops) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: ' NS_DURING'. - self cCode: '[nsInvoke setSelector: selectorObject]'. - self cCode: '[nsInvoke setTarget: object1]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^self]. - self cCode: ' NS_ENDHANDLER'. - ^self!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetShortType:signed:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetShortType: aMethodSignatureOop signed: signedBoolean index: index value: intValue - | nsInvocationInstance buffer aValue | - self primitive: 'primitiveNSInvocationSetShortType' - parameters: #(Oop Boolean SmallInteger Oop). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'short aValue'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - signedBoolean - ifTrue: [aValue := self cCoerce: (interpreterProxy signed64BitValueOf: intValue) to: 'short'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(short)); - *(short*) buffer = (short) aValue'] - ifFalse: [aValue := self cCoerce: (interpreterProxy positive64BitValueOf: intValue) to: 'unsigned short'. - interpreterProxy failed ifTrue: [^nil]. - self cCode: 'buffer = malloc(sizeof(unsigned short)); - *(unsigned short*)buffer = (unsigned short) aValue']. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetStringType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetStringType: aMethodSignatureOop index: index value: aValue - | nsInvocationInstance buffer stringSize | - self primitive: 'primitiveNSInvocationSetStringType' - parameters: #(Oop SmallInteger String). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'aValue' declareC: 'char * aValue'. - self var: 'buffer' declareC: 'char * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - stringSize := interpreterProxy slotSizeOf: aValue cPtrAsOop. - self cCode: 'buffer = malloc(stringSize + 1); - memcpy(buffer,aValue,stringSize); - buffer[stringSize] = 0x00'. - self touch: nsInvocationInstance. - self touch: buffer. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: &buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetStructureType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetStructureType: aMethodSignatureOop index: index value: aValue - | nsInvocationInstance buffer byteArraySize | - self primitive: 'primitiveNSInvocationSetStructureType' - parameters: #(Oop SmallInteger ByteArray). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - byteArraySize := interpreterProxy slotSizeOf: aValue cPtrAsOop. - self cCode: 'buffer = malloc(byteArraySize); - memcpy(buffer,aValue,byteArraySize)'. - self touch: nsInvocationInstance. - self touch: buffer. - self touch: byteArraySize. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationSetVoidPointerType:index:value: (in category 'system primitives') ----- - primitiveNSInvocationSetVoidPointerType: aMethodSignatureOop index: index value: aValue - | nsInvocationInstance buffer byteArraySize | - self primitive: 'primitiveNSInvocationSetVoidPointerType' - parameters: #(Oop SmallInteger ByteArray). - self var: 'nsInvocationInstance' declareC: 'NSInvocation* nsInvocationInstance'. - self var: 'buffer' declareC: 'void * buffer'. - - nsInvocationInstance := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSInvocation *'. - interpreterProxy failed ifTrue: [^nil]. - byteArraySize := interpreterProxy slotSizeOf: aValue cPtrAsOop. - self cCode: 'buffer = malloc(byteArraySize); - memcpy(buffer,aValue,byteArraySize)'. - self touch: nsInvocationInstance. - self touch: buffer. - self touch: byteArraySize. - self cCode: ' NS_DURING'. - self cCode: '[nsInvocationInstance setArgument: &buffer atIndex: index]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: buffer to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSInvocationWithMethodSignature: (in category 'system primitives') ----- - primitiveNSInvocationWithMethodSignature: aMethodSignatureOop - | methodSignatureOop nsInvocationOops | - self primitive: 'primitiveNSInvocationWithMethodSignature' - parameters: #(Oop). - self var: 'methodSignatureOop' declareC: 'NSMethodSignature * methodSignatureOop'. - self var: 'nsInvocationOops' declareC: 'NSInvocation* nsInvocationOops'. - - methodSignatureOop := self cCoerce: (interpreterProxy positive64BitValueOf: aMethodSignatureOop) to: 'NSMethodSignature *'. - interpreterProxy failed ifTrue: [^nil]. - nsInvocationOops := 0. - self cCode: ' NS_DURING'. - self cCode: 'nsInvocationOops = [NSInvocation invocationWithMethodSignature: methodSignatureOop]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: nsInvocationOops to: 'usqInt') - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSLog: (in category 'system primitives') ----- - primitiveNSLog: aNSStringOOP - | oop1 | - self primitive: 'primitiveNSLog' - parameters: #(Oop). - self var: 'oop1' declareC: 'id oop1'. - - oop1 := self cCoerce: (interpreterProxy positive64BitValueOf: aNSStringOOP) to: 'id'. - interpreterProxy failed ifTrue: [^nil]. - self touch: oop1. - self NSLog: oop1. - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveNSStringToUTF8: (in category 'system primitives') ----- - primitiveNSStringToUTF8: aNSStringOop - | nsStringObject utf8String utf8StringOop | - self primitive: 'primitiveNSStringToUTF8' - parameters: #(Oop). - self var: 'nsStringObject' declareC: 'NSString* nsStringObject'. - self var: 'utf8String' declareC: 'const char * utf8String'. - - nsStringObject := self cCoerce: (interpreterProxy positive64BitValueOf: aNSStringOop) to: 'NSString *'. - interpreterProxy failed ifTrue: [^nil]. - utf8String := nil. - self touch: nsStringObject. - self cCode: ' NS_DURING'. - self cCode: 'utf8String = [nsStringObject UTF8String]'. - self cCode: ' NS_HANDLER - utf8String = nil;'. - self cCode: ' NS_ENDHANDLER'. - utf8String - ifFalse: [interpreterProxy success: false. - ^nil]. - utf8StringOop := self stringFromCString: utf8String. - ^utf8StringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitivePerformSelector:on: (in category 'system primitives') ----- - primitivePerformSelector: aSelectorOop on: aClassOrInstanceOop - | classOrInstanceObject selectorObject returnValue | - "- (id)performSelector:(SEL)aSelector" - - self primitive: 'primitivePerformSelector' - parameters: #(Oop Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'returnValue' declareC: 'id returnValue'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - interpreterProxy failed ifTrue: [^nil]. - returnValue := nil. - self touch: classOrInstanceObject. - self touch: selectorObject. - self cCode: ' NS_DURING'. - self cCode: 'returnValue = [classOrInstanceObject performSelector: selectorObject]'. - self cCode: ' NS_HANDLER - returnValue = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: returnValue to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitivePerformSelectorOnMainThreadWithWaitTilDone:on:with:returnValue:waitTilDone: (in category 'system primitives') ----- - primitivePerformSelectorOnMainThreadWithWaitTilDone: aSelectorOop on: aClassOrInstanceOop with: anObject1 returnValue: aReturnValueAddress waitTilDone: doneFlag - | classOrInstanceObject selectorObject object1 returnAddress | - "- (id)performSelector:(SEL)aSelector" - - self primitive: 'primitivePerformSelectorOnMainThreadWithWaitTilDone' - parameters: #(Oop Oop Oop Oop Boolean). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'object1' declareC: 'id object1'. - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'returnAddress' declareC: 'void *returnAddress'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - object1 := self cCoerce: (interpreterProxy positive64BitValueOf: anObject1) to: 'id'. - returnAddress := self cCoerce: (interpreterProxy positive64BitValueOf: aReturnValueAddress) to: 'void *'. - interpreterProxy failed ifTrue: [^nil]. - self touch: classOrInstanceObject. - self touch: selectorObject. - self touch: object1. - self touch: returnAddress. - self cCode: ' NS_DURING'. - self cCode: '[classOrInstanceObject performSelectorOnMainThread: selectorObject withObject: object1 waitUntilDone: doneFlag ]'. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - self cCode: ' NS_DURING'. - returnAddress ~= 0 ifTrue: - [self cCode: '[classOrInstanceObject getReturnValue: returnAddress]']. - self cCode: ' NS_HANDLER'. - interpreterProxy success: false. - true ifTrue: [^nil]. - self cCode: ' NS_ENDHANDLER'. - ^self!
Item was removed: - ----- Method: ObjectiveCPlugin>>primitivePerformSelectorWith:on:with: (in category 'system primitives') ----- - primitivePerformSelectorWith: aSelectorOop on: aClassOrInstanceOop with: anObject1 - | classOrInstanceObject selectorObject returnValue object1 | - "- (id)performSelector:(SEL)aSelector" - - self primitive: 'primitivePerformSelectorWith' - parameters: #(Oop Oop Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'object1' declareC: 'id object1'. - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'returnValue' declareC: 'id returnValue'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - object1 := self cCoerce: (interpreterProxy positive64BitValueOf: anObject1) to: 'id'. - interpreterProxy failed ifTrue: [^nil]. - returnValue := nil. - self touch: classOrInstanceObject. - self touch: selectorObject. - self touch: object1. - self cCode: ' NS_DURING'. - self cCode: 'returnValue = [classOrInstanceObject performSelector: selectorObject withObject: object1]'. - self cCode: ' NS_HANDLER - returnValue = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: returnValue to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitivePerformSelectorWithWith:on:with:with: (in category 'system primitives') ----- - primitivePerformSelectorWithWith: aSelectorOop on: aClassOrInstanceOop with: anObject1 with: anObject2 - | classOrInstanceObject selectorObject returnValue object1 object2 | - "- (id)performSelector:(SEL)aSelector" - - self primitive: 'primitivePerformSelectorWithWith' - parameters: #(Oop Oop Oop Oop). - self var: 'classOrInstanceObject' declareC: 'id classOrInstanceObject'. - self var: 'object1' declareC: 'id object1'. - self var: 'object2' declareC: 'id object2'. - self var: 'selectorObject' declareC: 'SEL selectorObject'. - self var: 'returnValue' declareC: 'id returnValue'. - - classOrInstanceObject := self cCoerce: (interpreterProxy positive64BitValueOf: aClassOrInstanceOop) to: 'id'. - selectorObject := self cCoerce: (interpreterProxy positive64BitValueOf: aSelectorOop) to: 'SEL'. - object1 := self cCoerce: (interpreterProxy positive64BitValueOf: anObject1) to: 'id'. - object2 := self cCoerce: (interpreterProxy positive64BitValueOf: anObject2) to: 'id'. - interpreterProxy failed ifTrue: [^nil]. - returnValue := nil. - self touch: classOrInstanceObject. - self touch: selectorObject. - self touch: object1. - self touch: object2. - self cCode: ' NS_DURING'. - self cCode: 'returnValue = [classOrInstanceObject performSelector: selectorObject withObject: object1 withObject: object2 ]'. - self cCode: ' NS_HANDLER - returnValue = nil;'. - self cCode: ' NS_ENDHANDLER'. - ^interpreterProxy positive64BitIntegerFor: (self cCoerce: returnValue to: 'usqInt') !
Item was removed: - ----- Method: ObjectiveCPlugin>>primitiveSELGetName: (in category 'system primitives') ----- - primitiveSELGetName: aSEL - | stringOop bufferPointer | - self primitive: 'primitiveSELGetName' - parameters: #(Oop). - self var: 'bufferPointer' declareC: 'SEL bufferPointer'. - self cCode: '#define selgetName sel_getName - '. - bufferPointer := self cCoerce: (interpreterProxy positive64BitValueOf: aSEL) to: 'SEL'. - interpreterProxy failed ifTrue: [^nil]. - stringOop := self stringFromCString: (self selgetName: bufferPointer). - ^stringOop - !
Item was removed: - ----- Method: ObjectiveCPlugin>>shutdownModule (in category 'initialize-release') ----- - shutdownModule - ^true!
Item was removed: - ----- Method: ObjectiveCPlugin>>stringFromCString: (in category 'system primitives') ----- - stringFromCString: aCString - "Answer a new String copied from a null-terminated C string. - Caution: This may invoke the garbage collector." - - | len newString | - self var: 'aCString' type: 'const char *'. - len := self cCoerce: (self strlen: aCString) to: 'sqInt'. - newString := interpreterProxy - instantiateClass: interpreterProxy classString - indexableSize: len. - self st: (interpreterProxy arrayValueOf: newString) - rn: aCString - cpy: len. "(char *)strncpy()" - ^ newString - - !
vm-dev@lists.squeakfoundation.org