--- a/webengine/osswebengine/WebCore/rendering/RenderWidget.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RenderWidget.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -41,12 +41,27 @@
using namespace EventNames;
+static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap;
+
static HashMap<const Widget*, RenderWidget*>& widgetRendererMap()
{
- static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
+ if( !staticWidgetRendererMap ) {
+ staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
+ }
return *staticWidgetRendererMap;
}
+struct renderMapCleaner {
+ ~renderMapCleaner() {
+ if( staticWidgetRendererMap ) {
+ staticWidgetRendererMap->clear();
+ delete staticWidgetRendererMap;
+ staticWidgetRendererMap = 0;
+ }
+ }
+};
+struct renderMapCleaner renderMapClean;
+
RenderWidget::RenderWidget(Node* node)
: RenderReplaced(node)
, m_widget(0)