Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1135)

Unified Diff: Source/modules/crypto/CryptoResultImpl.cpp

Issue 783423003: Make ScriptPromiseResolver RefCountedWillBeRefCountedGarbageCollected. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/crypto/CryptoResultImpl.cpp
diff --git a/Source/modules/crypto/CryptoResultImpl.cpp b/Source/modules/crypto/CryptoResultImpl.cpp
index dc0b04082cf18c07b7d5437715b08167a377a7aa..995e5209d84209e71bfca9c7f7ed512191f184f1 100644
--- a/Source/modules/crypto/CryptoResultImpl.cpp
+++ b/Source/modules/crypto/CryptoResultImpl.cpp
@@ -62,9 +62,9 @@ static void rejectWithTypeError(const String& errorDetails, ScriptPromiseResolve
class CryptoResultImpl::Resolver final : public ScriptPromiseResolver {
public:
- static PassRefPtr<ScriptPromiseResolver> create(ScriptState* scriptState, CryptoResultImpl* result)
+ static PassRefPtrWillBeRawPtr<ScriptPromiseResolver> create(ScriptState* scriptState, CryptoResultImpl* result)
{
- RefPtr<Resolver> resolver = adoptRef(new Resolver(scriptState, result));
+ RefPtrWillBeRawPtr<Resolver> resolver = adoptRefWillBeNoop(new Resolver(scriptState, result));
resolver->suspendIfNeeded();
resolver->keepAliveWhilePending();
return resolver.release();
@@ -78,6 +78,11 @@ public:
ScriptPromiseResolver::stop();
}
+ virtual void trace(Visitor* visitor) override
+ {
+ ScriptPromiseResolver::trace(visitor);
+ }
+
private:
Resolver(ScriptState* scriptState, CryptoResultImpl* result)
: ScriptPromiseResolver(scriptState)
@@ -116,22 +121,23 @@ void CryptoResultImpl::clearResolver()
m_resolver = nullptr;
}
-PassRefPtr<CryptoResultImpl> CryptoResultImpl::create(ScriptState* scriptState)
+PassRefPtrWillBeRawPtr<CryptoResultImpl> CryptoResultImpl::create(ScriptState* scriptState)
{
- return adoptRef(new CryptoResultImpl(scriptState));
+ return adoptRefWillBeNoop(new CryptoResultImpl(scriptState));
}
void CryptoResultImpl::completeWithError(WebCryptoErrorType errorType, const WebString& errorDetails)
{
if (m_resolver) {
+ ScriptPromiseResolver* resolver = m_resolver;
haraken 2014/12/16 13:52:45 This is unnecessary.
tasak 2014/12/17 08:40:08 Done.
ExceptionCode ec = webCryptoErrorToExceptionCode(errorType);
// Handle TypeError separately, as it cannot be created using
// DOMException.
if (ec == V8TypeError)
- rejectWithTypeError(errorDetails, m_resolver);
+ rejectWithTypeError(errorDetails, resolver);
else
- m_resolver->reject(DOMException::create(ec, errorDetails));
+ resolver->reject(DOMException::create(ec, errorDetails));
}
clearResolver();
}

Powered by Google App Engine
This is Rietveld 408576698