The last 2 merged DFAs are not minimized by DFACombiner
authorbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Jun 2015 03:37:35 +0000 (03:37 +0000)
committerbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Jun 2015 03:37:35 +0000 (03:37 +0000)
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04

* contentextensions/DFACombiner.cpp:
(WebCore::ContentExtensions::DFACombiner::combineDFAs):
I introduced a bug when I made minimization conditional: the last merge
does not minimize if we do not reach the minimum size.

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

Source/WebCore/ChangeLog
Source/WebCore/contentextensions/DFACombiner.cpp

index 8995fcc..6bfa76f 100644 (file)
@@ -1,3 +1,12 @@
+2015-06-04  Benjamin Poulain  <bpoulain@apple.com>
+
+        The last 2 merged DFAs are not minimized by DFACombiner
+
+        * contentextensions/DFACombiner.cpp:
+        (WebCore::ContentExtensions::DFACombiner::combineDFAs):
+        I introduced a bug when I made minimization conditional: the last merge
+        does not minimize if we do not reach the minimum size.
+
 2015-06-04  Brent Fulgham  <bfulgham@apple.com>
 
         Latching algorithm in findEnclosingOverflowScroll is broken
index 93f6468..3753c6f 100644 (file)
@@ -248,7 +248,7 @@ void DFACombiner::combineDFAs(unsigned minimumSize, std::function<void(DFA&&)> h
         DFAMerger dfaMerger(a, b);
         DFA c = dfaMerger.merge();
 
-        if (c.graphSize() > minimumSize) {
+        if (c.graphSize() > minimumSize || m_dfas.isEmpty()) {
             // Minimizing is somewhat expensive. We only do it in bulk when we reach the threshold
             // to reduce the load.
             c.minimize();