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

Unified Diff: Source/web/WebHitTestResult.cpp

Issue 326393003: Oilpan: Change Persistent<> data members to Member<> in HitTestResult. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Follow review comments Created 6 years, 6 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: Source/web/WebHitTestResult.cpp
diff --git a/Source/web/WebHitTestResult.cpp b/Source/web/WebHitTestResult.cpp
index 4210e21dd24b0ca4d89126915667b8034a32950f..6ce2a80152c5e2d25563e9ec433a931fde44685b 100644
--- a/Source/web/WebHitTestResult.cpp
+++ b/Source/web/WebHitTestResult.cpp
@@ -41,52 +41,80 @@ using namespace WebCore;
namespace blink {
+class WebHitTestResultPrivate {
sof 2014/06/18 06:36:32 I think it would be better to have a WebPrivateOwn
+public:
+ WebHitTestResultPrivate(const HitTestResult&);
+ WebHitTestResultPrivate(const WebHitTestResultPrivate&);
+
+ RefPtrWillBePersistent<Node> innerNode;
+ RefPtrWillBePersistent<Element> innerURLElement;
+ LayoutPoint localPoint;
+ KURL absoluteImageURL;
+ KURL absoluteLinkURL;
+ bool isContentEditable;
+};
+
+inline WebHitTestResultPrivate::WebHitTestResultPrivate(const HitTestResult& result)
+ : innerNode(result.innerNode())
+ , innerURLElement(result.URLElement())
+ , localPoint(result.localPoint())
+ , absoluteImageURL(result.absoluteImageURL())
+ , absoluteLinkURL(result.absoluteLinkURL())
+ , isContentEditable(result.isContentEditable())
+{
+}
+
+inline WebHitTestResultPrivate::WebHitTestResultPrivate(const WebHitTestResultPrivate& result)
+ : innerNode(result.innerNode)
+ , innerURLElement(result.innerURLElement)
+ , localPoint(result.localPoint)
+ , absoluteImageURL(result.absoluteImageURL)
+ , absoluteLinkURL(result.absoluteLinkURL)
+ , isContentEditable(result.isContentEditable)
+{
+}
+
WebNode WebHitTestResult::node() const
{
- return WebNode(m_private->innerNode());
+ return WebNode(m_private->innerNode);
}
WebPoint WebHitTestResult::localPoint() const
{
- return roundedIntPoint(m_private->localPoint());
+ return roundedIntPoint(m_private->localPoint);
}
WebElement WebHitTestResult::urlElement() const
{
- return WebElement(m_private->URLElement());
+ return WebElement(m_private->innerURLElement);
}
WebURL WebHitTestResult::absoluteImageURL() const
{
- return m_private->absoluteImageURL();
+ return m_private->absoluteImageURL;
}
WebURL WebHitTestResult::absoluteLinkURL() const
{
- return m_private->absoluteLinkURL();
+ return m_private->absoluteLinkURL;
}
bool WebHitTestResult::isContentEditable() const
{
- return m_private->isContentEditable();
+ return m_private->isContentEditable;
}
WebHitTestResult::WebHitTestResult(const HitTestResult& result)
{
- m_private.reset(new HitTestResult(result));
+ m_private.reset(new WebHitTestResultPrivate(result));
}
WebHitTestResult& WebHitTestResult::operator=(const HitTestResult& result)
{
- m_private.reset(new HitTestResult(result));
+ m_private.reset(new WebHitTestResultPrivate(result));
return *this;
}
-WebHitTestResult::operator HitTestResult() const
-{
- return *m_private.get();
-}
-
bool WebHitTestResult::isNull() const
{
return !m_private.get();
@@ -94,7 +122,10 @@ bool WebHitTestResult::isNull() const
void WebHitTestResult::assign(const WebHitTestResult& info)
{
- m_private.reset(new HitTestResult(info));
+ if (info.isNull())
+ m_private.reset(0);
+ else
+ m_private.reset(new WebHitTestResultPrivate(*info.m_private.get()));
}
void WebHitTestResult::reset()

Powered by Google App Engine
This is Rietveld 408576698