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 2dda37aad69b8a5edba21466de29ddb3327ae1a2..fb712d22e7bec2192ba31a0066342720b0e4b025 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,8 +77,8 @@ 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; |
} |
@@ -90,25 +91,36 @@ private: |
ResourceResponse m_resourceResponseAllocation; |
}; |
-void WebURLResponse::initialize() |
+WebURLResponse::~WebURLResponse() |
{ |
- assign(new WebURLResponsePrivateImpl()); |
+ m_private->dispose(); |
} |
-void WebURLResponse::reset() |
+WebURLResponse::WebURLResponse() |
+ : m_private(new WebURLResponsePrivateImpl()) |
{ |
- assign(0); |
+} |
+WebURLResponse::WebURLResponse(const WebURLResponse& r) |
+ : m_private(new WebURLResponsePrivateImpl(*r.m_private)) |
+{ |
+} |
+ |
+WebURLResponse::WebURLResponse(const WebURL& url) |
+ : WebURLResponse() |
+{ |
+ setURL(url); |
} |
-void WebURLResponse::assign(const WebURLResponse& r) |
+WebURLResponse& WebURLResponse::operator=(const WebURLResponse& r) |
{ |
if (&r != this) |
- assign(r.m_private ? new WebURLResponsePrivateImpl(r.m_private) : 0); |
+ assign(new WebURLResponsePrivateImpl(*r.m_private)); |
+ return *this; |
} |
bool WebURLResponse::isNull() const |
{ |
- return !m_private || m_private->m_resourceResponse->isNull(); |
+ return m_private->m_resourceResponse->isNull(); |
} |
WebURL WebURLResponse::url() const |
@@ -338,16 +350,16 @@ void WebURLResponse::setSecurityDetails(const WebSecurityDetails& webSecurityDet |
ResourceResponse& WebURLResponse::toMutableResourceResponse() |
{ |
- ASSERT(m_private); |
- ASSERT(m_private->m_resourceResponse); |
+ DCHECK(m_private); |
+ 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); |
+ DCHECK(m_private->m_resourceResponse); |
return *m_private->m_resourceResponse; |
} |
@@ -507,14 +519,19 @@ void WebURLResponse::setExtraData(WebURLResponse::ExtraData* extraData) |
m_private->m_resourceResponse->setExtraData(ExtraDataContainer::create(extraData)); |
} |
+WebURLResponse::WebURLResponse(WebURLResponsePrivate* p) |
+ : m_private(p) |
+{ |
+ DCHECK(p); |
+} |
+ |
void WebURLResponse::assign(WebURLResponsePrivate* p) |
{ |
- // Subclasses may call this directly so a self-assignment check is needed |
- // here as well as in the public assign method. |
+ DCHECK(p); |
+ // Subclasses may perform self-assignment. |
if (m_private == p) |
return; |
- if (m_private) |
- m_private->dispose(); |
+ m_private->dispose(); |
m_private = p; |
} |