Closed
Bug 17237
Opened 25 years ago
Closed 25 years ago
FMM: CWellFormedDTD::HandleErrorToken()
Categories
(Core :: DOM: HTML Parser, defect, P3)
Core
DOM: HTML Parser
Tracking
()
VERIFIED
FIXED
People
(Reporter: bruce, Assigned: nisheeth_mozilla)
Details
CWellFormedDTD::HandleErrorToken() does delete[] on the result of nsString::ToNewCString(). It should be using the correct API whatever that happens to be.
Nisheeth -- this was yours, but I've fixed it and provided the new implementation for you to review. You need to call Recycle(xxx) on char*'s returned by ToNewCString: nsresult CWellFormedDTD::HandleErrorToken(CToken* aToken) { NS_PRECONDITION(0!=aToken,"null token"); nsresult result=NS_OK; // Propagate the error onto the content sink. CErrorToken *errTok = (CErrorToken *)aToken; // XXX Dump error to error output stream just in case the content // sink is RDF or XUL and does not implement error handling. We need to factor // code better among HTMLContentSink, XMLContentSink, RDFContentSink, // and XULContentSink. Until that happens, instead of cutting and // pasting error handling code for each content sink, I output an // error to cerr here. const nsParserError* error = errTok->GetError(); if (error) { char* temp; cerr << "XML Error in file '" << (temp = mFilename.ToNewCString()) << "', "; Recycle(temp); cerr << "Line Number: " << error->lineNumber << ", "; cerr << "Col Number: " << error->colNumber << ", "; cerr << "Description: " << (temp = error->description.ToNewCString()) << "\n"; Recycle(temp); cerr << "Source Line: " << (temp = error->sourceLine.ToNewCString()) << "\n"; Recycle(temp); } result=(mSink)? mSink->NotifyError(errTok->GetError()):NS_OK; return result; }
Assignee | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•25 years ago
|
||
Thanks for the patch, Rick. I guess when I wrote this code, I didn't realize that nsString provides a function to recycle char*'s. Sorry! I'll check your patch in once the tree opens today.
Assignee | ||
Updated•25 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 3•25 years ago
|
||
The fix is checked in.
Marking verified as per the above developer comments.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•