Closed
Bug 125090
Opened 23 years ago
Closed 22 years ago
Bad tag enum passed to CNavDTD::IntTagToStringTag()!!: 'str_ptr',
Categories
(Core :: DOM: HTML Parser, enhancement)
Tracking
()
RESOLVED
FIXED
People
(Reporter: timeless, Assigned: timeless)
References
Details
Attachments
(2 files, 1 obsolete file)
(deleted),
patch
|
bzbarsky
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
bzbarsky
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
debug freebsd cvs build.
we're using a custom tag.
#2 0x28316a1d in nsDebug::Assertion (aStr=0x280fb5a0 "nsDependentString must wrap a non-NULL buffer", aExpr=0x280fb58e "aPtr",
aFile=0x280fb560 "../../dist/include/string/nsDependentString.h", aLine=54) at /home/timeless/mozilla/xpcom/glue/nsDebug.cpp:291
#3 0x280f106a in nsDependentString::Rebind (this=0xbfbfedac, aPtr=0x0) at ../../dist/include/string/nsDependentString.h:54
#4 0x280f091a in nsDependentString::nsDependentString (this=0xbfbfedac, aPtr=0x0) at ../../dist/include/string/nsDependentString.h:100
#5 0x2926b6bb in SinkContext::CloseContainer (this=0x8739980, aNode=@0x8808870)
at /home/timeless/mozilla/content/html/document/src/nsHTMLContentSink.cpp:1539
(gdb) l
1534 if (mStack[mStackPos].mNumFlushed < childCount) {
1535 #ifdef NS_DEBUG
1536 // Tracing code
1537 nsCOMPtr<nsIDTD> dtd;
1538 mSink->mParser->GetDTD(getter_AddRefs(dtd));
1539 nsDependentString str(dtd->IntTagToStringTag(nsHTMLTag(nodeType)));
1540
1541 SINK_TRACE(SINK_TRACE_REFLOW,
1542 ("SinkContext::CloseContainer: reflow on notifyImmediate tag=%s newIndex=%d stackPos=%d",
1543 NS_LossyConvertUCS2toASCII(str).get(),
(gdb) p nodeType
$1 = eHTMLTag_userdefined
code flow needs to avoid 1539 when nodeType==(eHTMLTag_userdefined===0)
#6 0x292732d7 in HTMLContentSink::CloseContainer (this=0x8800c00, aNode=@0x8808870)
at /home/timeless/mozilla/content/html/document/src/nsHTMLContentSink.cpp:3401
#7 0x288d6a5e in CNavDTD::CloseContainer (this=0x886be00, aNode=0x8808870, aTarget=eHTMLTag_userdefined, aClosedByStartTag=0)
at /home/timeless/mozilla/htmlparser/src/CNavDTD.cpp:3558
#8 0x288d6b83 in CNavDTD::CloseContainersTo (this=0x886be00, anIndex=2, aTarget=eHTMLTag_userdefined, aClosedByStartTag=0)
at /home/timeless/mozilla/htmlparser/src/CNavDTD.cpp:3594
#9 0x288d6f84 in CNavDTD::CloseContainersTo (this=0x886be00, aTarget=eHTMLTag_userdefined, aClosedByStartTag=0)
at /home/timeless/mozilla/htmlparser/src/CNavDTD.cpp:3750
#10 0x288cf545 in CNavDTD::DidBuildModel (this=0x886be00, anErrorCode=0, aNotifySink=1, aParser=0x8746700, aSink=0x8800c00)
at /home/timeless/mozilla/htmlparser/src/CNavDTD.cpp:609
#11 0x288e3d76 in nsParser::DidBuildModel (this=0x8746700, anErrorCode=0) at /home/timeless/mozilla/htmlparser/src/nsParser.cpp:1385
#12 0x288e4fbd in nsParser::ResumeParse (this=0x8746700, allowIteration=1, aIsFinalChunk=1, aCanInterrupt=1)
at /home/timeless/mozilla/htmlparser/src/nsParser.cpp:1892
#13 0x288e6d3d in nsParser::OnStopRequest (this=0x8746700, request=0x8736500, aContext=0x0, status=0)
at /home/timeless/mozilla/htmlparser/src/nsParser.cpp:2516
#14 0x28e5f3db in nsDocumentOpenInfo::OnStopRequest (this=0x86af1a0, request=0x8736500, aCtxt=0x0, aStatus=0)
at /home/timeless/mozilla/uriloader/base/nsURILoader.cpp:253
Comment 1•23 years ago
|
||
Dupe of bug 117299?
There's a second patch in there too, there's probably even a bug explaining it.
Reviewers can decide whether I commit both or just the top.
*** Bug 117299 has been marked as a duplicate of this bug. ***
Timeless:
if (mStack[stackPos].mType) {
means that if the current tag is not eHTMLTag_unknown. You should also check for
eHTMLTag_userdefined. So, may be the above line should be
if (mStack[stackPos].mType != eHTMLTag_unknown &&
mStack[stackPos].mType != eHTMLTag_userdefined) {
>There's a second patch in there too, there's probably even a bug explaining it.
|Don't| checkin your second patch. We need to find out what the real problem is.
With your patch we will just mask the problem.
Giving bug to timeless since he has done all the work.
-->timeless
Assignee: harishd → timeless
timeless and me talked about this on #mozilla. IMHO we shouldn't be using the
enum at all to do the tag->string conversion since that'll never work for <foo>
tags. It would be better to use
nsCOMPtr<nsIAtom> tag;
mStack[stackPos].mContent->GetTag(*getter_AddRefs(tag));
PRUnichar* tagChar;
tag->GetUnicode(&tagChar);
nsDependantString str(tagChar);
to get the string.
i've actually been running with the first part of this patch for months. And
the second part is just like the first so :-)
Attachment #69974 -
Attachment is obsolete: true
*** Bug 127742 has been marked as a duplicate of this bug. ***
Comment on attachment 88892 [details] [diff] [review]
corrected patch
ignore
@@ -3699,7 +3703,7 @@
Comment 10•22 years ago
|
||
Comment on attachment 88892 [details] [diff] [review]
corrected patch
r=bzbarsky
Attachment #88892 -
Flags: review+
Comment 11•22 years ago
|
||
Comment on attachment 88892 [details] [diff] [review]
corrected patch
sr=jst
Attachment #88892 -
Flags: superreview+
Assignee | ||
Comment 12•22 years ago
|
||
fixed
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 13•22 years ago
|
||
I just brought this change down from CVS. I am trapping at line 1921 under
Win2K. mStack[mStackPos].mContent->GetTag(*getter_AddRefs(tag));
mStack[mStackPos].mContent is uninitialized.
I just clobbered content and I am rebuilding it right now to see if that helps.
Assignee | ||
Comment 14•22 years ago
|
||
Comment 15•22 years ago
|
||
Comment on attachment 89158 [details] [diff] [review]
fix small error caught by jonsmirl@yahoo.com
r=bzbarsky
Attachment #89158 -
Flags: review+
Comment 16•22 years ago
|
||
Comment on attachment 89158 [details] [diff] [review]
fix small error caught by jonsmirl@yahoo.com
sr=jst
Attachment #89158 -
Flags: superreview+
Assignee | ||
Comment 17•22 years ago
|
||
*** Bug 154382 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•