Closed Bug 377918 Opened 18 years ago Closed 18 years ago

Crash [@ gfxContext::CurrentSurface] with tab character (new textframe)

Categories

(Core :: Graphics, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: smontagu, Assigned: smontagu)

References

()

Details

(Keywords: crash, testcase)

Crash Data

Attachments

(2 files)

Top of stack: thebes.dll!gfxContext::CurrentSurface(double * dx=0x00000000, double * dy=0x00000000) Line 78 + 0x3 bytes thebes.dll!gfxContext::CurrentSurface() Line 91 + 0x10 bytes thebes.dll!SetupContextFont(gfxContext * aContext=0x00000000, gfxWindowsFont * aFont=0x034ac890) Line 635 + 0xc bytes thebes.dll!gfxWindowsFontGroup::InitTextRunGDI(gfxContext * aContext=0x00000000, gfxTextRun * aRun=0x034acf40, const char * aString=0x01f7dc37, unsigned int aLength=0x00000001) Line 723 + 0x10 bytes thebes.dll!gfxWindowsFontGroup::MakeTextRun(const unsigned char * aString=0x01f7dc37, unsigned int aLength=0x00000001, gfxTextRunFactory::Parameters * aParams=0x0012c784) Line 623 thebes.dll!gfxFontGroup::GetSpecialStringTextRun(gfxFontGroup::SpecialString aString=STRING_SPACE, gfxTextRun * aTemplate=0x03eef6c0) Line 551 + 0x18 bytes gklayout.dll!GetSpecialString(gfxFontGroup * aFontGroup=0x03eef5b8, gfxFontGroup::SpecialString aSpecial=STRING_SPACE, gfxTextRun * aTextRun=0x03eef6c0) Line 1172 gklayout.dll!PropertyProvider::GetSpacing(unsigned int aStart=0x00000000, unsigned int aLength=0x00000001, gfxFont::Spacing * aSpacing=0x0012c9d8) Line 2006 + 0x1d bytes thebes.dll!gfxTextRun::GetAdjustedSpacing(unsigned int aStart=0x00000000, unsigned int aEnd=0x00000001, gfxTextRun::PropertyProvider * aProvider=0x0012d1d8, gfxFont::Spacing * aSpacing=0x0012c9d8) Line 753 thebes.dll!gfxTextRun::BreakAndMeasureText(unsigned int aStart=0x00000000, unsigned int aMaxLength=0x00000001, int aLineBreakBefore=0x00000001, double aWidth=58860.000000000000, gfxTextRun::PropertyProvider * aProvider=0x0012d1d8, int aSuppressInitialBreak=0x00000001, gfxFont::RunMetrics * aMetrics=0x0012d2b8, int aTightBoundingBox=0x00000000, int * aUsedHyphenation=0x0012d2b4, unsigned int * aLastBreak=0x0012d274) Line 1193 gklayout.dll!nsTextFrame::Reflow(nsPresContext * aPresContext=0x03e68c60, nsHTMLReflowMetrics & aMetrics={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0x03f07ef8) Line 4762 + 0x64 bytes MakeTextRun on Windows needs a gfxContext, and GetSpecialStringTextRun doesn't provide one.
Blocks: 367177
Severity: normal → critical
Keywords: crash
Summary: Crash @gfxContext::CurrentSurface with new textframe → Crash [@ gfxContext::CurrentSurface] with new textframe
I'm thinking of moving GetSpecialStringTextRun out of gfxFontGroup altogether and just have it live in nsTextFrame(Thebes). When the new textrun cache goes in, we won't need to specially cache special strings any more.
Ok, but should we at least put in an assertion?
Assignee: nobody → smontagu
Status: NEW → ASSIGNED
Attachment #263584 - Flags: review?(roc)
Comment on attachment 263584 [details] [diff] [review] Assert on aParams->mContext sure
Attachment #263584 - Flags: superreview+
Attachment #263584 - Flags: review?(roc)
Attachment #263584 - Flags: review+
Attachment 263584 [details] [diff] checked in. The crash should be fixed by bug 375760.
Depends on: 375760
No crash in today's build.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
Attached patch reftestSplinter Review
This is my first reftest, so I'd like review
Attachment #270190 - Flags: review?(roc)
What are you trying to test here? We don't normally create reftests to test crashes.
I'm trying to kill two birds with one stone and test that there isn't a visible glyph for the tab character.
Flags: in-testsuite? → in-testsuite+
(In reply to comment #8) > What are you trying to test here? We don't normally create reftests to test > crashes. How else are you going to test crashes?
I dunno if there's an approved method, but mochitests would be better than reftests, because they avoid having to load a reference page and build a compressed PNG for each page.
Keywords: testcase
Summary: Crash [@ gfxContext::CurrentSurface] with new textframe → Crash [@ gfxContext::CurrentSurface] with tab character (new textframe)
Crash Signature: [@ gfxContext::CurrentSurface]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: