JDK-4390699 : T2K bus error rasterising font.
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_7
  • CPU: sparc
  • Submitted: 2000-11-19
  • Updated: 2002-10-30
  • Resolved: 2002-10-30
Related Reports
Duplicate :  
Description
On Solaris 7, merlin-beta crashes when rasterising a font loaded through
the Font.createFont API.
This is probably nothing to do with createFont(), its more likely a bug in T2K
that this font happens to trip over.
On NT the problem manifests not as a crash, but drawString just shows the
missing glyph character.
The same program and font works fine on 1.3 so its likely a bug in the hinting
code.
I've attached the test program and the TrueType font which caused the problem.
Here's the Solaris 7 stack dump from dbx.

t@16 (l@8) signal BUS (invalid address alignment) in fnt_PushSomeBytes at line 1135 in file "Fnt.c"
 1135                   CHECK_PUSH( gs, stack, GETBYTE( instr ));
(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx) where             
current thread: t@16
=>[1] fnt_PushSomeBytes(gs = 0xf4500370, count = 11), line 1135 in "Fnt.c"
  [2] fnt_NPUSHB(gs = 0xf4500370), line 1181 in "Fnt.c"
  [3] fnt_InnerExecute(gs = 0xf4500370, ptr = 0x25bed4 "@^L^U^T^Q^H^G^F^E^D^C^B^A", eptr = 0x25bfb5 "Z\xf0\xab"), line 681 in "FntUtilities.c"
  [4] fnt_Execute(elements = 0xf4500484, globalGS = 0x25c5b4, ptr = 0x25bed4 "@^L^U^T^Q^H^G^F^E^D^C^B^A", eptr = 0x25bfb5 "Z\xf0\xab", TraceFunc = (nil), context = 0x25af14, hasStyleCoord = '\0', hasVariantCVT = '\0', hintingACompositGlyph = '\0'), line 831 in "FntUtilities.c"
  [5] RunFontProgram(key = 0xf450063c, traceFunc = (nil)), line 183 in "InterpreterGlue.c"
  [6] CreateGlyphElement(glyphIndex = 36, anOutline = 0x2660b8, t2kGlyph = 0x257dd4, key = 0xf450063c, useHints = '\001'), line 62 in "HintGlyph.c"
  [7] TTScalerHintGlyph(theGlyphT2K = 0x257dd4, aT2KScaler = 0x25c014, scHintPtrVoid = 0xf4500760, applyStyle = 1), line 282 in "HintGlyph.c"
  [8] T2K_RenderGlyphInternal(t = 0x25c014, code = 36, xFracPenDelta = '\0', yFracPenDelta = '\0', greyScaleLevel = '\0', cmd = '\v', hintingComposite = 0), line 1258 in "t2k.c"
  [9] T2K_RenderGlyph(t = 0x25c014, code = 36, xFracPenDelta = '\0', yFracPenDelta = '\0', greyScaleLevel = '\0', cmd = '\v', errCode = 0xf4500918), line 1735 in "t2k.c"
  [10] t2kScalerContext::GenerateMetricsWithImage(this = 0x25a480, glyphID = 36U, glyph = 0x25de40, advance = 0x25de54), line 539 in "t2kScalerContext.cpp"
  [11] hsGGlyphStrike::GetMetricsWithImage(this = 0x25a3e0, index = 36U, glyph = 0xf4500a80, advance = 0xf4500a78, refcheck = 0xf4500a97 ""), line 320 in "hsGGlyphCache.cpp"
  [12] Strike::getMetricsWithImage(this = 0x257e38, glyphCode = 36, glyphRef = STRUCT, advXY = STRUCT, refcheck = 0xf4500a97 ""), line 259 in "Strike.cpp"
  [13] GlyphVector::positionAndGetImages(this = 0x256d38, x = 106.5, y = 125.5), line 763 in "GlyphVector.cpp"
  [14] Java_sun_awt_font_GlyphList_setupStringData(env = 0x255180, gList = 0xf4500c1c, string = 0xf4500c18, font = 0xf4500c14, x = 106.0, y = 125.0, renderMat = 0xf4500c08, isAA = '\0', useFract = '\0'), line 83 in "GlyphList.cpp"

Comments
EVALUATION Sounds like a bug in the font hint code, however the t2k rasterizer should be able to handle this in a graceful manner. parry.kejriwal@eng 2001-07-09 Name: inR10103 Date: 10/29/2002 This problem seems to be duplicate of problem reported in 4755211. This conclusion is based on following observations: - symptoms are the same (bus error) - CORONET.TTF is one of the fonts metioned in 4755211 - this problem is not reproducible on latest builds (it is reproducible with 1.4.2-beta03) (so it likely to be resolved by integrated fix for 4755211) ======================================================================
24-08-2004