If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

MLK while consuming newline tokens

VERIFIED FIXED in M16

Status

()

Core
HTML: Parser
P3
major
VERIFIED FIXED
18 years ago
17 years ago

People

(Reporter: Bruce Mitchener, Assigned: harishd)

Tracking

({mlk})

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

18 years ago
This happens when loading sample #8 in viewer.  Two leak things are pasted here.
Build from last night on Solaris.

         MLK: 3380 bytes leaked in 26 blocks
         This memory was allocated from:
               malloc         [rtlib.o]
               PR_Malloc      [prmem.c:38]
               nsAllocatorImpl::Alloc(unsigned int) [nsAllocator.cpp:82]
               nsAllocator::Alloc(unsigned int) [nsAllocator.cpp:148]
               nsStr::Alloc(nsStr&,unsigned int) [nsStr.cpp:663]
               nsStr::Realloc(nsStr&,unsigned int) [nsStr.cpp:690]
               nsStr::EnsureCapacity(nsStr&,unsigned int) [nsStr.cpp:100]
               nsStr::GrowCapacity(nsStr&,unsigned int) [nsStr.cpp:120]
               nsStr::Append(nsStr&,const nsStr&,unsigned int,int)
[nsStr.cpp:166]
               nsString::Append(unsigned short) [nsString2.cpp:1168]
               nsString::Assign(unsigned short) [nsString2.cpp:1006]
               nsString::operator =(unsigned short) [nsString2.h:432]
               CNewlineToken::Consume(unsigned short,nsScanner&,int)
[nsHTMLTokens.cpp:1016]
               nsHTMLTokenizer::ConsumeNewline(unsigned
short,CToken*&,nsScanner&) [nsHTMLTokenizer.cpp:738]
               nsHTMLTokenizer::ConsumeToken(nsScanner&,int&)
[nsHTMLTokenizer.cpp:316]
               nsParser::Tokenize(int) [nsParser.cpp:1618]
               nsParser::ResumeParse(nsIDTD*,int) [nsParser.cpp:1129]
              
nsParser::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsParser.cpp:1511]
              
nsDocumentOpenInfo::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsURILoader.cpp:262]
              
nsResChannel::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsResChannel.cpp:618]
              
nsFileChannel::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsFileChannel.cpp:468]
               nsOnDataAvailableEvent::HandleEvent()
[nsAsyncStreamListener.cpp:373]
               nsStreamListenerEvent::HandlePLEvent(PLEvent*)
[nsAsyncStreamListener.cpp:97]
               PL_HandleEvent [plevent.c:526]
               PL_ProcessPendingEvents [plevent.c:487]
               nsEventQueueImpl::ProcessPendingEvents() [nsEventQueue.cpp:298]
               event_processor_callback(void*,int,GdkInputCondition)
[nsAppShell.cpp:141]
               our_gdk_io_invoke(_GIOChannel*,GIOCondition,void*)
[nsAppShell.cpp:54]
               g_io_unix_dispatch [giounix.c:131]
               g_main_dispatch [gmain.c:647]
         Block of 130 bytes (26 times); last block at 0xc1d430



         MLK: 1248 bytes leaked in 26 blocks
         This memory was allocated from:
               malloc         [rtlib.o]
               __bUiLtIn_nEw  [libxpcom.so]
               __builtin_new  [rtlib.o]
               CTokenRecycler::CreateTokenOfType(eHTMLTokenTypes,nsHTMLTag)
[nsDTDUtils.cpp:769]
               nsHTMLTokenizer::ConsumeNewline(unsigned
short,CToken*&,nsScanner&) [nsHTMLTokenizer.cpp:735]
               nsHTMLTokenizer::ConsumeToken(nsScanner&,int&)
[nsHTMLTokenizer.cpp:316]
               nsParser::Tokenize(int) [nsParser.cpp:1618]
               nsParser::ResumeParse(nsIDTD*,int) [nsParser.cpp:1129]
              
nsParser::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsParser.cpp:1511]
              
nsDocumentOpenInfo::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsURILoader.cpp:262]
              
nsResChannel::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsResChannel.cpp:618]
              
nsFileChannel::OnDataAvailable(nsIChannel*,nsISupports*,nsIInputStream*,unsigned
int,unsigned int) [nsFileChannel.cpp:468]
               nsOnDataAvailableEvent::HandleEvent()
[nsAsyncStreamListener.cpp:373]
               nsStreamListenerEvent::HandlePLEvent(PLEvent*)
[nsAsyncStreamListener.cpp:97]
               PL_HandleEvent [plevent.c:526]
               PL_ProcessPendingEvents [plevent.c:487]
               nsEventQueueImpl::ProcessPendingEvents() [nsEventQueue.cpp:298]
               event_processor_callback(void*,int,GdkInputCondition)
[nsAppShell.cpp:141]
               our_gdk_io_invoke(_GIOChannel*,GIOCondition,void*)
[nsAppShell.cpp:54]
               g_io_unix_dispatch [giounix.c:131]
               g_main_dispatch [gmain.c:647]
               g_main_iterate [gmain.c:854]
               g_main_run     [gmain.c:912]
               gtk_main       [gtkmain.c:475]
               nsAppShell::Run() [nsAppShell.cpp:304]
               nsNativeViewerApp::Run() [nsGtkMain.cpp:50]
               main           [nsGtkMain.cpp:168]
               _start         [crt1.o]
         Block of 48 bytes (26 times); last block at 0xc1d348

Comment 1

18 years ago
Harish -- one for you.
Assignee: rickg → harishd

Comment 2

18 years ago
This patch should fix at least part of the newline token leak (this was sent
to rickg some time ago but due to his workload he hasn't had time to look into
this yet, thus I'm submitting it here too).

Index: htmlparser/src/CNavDTD.cpp
===================================================================
RCS file: /cvsroot/mozilla/htmlparser/src/CNavDTD.cpp,v
retrieving revision 3.268
diff -u -r3.268 CNavDTD.cpp
--- CNavDTD.cpp 2000/02/26 06:14:28     3.268
+++ CNavDTD.cpp 2000/02/28 01:33:39
@@ -841,6 +841,7 @@
           if(eToken_newline==theType){
             mLineNumber++;
             mTokenizer->PopToken();  //skip 1st newline inside PRE and LISTING
+            mTokenRecycler->RecycleToken(theNextToken);
           }//if
         }//if
       }
(Assignee)

Comment 3

18 years ago
This leak has been fixed in my tree and is been sitting in there waiting for the 
tree to open for M15.  Thanx anyway for the patch.
(Assignee)

Updated

18 years ago
Target Milestone: M16
Keywords: mlk
(Reporter)

Comment 4

18 years ago
Since the tree is open now, can this go in soon?  Thanks!
(Assignee)

Comment 5

18 years ago
The crack has been sealed.  Marking FIXED.
Status: NEW → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → FIXED

Comment 6

17 years ago
updated qa contact.
QA Contact: janc → bsharma

Comment 7

17 years ago
Verified on:
build: 2001-04-02-09-Mtrunk
platform: WinNT

Marking it verified as per above developer comments.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.