webengine/osswebengine/JavaScriptCore/bindings/c/c_class.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
--- a/webengine/osswebengine/JavaScriptCore/bindings/c/c_class.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/bindings/c/c_class.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -53,8 +53,25 @@
 }
 
 typedef HashMap<NPClass*, CClass*> ClassesByIsAMap;
+typedef HashMap<NPClass*, CClass*>::iterator ClassesByIsAMapIt;
 static ClassesByIsAMap* classesByIsA = 0;
 
+struct cleanupClassesByIsA {
+    ~cleanupClassesByIsA() {
+        if( classesByIsA ) {
+            ClassesByIsAMapIt end = classesByIsA->end();
+            for( ClassesByIsAMapIt it=classesByIsA->begin(); it!=end; ++it ) {
+                CClass* obj = (*it).second;
+                delete obj;
+            }
+            classesByIsA->clear();
+            delete classesByIsA;
+            classesByIsA = 0;
+        }
+    }
+};
+struct cleanupClassesByIsA cleanupClassIsAHash;
+
 CClass* CClass::classForIsA(NPClass* isa)
 {
     if (!classesByIsA)