webengine/osswebengine/JavaScriptCore/bindings/npruntime.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
--- a/webengine/osswebengine/JavaScriptCore/bindings/npruntime.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/bindings/npruntime.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -41,14 +41,26 @@
 
 typedef HashMap<RefPtr<KJS::UString::Rep>, PrivateIdentifier*> StringIdentifierMap;
 
+static StringIdentifierMap* stringIdentifierMap = 0;
+    
 static StringIdentifierMap* getStringIdentifierMap()
 {
-    static StringIdentifierMap* stringIdentifierMap = 0;
     if (!stringIdentifierMap)
         stringIdentifierMap = new StringIdentifierMap;
     return stringIdentifierMap;
 }
 
+struct cleanupStringIdentifier {
+    ~cleanupStringIdentifier() {
+        if( stringIdentifierMap ) {
+            stringIdentifierMap->clear();
+            delete stringIdentifierMap;
+            stringIdentifierMap = 0;
+        }
+    }
+};
+struct cleanupStringIdentifier cleanup;
+
 typedef HashMap<int, PrivateIdentifier*> IntIdentifierMap;
 
 static IntIdentifierMap* getIntIdentifierMap()