author | Ryan VanderMeulen <ryanvm@gmail.com> |
Tue, 18 Jun 2013 13:02:40 -0400 | |
changeset 135491 | cc111858010529986fd95af0b776d4f4c96c91f8 |
parent 135490 | 2a1e3764868afccdf0892cf4dcbebc89a968494f |
child 135492 | dd9245e218125a081c46d35dede11d13f704866f |
push id | 24841 |
push user | ryanvm@gmail.com |
push date | Tue, 18 Jun 2013 23:04:53 +0000 |
treeherder | mozilla-central@d2a7cfa34154 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 883495 |
milestone | 24.0a1 |
backs out | fb43bd87db39da6be071dceaf13c191cfa1cd599 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -250,30 +250,30 @@ public: nsDNSAsyncRequest(nsHostResolver *res, const nsACString &host, nsIDNSListener *listener, uint16_t flags, uint16_t af) : mResolver(res) , mHost(host) - , mListener(new nsMainThreadPtrHolder<nsIDNSListener>(listener)) + , mListener(listener) , mFlags(flags) , mAF(af) {} ~nsDNSAsyncRequest() {} void OnLookupComplete(nsHostResolver *, nsHostRecord *, nsresult); // Returns TRUE if the DNS listener arg is the same as the member listener // Used in Cancellations to remove DNS requests associated with a // particular hostname and nsIDNSListener bool EqualsAsyncListener(nsIDNSListener *aListener); nsRefPtr<nsHostResolver> mResolver; nsCString mHost; // hostname we're resolving - nsMainThreadPtrHandle<nsIDNSListener> mListener; + nsCOMPtr<nsIDNSListener> mListener; uint16_t mFlags; uint16_t mAF; }; void nsDNSAsyncRequest::OnLookupComplete(nsHostResolver *resolver, nsHostRecord *hostRecord, nsresult status) @@ -287,16 +287,17 @@ nsDNSAsyncRequest::OnLookupComplete(nsHo rec = new nsDNSRecord(hostRecord); if (!rec) status = NS_ERROR_OUT_OF_MEMORY; } 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. NS_RELEASE_THIS(); } bool nsDNSAsyncRequest::EqualsAsyncListener(nsIDNSListener *aListener)