--- 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)