[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.0/kdelibs/khtml/rendering
From: Maks Orlovich <maksim () kde ! org>
Date: 2008-01-14 2:25:54
Message-ID: 1200277554.723860.22645.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 761088 by orlovich:
Permit RenderWidget subclasses to defer memory management of the widget
to the DOM. Needed for iframe's, etc., to be managed by the DOM
and not the renderer
M +5 -2 render_replaced.cpp
M +4 -0 render_replaced.h
--- branches/KDE/4.0/kdelibs/khtml/rendering/render_replaced.cpp #761087:761088
@@ -148,6 +148,7 @@
m_resizePending = false;
m_discardResizes = false;
m_needsMask = false;
+ m_ownsWidget = true;
// this is no real reference counting, its just there
// to make sure that we're not deleted while we're recursed
@@ -187,7 +188,8 @@
if(m_widget) {
m_widget->hide();
- m_widget->deleteLater();
+ if (m_ownsWidget)
+ m_widget->deleteLater();
}
}
@@ -262,7 +264,8 @@
m_widget->removeEventFilter(this);
disconnect( m_widget, SIGNAL( destroyed()), this, SLOT( \
slotWidgetDestructed())); m_widget->hide();
- m_widget->deleteLater(); //Might happen due to event on the widget, so \
be careful + if (m_ownsWidget)
+ m_widget->deleteLater(); //Might happen due to event on the widget, \
so be careful m_widget = 0;
}
m_widget = widget;
--- branches/KDE/4.0/kdelibs/khtml/rendering/render_replaced.h #761087:761088
@@ -118,6 +118,9 @@
void slotWidgetDestructed();
protected:
+ // Should be called by subclasses to ensure we don't memory-manage this..
+ void setDoesNotOwnWidget() { m_ownsWidget = false; }
+
virtual void paintBoxDecorations(PaintInfo& paintInfo, int _tx, int _ty);
virtual void paintBackground(QPainter *p, const QColor& c, const \
BackgroundLayer* bgLayer, QRect clipr, int _tx, int _ty, int w, int height);
@@ -154,6 +157,7 @@
bool m_resizePending;
bool m_discardResizes;
bool m_needsMask;
+ bool m_ownsWidget;
public:
virtual int borderTop() const { return canHaveBorder() ? \
RenderReplaced::borderTop() : 0; }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic