diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/css/CSSCanvasValue.cpp | 23 |
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 |