why is Interpreter->pointX not inline?

John M McIntosh johnmci at smalltalkconsulting.com
Fri Apr 19 06:09:32 UTC 2002


I noticed that
primitivePointX
	| rcvr |
	self inline: false.
	rcvr _ self popStack.
	self assertClassOf: rcvr is: (self splObj: ClassPoint).
	successFlag
		ifTrue: [self push: (self fetchPointer: XIndex ofObject: rcvr)]
		ifFalse: [self unPop: 1]

note the inline: false

the only caller is
bytecodePrimPointX

	successFlag _ true.
	self externalizeIPandSP.
	self primitivePointX.
	self internalizeIPandSP.
	successFlag ifTrue: [^ self fetchNextBytecode "success"].

	messageSelector _ self specialSelector: 30.
	argumentCount _ 0.
	self normalSend

note we externalizeIPAndSP then the callout.

Ah, it's late and I must be missing why we do this? couldn't we just 
inline primitivePointX maybe even forgo the externalizeIPandSP.

Maybe it will be come obvious in the morning?

-- 
--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================



More information about the Squeak-dev mailing list