[Vm-dev] byteSizeOf bug?

John M McIntosh johnmci at smalltalkconsulting.com
Wed Jan 13 08:58:22 UTC 2010


I noted in the current VMMaker  dtl 12/20/2009 21:19 that 

byteSizeOf: oop
	| slots |
self flag: #Dan.
	(self isIntegerObject: oop) ifTrue:[^0].
	slots := self slotSizeOf: oop.
	(self isBytesNonInt: oop)
		ifTrue:[^slots]
		ifFalse:[^slots * 4]

changed to 

byteSizeOf: oop
	| slots |
self flag: #Dan.
	(self isIntegerObject: oop) ifTrue:[^0].
	slots := self slotSizeOf: oop.
	(self isBytesNonInt: oop)
		ifTrue:[^slots]
		ifFalse:[^slots * self bytesPerWord]

So I was trying to build a 64bit VM this evening and it would die in  loadBitBltFromWarping
where it check to see if the destination bit form has a byteSizeOf() that is equal to pitch * height
this causes a prim failure before any drawing can occur. 

In the past if the form was 1,521,520 bytes this altered call returns 3,043,040.

I assume this is a bug since with the previous code I could build runnable 64bit VMs...?

Or then again is the bitBitPlugin wrong in it's assumption of slot size? 
--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================






More information about the Vm-dev mailing list