Closed
Bug 117118
Opened 24 years ago
Closed 24 years ago
MacOS 9 crash on http://www.nana.co.il/
Categories
(Core :: Layout: Text and Fonts, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 117703
People
(Reporter: ftang, Assigned: ftang)
References
()
Details
(Keywords: crash)
I have the patch 116976 in my tree and when I visit http://www.nana.co.il/ it
first get assertion and then it crash. I should try to reproduce without the
patch and see what happen:
here is the stack when it assert
FrameManager::HandlePLEvent(CantRenderReplacedElementEvent*)
contentDebug.shlb 0x3CCC4778 (PPC)
nsCSSFrameConstructor::CantRenderReplacedElement(nsIPresShell*,nsIPresContext*
,nsIFrame*)
FrameManager::ReplaceFrame(nsIPresContext*,nsIPresShell&,nsIFrame*,nsIAtom*
,nsIFrame*,nsIFrame*)
nsContainerFrame::ReplaceFrame(nsIPresContext*,nsIPresShell&,nsIAtom*,nsIFrame*
,nsIFrame*)
nsBlockFrame::RemoveFrame(nsIPresContext*,nsIPresShell&,nsIAtom*,nsIFrame*)
nsBlockFrame::DoRemoveFrame(nsIPresContext*,nsIFrame*)
nsObjectFrame::Destroy(nsIPresContext*)
nsContainerFrame::Destroy(nsIPresContext*)
nsFrame::Destroy(nsIPresContext*)
PresShell::NotifyDestroyingFrame(nsIFrame*)
FrameManager::NotifyDestroyingFrame(nsIFrame*)
nsDebug::Assertion(const char*,const char*,const char*,int)
dprintf(const char*,...)
InterfaceLib 0xFFD03A30 (PPC)
The assertino in FrameManager::NotifyDestroyingFrame(nsIFrame*)
NS_ASSERTION(!PL_DHASH_ENTRY_IS_BUSY(entry) || entry->frame != aFrame,
"frame was not removed from primary frame map before"
"destruction or was readded to map after being removed");
where aFrame == 0x0978BEC0
entry->frame == 0x0978BEC0
and then I continue, and it got "illegal exception instruction" and crash in
the following stack:
nsCSSFrameConstructor::ProcessChildren(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,int,nsFrameItems&
,int,nsTableCreator*)
nsCSSFrameConstructor::ConstructFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsFrameItems&)
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIAtom*,int,nsIStyleContext*
,nsFrameItems&,int)
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,const nsStyleDisplay*,nsIContent*,nsIFrame*
,nsIStyleContext*,nsFrameItems&)
nsCSSFrameConstructor::ConstructTableFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIStyleContext*,nsTableCreator&
,int,nsFrameItems&,nsIFrame*&,nsIFrame*&,int&)
nsCSSFrameConstructor::TableProcessChildren(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsTableCreator&,nsFrameItems&
,nsIFrame*&)
nsCSSFrameConstructor::TableProcessChild(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIContent*,nsIFrame*,nsIAtom*
,nsIStyleContext*,nsTableCreator&,nsFrameItems&,nsIFrame*&)
nsCSSFrameConstructor::ConstructTableRowGroupFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIStyleContext*,nsTableCreator&
,int,nsFrameItems&,nsIFrame*&,int&)
nsCSSFrameConstructor::TableProcessChildren(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsTableCreator&,nsFrameItems&
,nsIFrame*&)
nsCSSFrameConstructor::TableProcessChild(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIContent*,nsIFrame*,nsIAtom*
,nsIStyleContext*,nsTableCreator&,nsFrameItems&,nsIFrame*&)
nsCSSFrameConstructor::ConstructTableRowFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIStyleContext*,nsTableCreator&
,int,nsFrameItems&,nsIFrame*&,int&)
nsCSSFrameConstructor::TableProcessChildren(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsTableCreator&,nsFrameItems&
,nsIFrame*&)
nsCSSFrameConstructor::TableProcessChild(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIContent*,nsIFrame*,nsIAtom*
,nsIStyleContext*,nsTableCreator&,nsFrameItems&,nsIFrame*&)
nsCSSFrameConstructor::ConstructTableCellFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIStyleContext*,nsTableCreator&
,int,nsFrameItems&,nsIFrame*&,nsIFrame*&,int&)
nsCSSFrameConstructor::ProcessChildren(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,int,nsFrameItems&
,int,nsTableCreator*)
nsCSSFrameConstructor::ConstructFrame(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsFrameItems&)
nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,nsIContent*,nsIFrame*,nsIAtom*,int,nsIStyleContext*
,nsFrameItems&,int)
nsCSSFrameConstructor::ConstructFrameByDisplayType(nsIPresShell*,nsIPresContext*
,nsFrameConstructorState&,const nsStyleDisplay*,nsIContent*,nsIFrame*
,nsIStyleContext*,nsFrameItems&)
FrameManager::SetPrimaryFrameFor(nsIContent*,nsIFrame*)
PL_DHashTableOperate
ChangeTable
PrimaryFrameMapGetKey(PLDHashTable*,PLDHashEntryHdr*)
0xFFC10000 (PPC)
and in
PrimaryFrameMapGetKey(PLDHashTable *table, PLDHashEntryHdr *hdr)
{
PrimaryFrameMapEntry *entry = NS_STATIC_CAST(PrimaryFrameMapEntry*, hdr);
nsCOMPtr<nsIContent> content;
(*entry).frame is 0x0978BEC0
notice the frame is the same frame left over last time.
I think it is an invalid entry which does not get removed last time.
| Assignee | ||
Comment 2•24 years ago
|
||
same crash happen w/o the patch in bug 116976
Comment 3•24 years ago
|
||
This stack looks just like the one in bug 117703, so this may not be a BIDI
issue...
Like bug 117703, the element in question is an object element and it seems that
the frame was never removed from the map rather than that it was readded.
*** This bug has been marked as a duplicate of 117703 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
Component: Layout: BiDi Hebrew & Arabic → Layout: Text
QA Contact: zach → layout.fonts-and-text
You need to log in
before you can comment on or make changes to this bug.
Description
•