Folks,
I am having trouble diagnosing a hard crash. Happens both in 2.7 and 2.8a: BitBlt, after failing due to non-integer parameters, corrects them and proceeds to crash later.
Yes, I know one shouldn't pass non-integral Rectangles, but it just so happened. (I had a Morph override >>extent: and left a stray "super extent: h/2 @ h" in. ;-)
Here's the easiest way to reproduce it:
1.) add a RectangleMorph to a World and open an Inspector on it, 2.) in the Inspector, change its bounds' extent to, say, (100/3) 3.) summon restoreDisplay (BitBlt complains, and recommends to proceed) 4.) proceed from the PreDebugWindow
Repeat steps 3-4 until BitBlt gives up, and you get the error dump. Third time should do it.
I examined BitBlt's self-healing code, and can't find any fault.
Can anyone else shed light on this? Or is this only bad karma on my machines?
Puzzled, Helge
P.S. SqueakDebug.log follows:
29 January 2000 11:54:04 pm Error: Error: Bad BitBlt arg (Fraction?); proceed to convert. GrafPort(Object)>>error: [] in PasteUpMorph>>displayWorldSafely [] in BlockContext>>ifError: Error(Exception)>>handlerAction Error(Exception)>>signal Error(Exception)>>signal: GrafPort(Object)>>error: GrafPort(BitBlt)>>copyBits GrafPort>>copyBits GrafPort>>fillRect:color:offset: FormCanvas>>frameAndFillRectangle:fillColor:borderWidth:borderColor: RectangleMorph(Morph)>>drawErrorOn: RectangleMorph(Morph)>>fullDrawOn: RectangleMorph(BorderedMorph)>>fullDrawOn: [] in PasteUpMorph>>drawInvalidAreasOn: Array(SequenceableCollection)>>do: PasteUpMorph>>drawInvalidAreasOn: PasteUpMorph>>displayWorld [] in PasteUpMorph>>displayWorldSafely BlockContext>>on:do: BlockContext>>ifError: PasteUpMorph>>displayWorldSafely PasteUpMorph>>doOneCycleNow PasteUpMorph>>doOneCycle [] in Project>>spawnNewProcess [] in BlockContext>>newProcess
squeak-dev@lists.squeakfoundation.org