Closed Bug 343036 Opened 17 years ago Closed 17 years ago

Crashes with references to JS-defined object attached to XPCOM component

Categories

(Core :: XML, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: WeirdAl, Assigned: smaug)

Details

(Keywords: crash, fixed1.8.1, testcase)

Attachments

(2 files)

I'm crashing very frequently with a particular testcase, but I seem to be getting three or four different stacks.

>	xpc3250.dll!XPCJSRuntime::GCCallback(JSContext * cx=0x02156720, JSGCStatus status=JSGC_END)  Line 565 + 0xf bytes	C++
 	gklayout.dll!DOMGCCallback(JSContext * cx=0x02156720, JSGCStatus status=JSGC_END)  Line 3040 + 0x17 bytes	C++
 	js3250.dll!js_GC(JSContext * cx=0x02156720, unsigned int gcflags=0x00000000)  Line 2684 + 0x11 bytes	C
 	js3250.dll!js_ForceGC(JSContext * cx=0x02156720, unsigned int gcflags=0x00000000)  Line 2098 + 0xd bytes	C
 	js3250.dll!JS_GC(JSContext * cx=0x02156720)  Line 1907 + 0xb bytes	C
 	gklayout.dll!nsJSContext::Notify(nsITimer * timer=0x021c7938)  Line 2996 + 0xd bytes	C++
 	xpcom_core.dll!nsTimerImpl::Fire()  Line 404	C++
 	xpcom_core.dll!nsTimerEvent::Run()  Line 486	C++
 	xpcom_core.dll!nsThread::ProcessNextEvent(int mayWait=0x00000001, int * result=0x0012fe04)  Line 483	C++
 	xpcom_core.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x00398e00, int mayWait=0x00000001)  Line 225 + 0x16 bytes	C++
 	gkwidget.dll!nsBaseAppShell::Run()  Line 153 + 0xc bytes	C++
 	appcomps.dll!nsAppStartup::Run()  Line 219	C++
 	seamonkey.exe!main1(int argc=0x00000003, char * * argv=0x00394d08, nsISupports * nativeApp=0x0096b818)  Line 1238 + 0x22 bytes	C++
 	seamonkey.exe!main(int argc=0x00000003, char * * argv=0x00394d08)  Line 1740 + 0x25 bytes	C++
 	seamonkey.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	seamonkey.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!7c816d4f() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	kernel32.dll!7c8399f3() 	

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060626 SeaMonkey/1.5a

Testcase coming up.
Another stack I frequently hit:

>	xpcom_core.dll!nsQueryInterface::operator()(const nsID & aIID={...}, void * * answer=0x0012c9f4)  Line 47 + 0x15 bytes	C++
 	xpcom_core.dll!nsCOMPtr_base::assign_from_qi(nsQueryInterface qi={...}, const nsID & iid={...})  Line 96 + 0xf bytes	C++
 	xpc3250.dll!nsCOMPtr<nsISupports>::operator=(nsQueryInterface rhs={...})  Line 1050	C++
 	xpc3250.dll!XPCWrappedNative::GetNewOrUsed(XPCCallContext & ccx={...}, nsISupports * Object=0x03819e08, XPCWrappedNativeScope * Scope=0x034d1ef0, XPCNativeInterface * Interface=0x0363f358, int isGlobal=0x00000000, XPCWrappedNative * * resultWrapper=0x0012cbb4)  Line 230	C++
 	xpc3250.dll!XPCConvert::NativeInterface2JSObject(XPCCallContext & ccx={...}, nsIXPConnectJSObjectHolder * * dest=0x0012cc4c, nsISupports * src=0x03819e08, const nsID * iid=0x0012cf54, JSObject * scope=0x03613550, int allowNativeWrapper=0x00000001, int isGlobal=0x00000000, unsigned int * pErr=0x0012ce9c)  Line 1078 + 0x22 bytes	C++
 	xpc3250.dll!XPCConvert::NativeData2JS(XPCCallContext & ccx={...}, long * d=0x0012cd88, const void * s=0x0012ce00, const nsXPTType & type={...}, const nsID * iid=0x0012cf54, JSObject * scope=0x03613550, unsigned int * pErr=0x0012ce9c)  Line 473 + 0x35 bytes	C++
 	xpc3250.dll!XPCWrappedNative::CallMethod(XPCCallContext & ccx={...}, XPCWrappedNative::CallMode mode=CALL_GETTER)  Line 2244 + 0x32 bytes	C++
 	xpc3250.dll!XPCWrappedNative::GetAttribute(XPCCallContext & ccx={...})  Line 1990 + 0xe bytes	C++
 	xpc3250.dll!XPC_WN_GetterSetter(JSContext * cx=0x034d19f8, JSObject * obj=0x03613550, unsigned int argc=0x00000000, long * argv=0x03816938, long * vp=0x0012d0e0)  Line 1482 + 0xc bytes	C++
 	js3250.dll!js_Invoke(JSContext * cx=0x034d19f8, unsigned int argc=0x00000000, unsigned int flags=0x00000002)  Line 1328 + 0x20 bytes	C
 	js3250.dll!js_InternalInvoke(JSContext * cx=0x034d19f8, JSObject * obj=0x03613550, long fval=0x036134f8, unsigned int flags=0x00000000, unsigned int argc=0x00000000, long * argv=0x00000000, long * rval=0x0012dc8c)  Line 1422 + 0x14 bytes	C
 	js3250.dll!js_InternalGetOrSet(JSContext * cx=0x034d19f8, JSObject * obj=0x03613550, long id=0x037696a8, long fval=0x036134f8, JSAccessMode mode=JSACC_READ, unsigned int argc=0x00000000, long * argv=0x00000000, long * rval=0x0012dc8c)  Line 1482 + 0x1f bytes	C
 	js3250.dll!js_GetProperty(JSContext * cx=0x034d19f8, JSObject * obj=0x03613550, long id=0x037696a8, long * vp=0x0012dc8c)  Line 3250 + 0x30 bytes	C
 	js3250.dll!js_Interpret(JSContext * cx=0x034d19f8, unsigned char * pc=0x036d985b, long * result=0x0012ddd0)  Line 3759 + 0x52f bytes	C
 	js3250.dll!js_Invoke(JSContext * cx=0x034d19f8, unsigned int argc=0x00000001, unsigned int flags=0x00000002)  Line 1347 + 0x13 bytes	C
 	js3250.dll!js_InternalInvoke(JSContext * cx=0x034d19f8, JSObject * obj=0x036dd288, long fval=0x03453f80, unsigned int flags=0x00000000, unsigned int argc=0x00000001, long * argv=0x03816908, long * rval=0x0012df24)  Line 1422 + 0x14 bytes	C
 	js3250.dll!JS_CallFunctionValue(JSContext * cx=0x034d19f8, JSObject * obj=0x036dd288, long fval=0x03453f80, unsigned int argc=0x00000001, long * argv=0x03816908, long * rval=0x0012df24)  Line 4348 + 0x1f bytes	C
 	gklayout.dll!nsJSContext::CallEventHandler(nsISupports * aTarget=0x0381b9a8, void * aScope=0x03614548, void * aHandler=0x03453f80, nsIArray * aargv=0x036c9858, nsIVariant * * arv=0x0012e098)  Line 1655 + 0x21 bytes	C++
 	gklayout.dll!nsJSEventListener::HandleEvent(nsIDOMEvent * aEvent=0x038189a4)  Line 211 + 0x62 bytes	C++
 	gklayout.dll!nsEventListenerManager::HandleEventSubType(nsListenerStruct * aListenerStruct=0x0381bb08, nsIDOMEventListener * aListener=0x0381ba60, nsIDOMEvent * aDOMEvent=0x038189a4, nsISupports * aCurrentTarget=0x0381b9a8, unsigned int aSubType=0x00000008, unsigned int aPhaseFlags=0x00000006)  Line 1648 + 0x12 bytes	C++
 	gklayout.dll!nsEventListenerManager::HandleEvent(nsPresContext * aPresContext=0x0378a740, nsEvent * aEvent=0x0012e940, nsIDOMEvent * * aDOMEvent=0x0012e364, nsISupports * aCurrentTarget=0x0381b9a8, unsigned int aFlags=0x00000006, nsEventStatus * aEventStatus=0x0012e368)  Line 1752	C++
 	gklayout.dll!nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006)  Line 335	C++
 	gklayout.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x00000000)  Line 455	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 401 + 0x12 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x00000000)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x0381b9a8, nsPresContext * aPresContext=0x0378a740, nsEvent * aEvent=0x0012e940, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x0012e93c, nsDispatchingCallback * aCallback=0x00000000, int aTargetIsChromeHandler=0x00000000)  Line 575 + 0x10 bytes	C++
 	gklayout.dll!PresShell::HandleDOMEventWithTarget(nsIContent * aTargetContent=0x0381b9a8, nsEvent * aEvent=0x0012e940, nsEventStatus * aStatus=0x0012e93c)  Line 6279 + 0x1e bytes	C++
 	gklayout.dll!nsButtonBoxFrame::DoMouseClick(nsGUIEvent * aEvent=0x0012f104, int aTrustEvent=0x00000000)  Line 169	C++
 	gklayout.dll!nsButtonBoxFrame::MouseClicked(nsPresContext * aPresContext=0x0378a740, nsGUIEvent * aEvent=0x0012f104)  Line 62 + 0x15 bytes	C++
 	gklayout.dll!nsButtonBoxFrame::HandleEvent(nsPresContext * aPresContext=0x0378a740, nsGUIEvent * aEvent=0x0012f104, nsEventStatus * aEventStatus=0x0012ea6c)  Line 141	C++
 	gklayout.dll!nsPresShellEventCB::HandleEvent(nsEventChainPostVisitor & aVisitor={...})  Line 1498	C++
 	gklayout.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=0x00000006, nsDispatchingCallback * aCallback=0x0012f038)  Line 503	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 401 + 0x12 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f038)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x0381b9a8, nsPresContext * aPresContext=0x0378a740, nsEvent * aEvent=0x0012f104, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x0012f570, nsDispatchingCallback * aCallback=0x0012f038, int aTargetIsChromeHandler=0x00000000)  Line 575 + 0x10 bytes	C++
 	gklayout.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x0012f104, nsIView * aView=0x00000000, nsEventStatus * aStatus=0x0012f570)  Line 6236 + 0x2b bytes	C++
 	gklayout.dll!PresShell::HandleEventWithTarget(nsEvent * aEvent=0x0012f104, nsIFrame * aFrame=0x03870098, nsIContent * aContent=0x0381b9a8, nsEventStatus * aStatus=0x0012f570)  Line 6128 + 0x12 bytes	C++
 	gklayout.dll!nsEventStateManager::CheckForAndDispatchClick(nsPresContext * aPresContext=0x0378a740, nsMouseEvent * aEvent=0x0012f7ac, nsEventStatus * aStatus=0x0012f570)  Line 3011 + 0x40 bytes	C++
 	gklayout.dll!nsEventStateManager::PostHandleEvent(nsPresContext * aPresContext=0x0378a740, nsEvent * aEvent=0x0012f7ac, nsIFrame * aTargetFrame=0x03870098, nsEventStatus * aStatus=0x0012f570, nsIView * aView=0x03742cc0)  Line 1961 + 0x1c bytes	C++
 	gklayout.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x0012f7ac, nsIView * aView=0x03742cc0, nsEventStatus * aStatus=0x0012f570)  Line 6254 + 0x36 bytes	C++
 	gklayout.dll!PresShell::HandlePositionedEvent(nsIView * aView=0x03742cc0, nsIFrame * aTargetFrame=0x03870098, nsGUIEvent * aEvent=0x0012f7ac, nsEventStatus * aEventStatus=0x0012f570)  Line 6111 + 0x14 bytes	C++
 	gklayout.dll!PresShell::HandleEvent(nsIView * aView=0x03742cc0, nsGUIEvent * aEvent=0x0012f7ac, nsEventStatus * aEventStatus=0x0012f570)  Line 5939 + 0x1b bytes	C++
 	gklayout.dll!nsViewManager::HandleEvent(nsView * aView=0x03742cc0, nsPoint aPoint={...}, nsGUIEvent * aEvent=0x0012f7ac, int aCaptured=0x00000000)  Line 1665	C++
 	gklayout.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x0012f7ac, nsEventStatus * aStatus=0x0012f698)  Line 1618 + 0x22 bytes	C++
 	gklayout.dll!HandleEvent(nsGUIEvent * aEvent=0x0012f7ac)  Line 174	C++
 	gkwidget.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x0012f7ac, nsEventStatus & aStatus=nsEventStatus_eIgnore)  Line 1102 + 0xc bytes	C++
 	gkwidget.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x0012f7ac)  Line 1123	C++
 	gkwidget.dll!nsWindow::DispatchMouseEvent(unsigned int aEventType=0x0000012d, unsigned int wParam=0x00000000, long lParam=0x000f0066)  Line 5998 + 0x1a bytes	C++
 	gkwidget.dll!ChildWindow::DispatchMouseEvent(unsigned int aEventType=0x0000012d, unsigned int wParam=0x00000000, long lParam=0x000f0066)  Line 6181	C++
 	gkwidget.dll!nsWindow::ProcessMessage(unsigned int msg=0x00000202, unsigned int wParam=0x00000000, long lParam=0x000f0066, long * aRetValue=0x0012fc18)  Line 4513 + 0x20 bytes	C++
 	gkwidget.dll!nsWindow::WindowProc(HWND__ * hWnd=0x000f04ca, unsigned int msg=0x00000202, unsigned int wParam=0x00000000, long lParam=0x000f0066)  Line 1291 + 0x1d bytes	C++
 	user32.dll!77d48734() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
 	user32.dll!77d48816() 	
 	user32.dll!77d489cd() 	
 	user32.dll!77d49402() 	
 	user32.dll!77d48a10() 	
 	gkwidget.dll!nsAppShell::ProcessNextNativeEvent(int mayWait=0x00000001)  Line 145 + 0xa bytes	C++
 	gkwidget.dll!nsBaseAppShell::DoProcessNextNativeEvent(int mayWait=0x00000001)  Line 136 + 0x11 bytes	C++
 	gkwidget.dll!nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal * thr=0x00398dd8, int mayWait=0x00000001, unsigned int recursionDepth=0x00000000)  Line 231 + 0xf bytes	C++
 	xpcom_core.dll!nsThread::ProcessNextEvent(int mayWait=0x00000001, int * result=0x0012fe04)  Line 472	C++
 	xpcom_core.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x00398dd8, int mayWait=0x00000001)  Line 225 + 0x16 bytes	C++
 	gkwidget.dll!nsBaseAppShell::Run()  Line 153 + 0xc bytes	C++
 	appcomps.dll!nsAppStartup::Run()  Line 219	C++
 	seamonkey.exe!main1(int argc=0x00000003, char * * argv=0x00394d08, nsISupports * nativeApp=0x0096b818)  Line 1238 + 0x22 bytes	C++
 	seamonkey.exe!main(int argc=0x00000003, char * * argv=0x00394d08)  Line 1740 + 0x25 bytes	C++
 	seamonkey.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	seamonkey.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!7c816d4f() 	
 	kernel32.dll!7c8399f3() 	
Severity: normal → critical
Attached patch proposed patchSplinter Review
Don't forget to AddRef ;)
Assignee: dbradley → Olli.Pettay
Status: NEW → ASSIGNED
Attachment #227472 - Flags: superreview?(peterv)
Attachment #227472 - Flags: review?(peterv)
Attachment #227472 - Flags: superreview?(peterv)
Attachment #227472 - Flags: superreview+
Attachment #227472 - Flags: review?(peterv)
Attachment #227472 - Flags: review+
Attachment #227472 - Flags: approval1.8.1?
Fixed on trunk.
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Flags: blocking1.8.1?
Resolution: --- → FIXED
Component: XPConnect → XML
Comment on attachment 227472 [details] [diff] [review]
proposed patch

a=darin on behalf of drivers
Attachment #227472 - Flags: approval1.8.1? → approval1.8.1+
Flags: blocking1.8.1?
Keywords: fixed1.8.1
You need to log in before you can comment on or make changes to this bug.