head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.8 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.6 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.4 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.2 pkgsrc-2011Q2-base:1.2; locks; strict; comment @# @; 1.2 date 2011.06.09.11.00.02; author drochner; state dead; branches; next 1.1; 1.1 date 2011.04.14.18.11.45; author drochner; state Exp; branches; next ; desc @@ 1.2 log @update to 1.4.1 this switches to the new stable branch (shlib major changed -> PKGREV bumps needed) @ text @$NetBSD: patch-cg,v 1.1 2011/04/14 18:11:45 drochner Exp $ --- WebCore/html/HTMLCanvasElement.cpp.orig 2010-09-10 13:20:33.000000000 +0000 +++ WebCore/html/HTMLCanvasElement.cpp @@@@ -67,7 +67,6 @@@@ const float HTMLCanvasElement::MaxCanvas HTMLCanvasElement::HTMLCanvasElement(const QualifiedName& tagName, Document* doc) : HTMLElement(tagName, doc) , m_size(defaultWidth, defaultHeight) - , m_observer(0) , m_originClean(true) , m_ignoreReset(false) , m_createdImageBuffer(false) @@@@ -77,8 +76,9 @@@@ HTMLCanvasElement::HTMLCanvasElement(con HTMLCanvasElement::~HTMLCanvasElement() { - if (m_observer) - m_observer->canvasDestroyed(this); + HashSet::iterator end = m_observers.end(); + for (HashSet::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasDestroyed(this); } #if ENABLE(DASHBOARD_SUPPORT) @@@@ -123,6 +123,16 @@@@ RenderObject* HTMLCanvasElement::createR return HTMLElement::createRenderer(arena, style); } +void HTMLCanvasElement::addObserver(CanvasObserver* observer) +{ + m_observers.add(observer); +} + +void HTMLCanvasElement::removeObserver(CanvasObserver* observer) +{ + m_observers.remove(observer); +} + void HTMLCanvasElement::setHeight(int value) { setAttribute(heightAttr, String::number(value)); @@@@ -206,9 +216,10 @@@@ void HTMLCanvasElement::willDraw(const F m_dirtyRect.unite(r); ro->repaintRectangle(enclosingIntRect(m_dirtyRect)); } - - if (m_observer) - m_observer->canvasChanged(this, rect); + + HashSet::iterator end = m_observers.end(); + for (HashSet::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasChanged(this, rect); } void HTMLCanvasElement::reset() @@@@ -247,8 +258,9 @@@@ void HTMLCanvasElement::reset() } } - if (m_observer) - m_observer->canvasResized(this); + HashSet::iterator end = m_observers.end(); + for (HashSet::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasResized(this); } void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect& r) @ 1.1 log @add patches from upstream, mostly fixing pointer handling isses which can lead to crashes and possibly code injection (cve-2010-4205, cve-2011-0471, cve-2011-0473, cve-2011-0478, cve-2011-0981, cve-2011-0982) bump PKGREV @ text @d1 1 a1 1 $NetBSD$ @