webengine/osswebengine/WebCore/css/cssstyleselector.cpp
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 68 92a765b5b3e7
--- a/webengine/osswebengine/WebCore/css/cssstyleselector.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/css/cssstyleselector.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -22,7 +22,6 @@
  * Boston, MA 02110-1301, USA.
  */
 
-#include "config.h"
 #include "CSSStyleSelector.h"
 
 #include "CSSBorderImageValue.h"
@@ -225,6 +224,14 @@
 static CSSStyleSelector::Encodedurl *currentEncodedURL = 0;
 static PseudoState pseudoState;
 
+struct defaultStyleNACleaner {
+    ~defaultStyleNACleaner() {
+        delete CSSStyleSelector::styleNotYetAvailable;
+        CSSStyleSelector::styleNotYetAvailable = 0;
+    }
+};
+struct defaultStyleNACleaner styleNACleaner;
+
 CSSStyleSelector::CSSStyleSelector(Document* doc, const String& userStyleSheet, StyleSheetList *styleSheets, bool _strictParsing)
 {
     init();
@@ -3626,7 +3633,15 @@
         if (id == CSS_VAL_NONE)
             appearance = NoAppearance;
         else
+#if PLATFORM ( SYMBIAN )
+        {
+        if (id == CSS_VAL_SEARCHFIELD)
+            id = CSS_VAL_TEXTFIELD;  
+#endif
             appearance = EAppearance(id - CSS_VAL_CHECKBOX + 1);
+#if PLATFORM ( SYMBIAN )
+        }
+#endif
         style->setAppearance(appearance);
         return;
     }
@@ -4990,4 +5005,46 @@
     return m_selectorAttrs.contains(attrname.impl());
 }
 
+#if PLATFORM(SYMBIAN)
+void CSSStyleSelector::deleteDefaultStyle()
+{
+    delete defaultStyle;
+    defaultStyle = 0;
+    delete defaultQuirksStyle;
+    defaultQuirksStyle = 0;
+    delete defaultPrintStyle;
+    defaultPrintStyle = 0;
+    delete defaultViewSourceStyle;
+    defaultViewSourceStyle = 0;
+
+    defaultSheet->deref();
+//    delete defaultSheet;
+//    defaultSheet = 0;
+
+    // styleNotYetAvailable->deref();
+    //goes to overridden delete operator but calls destructor
+    delete styleNotYetAvailable;
+    //release cell allocated because overridder delete does not do that.
+    free(styleNotYetAvailable);
+    styleNotYetAvailable = 0;
+
+    quirksSheet->deref();
+    // delete quirksSheet;
+    // quirksSheet = 0;
+
+    viewSourceSheet->deref();
+    // delete viewSourceSheet;
+    // viewSourceSheet = 0;
+
+#if ENABLE(SVG)
+    svgSheet->deref();
+    // delete svgSheet;
+    // svgSheet = 0;
+#endif
+
+    //*currentEncodedURL->deref(); //static CSSStyleSelector::Encodedurl *currentEncodedURL = 0;
+    pseudoState = PseudoUnknown;
+}
+#endif
+
 } // namespace WebCore