Closed Bug 207773 Opened 21 years ago Closed 21 years ago

Xft build crashes on specific url with Code2000/Code2001 installed [@ XftCharIndex]

Categories

(Core Graveyard :: GFX, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 183729

People

(Reporter: Biesinger, Assigned: blizzard)

References

()

Details

(Keywords: crash)

Crash Data

If Code2000 or Code2001 is installed (from http://home.att.net/~jameskass/) my
Xft (both gtk1 and gtk2) build crashes when I load the above url.

This is due to GetXftFont returning NULL, called from nsFontXft::GetWidth32.

Here's the stack:
#0  0x41df6620 in XftCharIndex () from /usr/X11R6/lib/libXft.so.2
#1  0x41df87be in XftTextExtents32 () from /usr/X11R6/lib/libXft.so.2
#2  0x41db0ac6 in nsFontXft::GetWidth32(unsigned) (this=0x8794ff0, aString=8353)
    at ../../../../gfx/src/gtk/nsFontMetricsXft.cpp:1628
#3  0x41dafd53 in nsFontMetricsXft::TextDimensionsCallback(unsigned, nsFontXft*,
void*) (this=0x8798a38, aChar=8353,
    aFont=0x8794ff0, aData=0xbfffbb68) at
../../../../gfx/src/gtk/nsFontMetricsXft.cpp:1334
#4  0x41db1840 in StaticTextDimensionsCallback (aChar=8353, aFont=0x8794ff0,
aData=0xbfffbb68)
    at ../../../../gfx/src/gtk/nsFontMetricsXft.cpp:2098
#5  0x41daf667 in nsFontMetricsXft::EnumerateGlyphs(unsigned*, unsigned, void
(*)(unsigned, nsFontXft*, void*), void*) (
    this=0x8798a38, aChars=0x41dd9060, aLen=75, aCallback=0x41db1814
<StaticTextDimensionsCallback>,
    aCallbackData=0xbfffbb68) at ../../../../gfx/src/gtk/nsFontMetricsXft.cpp:1205
#6  0x41dad7ee in nsFontMetricsXft::GetTextDimensions(unsigned short const*,
unsigned, nsTextDimensions&, int*, nsRenderingContextGTK*) (this=0x8798a38,
aString=0xbfffbfb8, aLength=75, aDimensions=@0xbfffbe70, aFontID=0x0,
aContext=0x87cb970)
    at ../../../../gfx/src/gtk/nsFontMetricsXft.cpp:444
#7  0x41d8030f in nsRenderingContextGTK::GetTextDimensions(unsigned short
const*, unsigned, nsTextDimensions&, int*) (
    this=0x87cb970, aString=0xbfffbfb8, aLength=75, aDimensions=@0xbfffbe70,
aFontID=0x0)
    at ../../../../gfx/src/gtk/nsRenderingContextGTK.cpp:1266
#8  0x41134e39 in nsTextFrame::MeasureText(nsIPresContext*, nsHTMLReflowState
const&, nsTextTransformer&, nsILineBreaker*, nsTextFrame::TextStyle&,
nsTextFrame::TextReflowData&) (this=0x87c0b10, aPresContext=0x8717980,
aReflowState=@0xbfffc2f0,
    aTx=@0xbfffbf90, aLb=0x87c15f8, aTs=@0xbfffc130, aTextData=@0xbfffbf50)
    at ../../../../../layout/html/base/src/nsTextFrame.cpp:4909
#9  0x41135ee4 in nsTextFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87c0b10, aPresContext=0x8717980, aMetrics=@0xbfffc2b0,
aReflowState=@0xbfffc2f0, aStatus=@0xbfffcc80)
    at ../../../../../layout/html/base/src/nsTextFrame.cpp:5459
#10 0x410dfce6 in nsLineLayout::ReflowFrame(nsIFrame*, unsigned&,
nsHTMLReflowMetrics*, int&) (this=0xbfffcd80,
    aFrame=0x87c0b10, aReflowStatus=@0xbfffcc80, aMetrics=0x0,
aPushedFrame=@0xbfffc484)
    at ../../../../../layout/html/base/src/nsLineLayout.cpp:1031
#11 0x410d9487 in nsInlineFrame::ReflowInlineFrame(nsIPresContext*,
nsHTMLReflowState const&, nsInlineFrame::InlineReflowState&, nsIFrame*,
unsigned&) (this=0x87c0aac, aPresContext=0x8717980, aReflowState=@0xbfffc6d0,
irs=@0xbfffc560,
    aFrame=0x87c0b10, aStatus=@0xbfffcc80) at
../../../../../layout/html/base/src/nsInlineFrame.cpp:731
#12 0x410d8f1e in nsInlineFrame::ReflowFrames(nsIPresContext*, nsHTMLReflowState
const&, nsInlineFrame::InlineReflowState&, nsHTMLReflowMetrics&, unsigned&)
(this=0x87c0aac, aPresContext=0x8717980, aReflowState=@0xbfffc6d0, irs=@0xbfffc560,
    aMetrics=@0xbfffc690, aStatus=@0xbfffcc80) at
../../../../../layout/html/base/src/nsInlineFrame.cpp:545
#13 0x410d8c64 in nsInlineFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87c0aac, aPresContext=0x8717980, aMetrics=@0xbfffc690,
aReflowState=@0xbfffc6d0, aStatus=@0xbfffcc80)
    at ../../../../../layout/html/base/src/nsInlineFrame.cpp:454
#14 0x410dfce6 in nsLineLayout::ReflowFrame(nsIFrame*, unsigned&,
nsHTMLReflowMetrics*, int&) (this=0xbfffcd80,
---Type <return> to continue, or q <return> to quit---
    aFrame=0x87c0aac, aReflowStatus=@0xbfffcc80, aMetrics=0x0,
aPushedFrame=@0xbfffc864)
    at ../../../../../layout/html/base/src/nsLineLayout.cpp:1031
#15 0x410d9487 in nsInlineFrame::ReflowInlineFrame(nsIPresContext*,
nsHTMLReflowState const&, nsInlineFrame::InlineReflowState&, nsIFrame*,
unsigned&) (this=0x87c0a28, aPresContext=0x8717980, aReflowState=@0xbfffcab0,
irs=@0xbfffc940,
    aFrame=0x87c0aac, aStatus=@0xbfffcc80) at
../../../../../layout/html/base/src/nsInlineFrame.cpp:731
#16 0x410d8f1e in nsInlineFrame::ReflowFrames(nsIPresContext*, nsHTMLReflowState
const&, nsInlineFrame::InlineReflowState&, nsHTMLReflowMetrics&, unsigned&)
(this=0x87c0a28, aPresContext=0x8717980, aReflowState=@0xbfffcab0, irs=@0xbfffc940,
    aMetrics=@0xbfffca70, aStatus=@0xbfffcc80) at
../../../../../layout/html/base/src/nsInlineFrame.cpp:545
#17 0x410d8c64 in nsInlineFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87c0a28, aPresContext=0x8717980, aMetrics=@0xbfffca70,
aReflowState=@0xbfffcab0, aStatus=@0xbfffcc80)
    at ../../../../../layout/html/base/src/nsInlineFrame.cpp:454
#18 0x410dfce6 in nsLineLayout::ReflowFrame(nsIFrame*, unsigned&,
nsHTMLReflowMetrics*, int&) (this=0xbfffcd80,
    aFrame=0x87c0a28, aReflowStatus=@0xbfffcc80, aMetrics=0x0,
aPushedFrame=@0xbfffcc7c)
    at ../../../../../layout/html/base/src/nsLineLayout.cpp:1031
#19 0x41081b7d in nsBlockFrame::ReflowInlineFrame(nsBlockReflowState&,
nsLineLayout&, nsLineList_iterator, nsIFrame*, unsigned char*) (this=0x87c0424,
aState=@0xbfffd690, aLineLayout=@0xbfffcd80, aLine=
      {mCurrent = 0x87ef748, mListLink = 0x87c0460}, aFrame=0x87c0a28,
aLineReflowStatus=0xbfffccff "")
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:3747
#20 0x41081791 in nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState&,
nsLineLayout&, nsLineList_iterator, int*, unsigned char*, int, int)
(this=0x87c0424, aState=@0xbfffd690, aLineLayout=@0xbfffcd80, aLine=
      {mCurrent = 0x87ef748, mListLink = 0x87c0460},
aKeepReflowGoing=0xbfffd428, aLineReflowStatus=0xbfffd21f "\002",
    aUpdateMaximumWidth=0, aDamageDirtyArea=1) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:3614
#21 0x41081461 in nsBlockFrame::DoReflowInlineFramesAuto(nsBlockReflowState&,
nsLineList_iterator, int*, unsigned char*, int, int) (this=0x87c0424,
aState=@0xbfffd690, aLine={mCurrent = 0x87ef748, mListLink = 0x87c0460},
    aKeepReflowGoing=0xbfffd428, aLineReflowStatus=0xbfffd21f "\002",
aUpdateMaximumWidth=0, aDamageDirtyArea=1)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:3515
#22 0x4108123f in nsBlockFrame::ReflowInlineFrames(nsBlockReflowState&,
nsLineList_iterator, int*, int, int) (
    this=0x87c0424, aState=@0xbfffd690, aLine={mCurrent = 0x87ef748, mListLink =
0x87c0460}, aKeepReflowGoing=0xbfffd428,
    aDamageDirtyArea=1, aUpdateMaximumWidth=0) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:3459
#23 0x4107f377 in nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineList_iterator, int*, int) (this=0x87c0424,
    aState=@0xbfffd690, aLine={mCurrent = 0x87ef748, mListLink = 0x87c0460},
aKeepReflowGoing=0xbfffd428,
    aDamageDirtyArea=1) at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2567
#24 0x4107e406 in nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)
(this=0x87c0424, aState=@0xbfffd690)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2213
#25 0x4107b1fe in nsBlockFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87c0424, aPresContext=0x8717980, aMetrics=@0xbfffdbb4,
aReflowState=@0xbfffdaa0, aStatus=@0xbfffda6c)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:853
#26 0x4108cfa3 in nsBlockReflowContext::ReflowBlock(nsRect const&, int,
nsCollapsingMargin&, int, nsMargin&, nsHTMLReflowState&, unsigned&)
(this=0xbfffdb70, aSpace=@0xbfffda80, aApplyTopMargin=1,
aPrevBottomMargin=@0xbfffe0e4,
    aIsAdjacentWithTop=1, aComputedOffsets=@0xbfffda90, aFrameRS=@0xbfffdaa0,
aFrameReflowStatus=@0xbfffda6c)
    at ../../../../../layout/html/base/src/nsBlockReflowContext.cpp:543
#27 0x41080a08 in nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineList_iterator, int*) (this=0x87c0218,
    aState=@0xbfffe080, aLine={mCurrent = 0x87c04f8, mListLink = 0x87c0254},
aKeepReflowGoing=0xbfffde18)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:3224
#28 0x4107ede0 in nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineList_iterator, int*, int) (this=0x87c0218,
    aState=@0xbfffe080, aLine={mCurrent = 0x87c04f8, mListLink = 0x87c0254},
aKeepReflowGoing=0xbfffde18,
    aDamageDirtyArea=1) at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2431
#29 0x4107e406 in nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)
(this=0x87c0218, aState=@0xbfffe080)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2213
#30 0x4107b1fe in nsBlockFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87c0218, aPresContext=0x8717980, aMetrics=@0xbfffe430,
aReflowState=@0xbfffe370, aStatus=@0xbfffe6a4)
    at ../../../../../layout/html/base/src/nsBlockFrame.cpp:853
#31 0x41098373 in nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*,
nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned, unsigned&)
(this=0x87b19f0, aKidFrame=0x87c0218, aPresContext=0x8717980,
aDesiredSize=@0xbfffe430,
    aReflowState=@0xbfffe370, aX=0, aY=0, aFlags=0, aStatus=@0xbfffe6a4)
    at ../../../../../layout/html/base/src/nsContainerFrame.cpp:945
#32 0x410c0213 in CanvasFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87b19f0, aPresContext=0x8717980, aDesiredSize=@0xbfffe660,
aReflowState=@0xbfffe510, aStatus=@0xbfffe6a4)
    at ../../../../../layout/html/base/src/nsHTMLFrame.cpp:585
#33 0x41202dba in nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState&,
nsIPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned&, int,
int, int, int, int) (this=0x87c0188, aState=@0xbfffeb30, aPresContext=0x8717980,
    aDesiredSize=@0xbfffe660, aReflowState=@0xbfffec70, aStatus=@0xbfffe6a4,
aX=0, aY=0, aWidth=15150, aHeight=8520,
    aMoveFrame=1) at ../../../../../layout/xul/base/src/nsBoxToBlockAdaptor.cpp:899
#34 0x412027ec in nsBoxToBlockAdaptor::DoLayout(nsBoxLayoutState&)
(this=0x87c0188, aState=@0xbfffeb30)
    at ../../../../../layout/xul/base/src/nsBoxToBlockAdaptor.cpp:644
#35 0x411f752d in nsBox::Layout(nsBoxLayoutState&) (this=0x87c0188,
aState=@0xbfffeb30)
    at ../../../../../layout/xul/base/src/nsBox.cpp:1048
#36 0x411f1e59 in nsScrollBoxFrame::DoLayout(nsBoxLayoutState&) (this=0x87b1dfc,
aState=@0xbfffeb30)
    at ../../../../../layout/xul/base/src/nsScrollBoxFrame.cpp:354
#37 0x411f752d in nsBox::Layout(nsBoxLayoutState&) (this=0x87b1e34,
aState=@0xbfffeb30)
    at ../../../../../layout/xul/base/src/nsBox.cpp:1048
#38 0x41205103 in nsContainerBox::LayoutChildAt(nsBoxLayoutState&, nsIBox*,
nsRect const&) (aState=@0xbfffeb30,
    aBox=0x87b1e34, aRect=@0xbfffe9e0) at
../../../../../layout/xul/base/src/nsContainerBox.cpp:650
#39 0x410b9bc8 in nsGfxScrollFrameInner::LayoutBox(nsBoxLayoutState&, nsIBox*,
nsRect const&) (this=0x87b4fd8,
    aState=@0xbfffeb30, aBox=0x87b1e34, aRect=@0xbfffe9e0) at
../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1216
#40 0x410b9f04 in nsGfxScrollFrameInner::Layout(nsBoxLayoutState&)
(this=0x87b4fd8, aState=@0xbfffeb30)
    at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1363
#41 0x410b9c17 in nsGfxScrollFrame::DoLayout(nsBoxLayoutState&) (this=0x87b1ce0,
aState=@0xbfffeb30)
    at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1224
#42 0x411f752d in nsBox::Layout(nsBoxLayoutState&) (this=0x87b1d18,
aState=@0xbfffeb30)
    at ../../../../../layout/xul/base/src/nsBox.cpp:1048
#43 0x411fbef9 in nsBoxFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87b1ce0, aPresContext=0x8717980, aDesiredSize=@0xbfffed40,
aReflowState=@0xbfffec70, aStatus=@0xbfffedfc)
    at ../../../../../layout/xul/base/src/nsBoxFrame.cpp:891
#44 0x410b8bcb in nsGfxScrollFrame::Reflow(nsIPresContext*,
nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned&) (
    this=0x87b1ce0, aPresContext=0x8717980, aDesiredSize=@0xbfffed40,
aReflowState=@0xbfffec70, aStatus=@0xbfffedfc)
    at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:847
#45 0x41098373 in nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*,
nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned, unsigned&)
(this=0x87b18e4, aKidFrame=0x87b1ce0, aPresContext=0x8717980,
aDesiredSize=@0xbfffed40,
    aReflowState=@0xbfffec70, aX=0, aY=0, aFlags=0, aStatus=@0xbfffedfc)
    at ../../../../../layout/html/base/src/nsContainerFrame.cpp:945
#46 0x4113d7a8 in ViewportFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&,
nsHTMLReflowState const&, unsigned&) (
    this=0x87b18e4, aPresContext=0x8717980, aDesiredSize=@0xbfffefb0,
aReflowState=@0xbfffee00, aStatus=@0xbfffedfc)
    at ../../../../../layout/html/base/src/nsViewportFrame.cpp:261
#47 0x411020a0 in IncrementalReflow::Dispatch(nsIPresContext*,
nsHTMLReflowMetrics&, nsSize const&, nsIRenderingContext&) (
    this=0xbfffef50, aPresContext=0x8717980, aDesiredSize=@0xbfffefb0,
aMaxSize=@0xbfffef90, aRendContext=@0x87cb970)
    at ../../../../../layout/html/base/src/nsPresShell.cpp:910
#48 0x411154bd in PresShell::ProcessReflowCommands(int) (this=0x8769398,
aInterruptible=1)
    at ../../../../../layout/html/base/src/nsPresShell.cpp:6672
#49 0x411215f0 in ReflowEvent::HandleEvent() (this=0x87dc678) at
../../../../../layout/html/base/src/nsPresShell.cpp:6518
#50 0x41114e4a in HandlePLEvent (aEvent=0x87dc678) at
../../../../../layout/html/base/src/nsPresShell.cpp:6534
#51 0x408bfc68 in PL_HandleEvent (self=0x87dc678) at
../../../xpcom/threads/plevent.c:671
#52 0x408c03ae in PL_ProcessEventsBeforeID (aSelf=0x81310a0, aID=1269) at
../../../xpcom/threads/plevent.c:1688
#53 0x4197a3bb in processQueue(void*, void*) (aElement=0x81310a0, aData=0x4f5)
    at ../../../../widget/src/gtk/nsAppShell.cpp:443
#54 0x40875038 in nsVoidArray::EnumerateForwards(int (*)(void*, void*), void*)
(this=0x818a198,
    aFunc=0x4197a38e <processQueue(void*, void*)>, aData=0x4f5) at
../../../xpcom/ds/nsVoidArray.cpp:648
#55 0x4197a3fc in nsAppShell::ProcessBeforeID(unsigned long) (aID=1269) at
../../../../widget/src/gtk/nsAppShell.cpp:451
#56 0x41989a7a in handle_gdk_event(_GdkEvent*, void*) (event=0x824af40, data=0x0)
    at ../../../../widget/src/gtk/nsGtkEventHandler.cpp:904
#57 0x402b04d7 in gdk_wm_protocols_filter () from /usr/lib/libgdk-1.2.so.0
#58 0x402df03d in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#59 0x402df4f4 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#60 0x402df724 in g_main_run () from /usr/lib/libglib-1.2.so.0
#61 0x402007f7 in gtk_main () from /usr/lib/libgtk-1.2.so.0
#62 0x4197a086 in nsAppShell::Run() (this=0x818a7b0) at
../../../../widget/src/gtk/nsAppShell.cpp:328
#63 0x41924ab7 in nsAppShellService::Run() (this=0x8192c60) at
../../../../xpfe/appshell/src/nsAppShellService.cpp:478
#64 0x08067189 in main1 (argc=5, argv=0xbffff5b4, nativeApp=0x8102d88) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1268
#65 0x08067cf8 in main (argc=5, argv=0xbffff5b4) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1647

(gdb) up
#1  0x41df87be in XftTextExtents32 () from /usr/X11R6/lib/libXft.so.2
(gdb)
#2  0x41db0ac6 in nsFontXft::GetWidth32(unsigned) (this=0x8794ff0, aString=8353)
    at ../../../../gfx/src/gtk/nsFontMetricsXft.cpp:1628
1628        XftTextExtents32(GDK_DISPLAY(), mXftFont, &aString, 1, &glyphInfo);
(gdb) print mXftFont
$4 = (XftFont *) 0x0
Summary: Xft build crashes on specific url with Code2000/Code2001 installed [@ XftCharIndex] → Xft build crashes on specific url with Code2000/Code2001 installed [@ XftCharIndex]
This is probably a dup of bug 183729.
Blocks: xft_tracking
oh _damn_, you are right. I did notice that bug while searching if this was
filed, but it didn't occur to me to check world-readability. so sorry for
wasting your time.

marking as duplicate.

*** This bug has been marked as a duplicate of 183729 ***
No longer blocks: xft_tracking
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
Product: Core → Core Graveyard
Crash Signature: [@ XftCharIndex]
You need to log in before you can comment on or make changes to this bug.