summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp b/chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp
index ce46f047472..d770846aa40 100644
--- a/chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp
+++ b/chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp
@@ -33,8 +33,10 @@ namespace WebCore {
CSSCanvasValue::~CSSCanvasValue()
{
+#if !ENABLE(OILPAN)
if (m_element)
- m_element->removeObserver(&m_canvasObserver);
+ m_element->removeObserver(m_canvasObserver.get());
+#endif
}
String CSSCanvasValue::customCSSText() const
@@ -61,11 +63,13 @@ void CSSCanvasValue::canvasResized(HTMLCanvasElement*)
const_cast<RenderObject*>(curr->key)->imageChanged(static_cast<WrappedImagePtr>(this));
}
+#if !ENABLE(OILPAN)
void CSSCanvasValue::canvasDestroyed(HTMLCanvasElement* element)
{
ASSERT_UNUSED(element, element == m_element);
- m_element = 0;
+ m_element = nullptr;
}
+#endif
IntSize CSSCanvasValue::fixedSize(const RenderObject* renderer)
{
@@ -77,10 +81,8 @@ IntSize CSSCanvasValue::fixedSize(const RenderObject* renderer)
HTMLCanvasElement* CSSCanvasValue::element(Document* document)
{
if (!m_element) {
- m_element = document->getCSSCanvasElement(m_name);
- if (!m_element)
- return 0;
- m_element->addObserver(&m_canvasObserver);
+ m_element = &document->getCSSCanvasElement(m_name);
+ m_element->addObserver(m_canvasObserver.get());
}
return m_element;
}
@@ -90,7 +92,7 @@ PassRefPtr<Image> CSSCanvasValue::image(RenderObject* renderer, const IntSize& /
ASSERT(clients().contains(renderer));
HTMLCanvasElement* elt = element(&renderer->document());
if (!elt || !elt->buffer())
- return 0;
+ return nullptr;
return elt->copiedImage();
}
@@ -99,4 +101,11 @@ bool CSSCanvasValue::equals(const CSSCanvasValue& other) const
return m_name == other.m_name;
}
+void CSSCanvasValue::traceAfterDispatch(Visitor* visitor)
+{
+ visitor->trace(m_canvasObserver);
+ visitor->trace(m_element);
+ CSSImageGeneratorValue::traceAfterDispatch(visitor);
+}
+
} // namespace WebCore