webengine/osswebengine/WebCore/rendering/RenderWidget.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
equal deleted inserted replaced
1:7c90e6132015 5:10e98eab6f85
    39 
    39 
    40 namespace WebCore {
    40 namespace WebCore {
    41 
    41 
    42 using namespace EventNames;
    42 using namespace EventNames;
    43 
    43 
       
    44 static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap;
       
    45 
    44 static HashMap<const Widget*, RenderWidget*>& widgetRendererMap()
    46 static HashMap<const Widget*, RenderWidget*>& widgetRendererMap()
    45 {
    47 {
    46     static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
    48     if( !staticWidgetRendererMap ) {
       
    49         staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
       
    50     }
    47     return *staticWidgetRendererMap;
    51     return *staticWidgetRendererMap;
    48 }
    52 }
       
    53 
       
    54 struct renderMapCleaner {
       
    55     ~renderMapCleaner() {
       
    56         if( staticWidgetRendererMap ) {
       
    57             staticWidgetRendererMap->clear();
       
    58             delete staticWidgetRendererMap;
       
    59             staticWidgetRendererMap = 0;
       
    60         }
       
    61     }
       
    62 };
       
    63 struct renderMapCleaner renderMapClean;
    49 
    64 
    50 RenderWidget::RenderWidget(Node* node)
    65 RenderWidget::RenderWidget(Node* node)
    51       : RenderReplaced(node)
    66       : RenderReplaced(node)
    52       , m_widget(0)
    67       , m_widget(0)
    53       , m_refCount(0)
    68       , m_refCount(0)