Ok, I have to ask, is this correct? Er 4 or 8 or does it matter, do we have other '4' values embedded in the interpreter? byteSizeOf: oop | slots | self flag: #Dan. (self isIntegerObject: oop) ifTrue:[^0]. slots := self slotSizeOf: oop. (self isBytesNonInt: oop) ifTrue:[^slots] ifFalse:[^slots * 4]
Also what about byteSize := interpreterProxy byteSizeOf: fontFilePath cPtrAsOop.
where we have, note the (sqInt)(long)
generateCPtrAsOop: aNode on: aStream indent: anInteger
aStream nextPutAll: '((sqInt)(long)('. self emitCExpression: aNode receiver on: aStream. aStream nextPutAll: ') - '; nextPutAll: ObjectMemory baseHeaderSize printString; nextPut: $).
Translates to byteSize = interpreterProxy->byteSizeOf(((sqInt)(long)(fontFilePath) - 4));
which of course is wrong.
See http://bugs.squeak.org/view.php?id=7431
-- =========================================================================== John M. McIntosh johnmci@smalltalkconsulting.com Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================