Fix a couple more CSS leaks
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Sep 2013 17:18:14 +0000 (17:18 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Sep 2013 17:18:14 +0000 (17:18 +0000)
https://bugs.webkit.org/show_bug.cgi?id=121683

Reviewed by Alexey Proskuryakov.

* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::viewSourceStyle): Put the result of the
parseUASheet into a global variable so it doesn't show up as a storage leak.

* css/CSSGrammar.y.in: Added a missing adoptRef. This was leaking any rule
we parsed individually.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/css/CSSDefaultStyleSheets.cpp
Source/WebCore/css/CSSGrammar.y.in

index 5bf1de3..345d9cb 100644 (file)
@@ -1,3 +1,17 @@
+2013-09-20  Darin Adler  <darin@apple.com>
+
+        Fix a couple more CSS leaks
+        https://bugs.webkit.org/show_bug.cgi?id=121683
+
+        Reviewed by Alexey Proskuryakov.
+
+        * css/CSSDefaultStyleSheets.cpp:
+        (WebCore::CSSDefaultStyleSheets::viewSourceStyle): Put the result of the
+        parseUASheet into a global variable so it doesn't show up as a storage leak.
+
+        * css/CSSGrammar.y.in: Added a missing adoptRef. This was leaking any rule
+        we parsed individually.
+
 2013-09-20  Bem Jones-Bey  <bjonesbe@adobe.com>
 
         Simplify the ShapeOutsideInfo and ShapeInfo interfaces
index 51c05d3..01055ff 100644 (file)
@@ -148,8 +148,9 @@ void CSSDefaultStyleSheets::loadSimpleDefaultStyle()
 RuleSet* CSSDefaultStyleSheets::viewSourceStyle()
 {
     if (!defaultViewSourceStyle) {
+        static StyleSheetContents* viewSourceStyleSheet = parseUASheet(sourceUserAgentStyleSheet, sizeof(sourceUserAgentStyleSheet));
         defaultViewSourceStyle = RuleSet::create().leakPtr();
-        defaultViewSourceStyle->addRulesFromSheet(parseUASheet(sourceUserAgentStyleSheet, sizeof(sourceUserAgentStyleSheet)), screenEval());
+        defaultViewSourceStyle->addRulesFromSheet(viewSourceStyleSheet, screenEval());
     }
     return defaultViewSourceStyle;
 }
index 3d1c3c7..9c1df3f 100644 (file)
@@ -328,7 +328,7 @@ stylesheet:
 #endif
   ;
 
-webkit_rule: WEBKIT_RULE_SYM '{' maybe_space valid_rule maybe_space '}' { parser->m_rule = $4; } ;
+webkit_rule: WEBKIT_RULE_SYM '{' maybe_space valid_rule maybe_space '}' { parser->m_rule = adoptRef($4); } ;
 
 webkit_keyframe_rule: WEBKIT_KEYFRAME_RULE_SYM '{' maybe_space keyframe_rule maybe_space '}' { parser->m_keyframe = adoptRef($4); } ;