From 5b70eb297b6392a0de2eb749b96facfa75997c70 Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Wed, 19 Jun 2013 20:20:52 -0700 Subject: [PATCH] Back out c50503ce8669 (bug 883495) for still leaking CLOSED TREE --- netwerk/dns/nsDNSService2.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp index 55d97845281e..c919da3b5e42 100644 --- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -255,11 +255,7 @@ public: uint16_t af) : mResolver(res) , mHost(host) - // Sometimes aListener is a main-thread only object like XPCWrappedJS, and - // sometimes it's a threadsafe object like nsSocketTransport. Use a main- - // thread pointer holder, but disable strict enforcement of thread invariants. - // The AddRef implementation of XPCWrappedJS will assert if we go wrong here. - , mListener(new nsMainThreadPtrHolder(listener, false)) + , mListener(listener) , mFlags(flags) , mAF(af) {} ~nsDNSAsyncRequest() {} @@ -272,7 +268,7 @@ public: nsRefPtr mResolver; nsCString mHost; // hostname we're resolving - nsMainThreadPtrHandle mListener; + nsCOMPtr mListener; uint16_t mFlags; uint16_t mAF; }; @@ -296,6 +292,7 @@ nsDNSAsyncRequest::OnLookupComplete(nsHostResolver *resolver, MOZ_EVENT_TRACER_DONE(this, "net::dns::lookup"); mListener->OnLookupComplete(this, rec, status); + mListener = nullptr; // release the reference to ourselves that was added before we were // handed off to the host resolver.