Closed Bug 82556 Opened 24 years ago Closed 24 years ago

hang in nsTextFrame::GetPosition in BIDI code

Categories

(Core :: Layout, defect, P1)

x86
Linux
defect

Tracking

()

VERIFIED FIXED
mozilla0.9.1

People

(Reporter: blizzard, Assigned: kinmoz)

References

()

Details

(Keywords: hang, Whiteboard: critical for mozilla 0.9.1)

Attachments

(3 files)

I'm getting an occasional hang in this bit of code in nsTextFrame.cpp: #ifdef IBMBIDI if (aContentOffset >= mContentOffset) { PRInt32 stopOffset = mContentOffset + mContentLength; while (aContentOffset < stopOffset && IS_BIDI_DIACRITIC(text[ip[aContentOffset - mContentOffset]]) ) { aContentOffset++; } } #endif // IBMBIDI Unfortunately, my debugger is giving me trouble so I'm having problems catching the values. (gdb) print ip $14 = (PRInt32 *) 0xbfffe878 (gdb) print text $15 = (PRUnichar *) 0xbfffea18 (gdb) print *ip $16 = 7542 (gdb) print *text $17 = 43 (gdb) print aContentOffset $18 = (PRInt32 &) @0xbfffedf8: 7591 (gdb) print mContentOffset $19 = 7542 (gdb) print stopOffset $9 = 7592
Whiteboard: critical for mozilla 0.9.1
Cc the BIDI and selection crew. This is probably related to the UMR in bug 81078. Steps to repro from blizzard: <blizzard> http://bugzilla.mozilla.org/showattachment.cgi?attach_id=35891 <blizzard> load that doc <blizzard> start selecting from the top <blizzard> and start going down <blizzard> just after the first page ends it hangs every time
Status: NEW → ASSIGNED
Keywords: hang
Priority: -- → P1
Target Milestone: --- → mozilla0.9.1
Severity: normal → critical
I can't recreate this on Windows. Has anyone seen it on anything but Linux?
Ooops, the last attatchment was made by me (kin@netscape.com), I forgot to reset the login in my browser. In any case this was my bonehead regression caused by my patch in bug 81078 which mkaply@us.ibm.com checked in for me. This lastest patch subtracts off mContentOffset to remap the index in the ip[] array back to the range in the text[] array.
Whiteboard: critical for mozilla 0.9.1 → critical for mozilla 0.9.1, FIX IN HAND NEEDS sr=, r=, and a=
sr=sfraser
r=mkaply
r=mjudge.
a=beppe, and kin is pinging forces of power for checkin nod
a=blizzard for 0.9.1 Please make my pain go away.
Looks like I'm set for checkin when the tree opens.
Whiteboard: critical for mozilla 0.9.1, FIX IN HAND NEEDS sr=, r=, and a= → critical for mozilla 0.9.1, FIX IN HAND Ready for checkin
Sorry to do this again ... I figured out the cause of the last UMR in bug 81078, and it has to do with the same piece of code we are touching to fix this bug, so I thought I'd kill 2 birds with one checkin. Can I get an sr= from sfraser, r= from anyone, and an a= blizzard again?
The logic here could be improved slightly: + if (aContentOffset < bidiStopOffset) + curindx = ip[aContentOffset - mContentOffset] - mContentOffset; + else + break; to if (aContentOffset == bidiStopOffset) break; curindx = ip[aContentOffset - mContentOffset] - mContentOffset; Either way, sr=sfraser
r=mjudge with a change simon and kin will do. >= not ==
a=blizzard for 0.9.1 again
Fix checked in to Trunk: mozilla/layout/html/base/src/nsTextFrame.cpp revision 1.305 Fix should appear in 05/24/01 QA bits built after 8am.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Whiteboard: critical for mozilla 0.9.1, FIX IN HAND Ready for checkin → critical for mozilla 0.9.1
Marking verified in the May 30th build.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: