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

Unified Diff: third_party/WebKit/Source/platform/exported/WebURLResponse.cpp

Issue 2117313002: Remove WebURLResponse::initialize() [revised] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleanups Created 4 years, 5 months 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: third_party/WebKit/Source/platform/exported/WebURLResponse.cpp
diff --git a/third_party/WebKit/Source/platform/exported/WebURLResponse.cpp b/third_party/WebKit/Source/platform/exported/WebURLResponse.cpp
index 7a5173ec1b722ca2137f6a9fa2fb72c8d272dcb1..592c323a83287282fc346f436594320056742881 100644
--- a/third_party/WebKit/Source/platform/exported/WebURLResponse.cpp
+++ b/third_party/WebKit/Source/platform/exported/WebURLResponse.cpp
@@ -39,6 +39,7 @@
#include "public/platform/WebURL.h"
#include "public/platform/WebURLLoadTiming.h"
#include "wtf/Allocator.h"
+#include "wtf/Assertions.h"
#include "wtf/PtrUtil.h"
#include "wtf/RefPtr.h"
#include <memory>
@@ -76,39 +77,54 @@ public:
m_resourceResponse = &m_resourceResponseAllocation;
}
- WebURLResponsePrivateImpl(const WebURLResponsePrivate* p)
- : m_resourceResponseAllocation(*p->m_resourceResponse)
+ WebURLResponsePrivateImpl(const WebURLResponsePrivate& p)
+ : m_resourceResponseAllocation(*p.m_resourceResponse)
{
m_resourceResponse = &m_resourceResponseAllocation;
}
- virtual void dispose() { delete this; }
+ ~WebURLResponsePrivateImpl() override {}
private:
- virtual ~WebURLResponsePrivateImpl() { }
-
ResourceResponse m_resourceResponseAllocation;
};
-void WebURLResponse::initialize()
+WebURLResponse::~WebURLResponse()
+{
+}
+
+WebURLResponse::WebURLResponse()
+ : m_owningPrivate(new WebURLResponsePrivateImpl())
+ , m_private(m_owningPrivate.get())
+{
+}
+
+WebURLResponse::WebURLResponse(const WebURLResponse& r)
+ : m_owningPrivate(new WebURLResponsePrivateImpl(*r.m_private))
+ , m_private(m_owningPrivate.get())
{
- assign(new WebURLResponsePrivateImpl());
}
-void WebURLResponse::reset()
+WebURLResponse::WebURLResponse(const WebURL& url)
+ : WebURLResponse()
{
- assign(0);
+ setURL(url);
}
-void WebURLResponse::assign(const WebURLResponse& r)
+WebURLResponse& WebURLResponse::operator=(const WebURLResponse& r)
{
+ // Copying subclasses that have different m_private ownership semantics
+ // via this operator is just not supported.
+ DCHECK(m_owningPrivate);
+ DCHECK(m_private->m_resourceResponse);
if (&r != this)
- assign(r.m_private ? new WebURLResponsePrivateImpl(r.m_private) : 0);
+ *m_private->m_resourceResponse = *r.m_private->m_resourceResponse;
+ return *this;
}
bool WebURLResponse::isNull() const
{
- return !m_private || m_private->m_resourceResponse->isNull();
+ return m_private->m_resourceResponse->isNull();
}
WebURL WebURLResponse::url() const
@@ -342,17 +358,13 @@ void WebURLResponse::setSecurityDetails(const WebSecurityDetails& webSecurityDet
ResourceResponse& WebURLResponse::toMutableResourceResponse()
{
- ASSERT(m_private);
- ASSERT(m_private->m_resourceResponse);
-
+ DCHECK(m_private->m_resourceResponse);
return *m_private->m_resourceResponse;
}
const ResourceResponse& WebURLResponse::toResourceResponse() const
{
- ASSERT(m_private);
- ASSERT(m_private->m_resourceResponse);
-
+ DCHECK(m_private->m_resourceResponse);
return *m_private->m_resourceResponse;
}
@@ -511,15 +523,10 @@ void WebURLResponse::setExtraData(WebURLResponse::ExtraData* extraData)
m_private->m_resourceResponse->setExtraData(ExtraDataContainer::create(extraData));
}
-void WebURLResponse::assign(WebURLResponsePrivate* p)
+WebURLResponse::WebURLResponse(WebURLResponsePrivate* p)
+ : m_private(p)
{
- // Subclasses may call this directly so a self-assignment check is needed
- // here as well as in the public assign method.
- if (m_private == p)
- return;
- if (m_private)
- m_private->dispose();
- m_private = p;
+ DCHECK(p);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698