Closed
Bug 7210
Opened 26 years ago
Closed 26 years ago
MLK: nsTransactionManagerFactory
Categories
(Core :: DOM: Editor, defect, P3)
Core
DOM: Editor
Tracking
()
VERIFIED
FIXED
M8
People
(Reporter: bruce, Assigned: sfraser_bugs)
References
Details
Build from May 26, 1999. Solaris 2.6. Start and immediately exit apprunner
-editor and this leaks.
MLK: 88 bytes leaked at 0x96e638
* This memory was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [libgcc.a]
__builtin_new [rtlib.o]
nsTransactionManagerFactory::CreateInstance(nsISupports*,const
nsID&,void**) [nsTransactionManagerFactory.cpp:101]
nsComponentManagerImpl::CreateInstance(const nsID&,nsISupports*,const
nsID&,void**) [nsComponentManager.cpp:1118]
nsEditor::EnableUndo(int) [nsEditor.cpp:490]
nsTextEditor::EnableUndo(int) [nsTextEditor.cpp:855]
nsHTMLEditor::EnableUndo(int) [nsHTMLEditor.cpp:316]
nsTextEditor::Init(nsIDOMDocument*,nsIPresShell*) [nsTextEditor.cpp:330]
nsHTMLEditor::Init(nsIDOMDocument*,nsIPresShell*) [nsHTMLEditor.cpp:118]
nsEditorAppCore::InstantiateEditor(nsIDOMDocument*,nsIPresShell*)
[nsEditorAppCore.cpp:335]
nsEditorAppCore::DoEditorMode(nsIWebShell*) [nsEditorAppCore.cpp:387]
nsEditorAppCore::PrepareDocumentForEditing() [nsEditorAppCore.cpp:681]
nsEditorAppCore::OnEndDocumentLoad(nsIDocumentLoader*,nsIURL*,int)
[nsEditorAppCore.cpp:1987]
nsWebShell::OnEndDocumentLoad(nsIDocumentLoader*,nsIURL*,int)
[nsWebShell.cpp:2486]
nsDocLoaderImpl::FireOnEndDocumentLoad(nsIDocumentLoader*,int)
[nsDocLoader.cpp:840]
nsDocLoaderImpl::LoadURLComplete(nsIURL*,nsISupports*,int)
[nsDocLoader.cpp:1018]
nsDocumentBindInfo::OnStopBinding(nsIURL*,unsigned int,const unsigned
short*) [nsDocLoader.cpp:1539]
stub_complete(_NET_StreamClass*) [nsStubContext.cpp:772]
net_ProcessFile [mkfile.c:1360]
NET_ProcessNet [mkgeturl.c:3355]
NET_PollSockets [mkselect.c:298]
nsNetlibService::NetPollSocketsCallback(nsITimer*,void*)
[nsNetService.cpp:1276]
TimerImpl::FireTimeout() [nsTimer.cpp:73]
nsTimerExpired [nsTimer.cpp:189]
g_timeout_dispatch [gmain.c:1147]
g_main_dispatch [gmain.c:647]
g_main_iterate [gmain.c:854]
g_main_run [gmain.c:912]
gtk_main [gtkmain.c:475]
Assignee | ||
Updated•26 years ago
|
Assignee: kin → sfraser
Status: ASSIGNED → NEW
QA Contact: sujay → bruce
Assignee | ||
Comment 3•26 years ago
|
||
My ownership fixes should have fixed this.
Assignee | ||
Updated•26 years ago
|
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Simon, I picked up your changes this morning and tried it on Win32. The editor
still doesn't get Released(). Doesn't matter if I close via File->Quit or the
window close button.
I also found an addref problem in nsEditor::EnableUndo(). It looks like someone
forgot to release a ref to the transaction manager it just created, before
returning from the method, so we end up with a refcount of 2 for the transaction
manager. I'll fix it.
I did more poking around, and it seems that JavaScript method EditorShutdown()
isn't getting called on Win32. I also noticed that there are 2 references to
nsEditorAppCore that aren't being released:
1. The add ref for nativeThis in EditorAppCore().
2. The add ref that happens when you call nsWebShell::SetDocLoadObserver().
It looks like the web shell will not release it's reference to the
DocLoadObserver unless you call SetDocLoadObserver() again with another observer
or a null.
Forgot to add that when I modify the nsEditorAppCore refcnt in the debugger so
that things actually do get released, both the editor and the transaction
manager get released properly.
So if we can just fix things on the appcore side, we should be in the clear. :)
Assignee | ||
Updated•26 years ago
|
Status: REOPENED → RESOLVED
Closed: 26 years ago → 26 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 8•26 years ago
|
||
The nsTransactionManagerFactory is only every made temporarily when creating the
transaction manager. I verified in the debugger that it gets deleted.
You need to log in
before you can comment on or make changes to this bug.
Description
•