[squeak-dev] Freetype bug on OSX

Stephen Pair stephen at pairhome.net
Sat Apr 12 14:19:30 UTC 2008


I'm hitting a failure in a BitBlt primitive when using GrafPort (part of
Freetype).  The stack details are below.  It seems to happen after typing a
character or two in the code pane of the class browser.  Is this a known
issue?  Is there a simple fix?
- Stephen

12 April 2008 10:15:06 am

VM: Mac OS - a SmalltalkImage
Image: Squeak3.9 [latest update: #7067]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/stephen/Squeak3.9-final-7067
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/stephen/Library/Preferences/Squeak/Internet/My Squeak

GrafPort(Object)>>error:
Receiver: a GrafPort
Arguments and temporary variables:
aString: 'Error: a primitive has failed'
Receiver's instance variables:
destForm: DisplayScreen(1680x1050x32)
sourceForm: Form(11x1x32)
halftoneForm: nil
combinationRule: 41
destX: 797
destY: 434
width: 11
height: 1
sourceX: 0
sourceY: 0
clipX: 517
clipY: 363
clipWidth: 572
clipHeight: 189
colorMap: nil
alpha: nil
fillPattern: Color black
lastFont: FreeTypeFont('Verdana' 'Regular' 10)
lastFontForegroundColor: Color veryDarkGray
lastFontBackgroundColor: Color transparent

[] in WorldState>>displayWorldSafely: {[:err :rcvr |  errCtx := thisContext.
 [errCtx := errCtx sender.  [errCtx no...]}
Arguments and temporary variables:
aWorld: a PasteUpMorph(1622) [world]
err: 'Error: a primitive has failed'
rcvr: a GrafPort
errCtx: TextMorphForShout(TextMorph)>>drawOn:
errMorph: a TextMorphForShout(192)

BlockContext>>valueWithPossibleArgs:
Receiver: [] in WorldState>>displayWorldSafely: {[:err :rcvr |  errCtx :=
thisContext.  [errCtx := e...etc...
Arguments and temporary variables:
anArray: an Array('Error: a primitive has failed' a GrafPort)
Receiver's instance variables:
sender: BlockContext>>valueWithPossibleArgs:
pc: 121
stackp: 0
nargs: 2
startpc: 74
home: WorldState>>displayWorldSafely:

[] in BlockContext>>ifError: {[:ex | errorHandlerBlock
valueWithPossibleArgs: {ex description. ex receiver}]}
Arguments and temporary variables:
errorHandlerBlock: [] in WorldState>>displayWorldSafely: {[:err :rcvr |
 errCtx...etc...
ex: Error: a primitive has failed


--- The full stack ---
GrafPort(Object)>>error:
[] in WorldState>>displayWorldSafely: {[:err :rcvr |  errCtx := thisContext.
 [errCtx := errCtx sender.  [errCtx no...]}
BlockContext>>valueWithPossibleArgs:
[] in BlockContext>>ifError: {[:ex | errorHandlerBlock
valueWithPossibleArgs: {ex description. ex receiver}]}
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BlockContext>>valueWithPossibleArgs:
[] in MethodContext(ContextPart)>>handleSignal: {[(self tempAt: 2)
valueWithPossibleArgs: {exception}]}
BlockContext>>ensure:
MethodContext(ContextPart)>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
GrafPort(Object)>>error:
GrafPort(Object)>>primitiveFailed
GrafPort(BitBlt)>>copyBitsColor:alpha:gammaTable:ungammaTable:
FreeTypeFont>>displayLineGlyphOn:from:to:
FreeTypeFont>>displayUnderlineOn:from:to:
LogicalFont>>displayUnderlineOn:from:to:
MultiDisplayScanner>>displayLine:offset:leftInRun:
MultiNewParagraph>>displayOn:using:at:
FormCanvas>>paragraph:bounds:color:
TextMorphForShout(TextMorph)>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in TextMorphForShout(Morph)>>fullDrawOn: {[(aCanvas isVisible: self
bounds)   ifTrue: [aCanvas drawMorph: self].  self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TextMorphForShout(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in TransformMorph>>drawSubmorphsOn: {[:m | myCanvas fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn: {[:myCanvas | (self angle ~= 0.0
 or: [self scale ~= 1.0])   ifTrue: [FreeT...]}
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn: {[(aCanvas isVisible: self bounds)
  ifTrue: [aCanvas drawMorph: self].  self...]}
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>>roundCornersOf:during:
TransformMorph(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in PluggableShoutMorph(Morph)>>drawSubmorphsOn: {[:m | canvas
fullDrawMorph: m]}
Array(SequenceableCollection)>>reverseDo:
[] in PluggableShoutMorph(Morph)>>drawSubmorphsOn: {[:canvas | submorphs
reverseDo: [:m | canvas fullDrawMorph: m]]}
PluggableShoutMorph(Morph)>>drawSubmorphsOn:
...etc...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080412/619b5b64/attachment.htm


More information about the Squeak-dev mailing list