]> spindle.queued.net Git - midori/commitdiff
Speed-up JS generator function in Adblock
authorPaweł Forysiuk <tuxator@o2.pl>
Mon, 6 Jun 2011 16:47:19 +0000 (12:47 -0400)
committerChristian Dywan <christian@twotoasts.de>
Wed, 8 Jun 2011 18:02:48 +0000 (20:02 +0200)
extensions/adblock.c

index 47fb5b52a51670b0bb9722c6dd796acb5b54d2f5..f271df22f244e2d761156ffaec17f6dd2f359325 100644 (file)
@@ -720,10 +720,7 @@ static gchar*
 adblock_prepare_urihider_js (GList* uris)
 {
     GList* li = NULL;
-    gchar* out;
-    gchar* cmd = g_strdup ("");
-    gchar* tmp;
-    const char *js =
+    GString* js = g_string_new (
         "(function() {"
         "function getElementsByAttribute (strTagName, strAttributeName, arrAttributeValue) {"
         "    var arrElements = document.getElementsByTagName (strTagName);"
@@ -749,20 +746,14 @@ adblock_prepare_urihider_js (GList* uris)
         "        oElements[i].style.height = '0';"
         "    }"
         "};"
-        "var uris=new Array ();"
-        "%s"
-        "hideElementBySrc (uris);"
-        "})();";
+        "var uris=new Array ();");
 
     for (li = uris; li != NULL; li = g_list_next (li))
-    {
-        tmp = g_strdup_printf ("uris.push ('%s');%s", (gchar*)li->data, cmd);
-        katze_assign (cmd, tmp);
-    }
-    out = g_strdup_printf (js, cmd);
-    g_free (cmd);
+        g_string_append_printf (js, "uris.push ('%s');", (gchar*)li->data);
+
+    g_string_append (js, "hideElementBySrc (uris);})();");
 
-    return out;
+    return g_string_free (js, FALSE);
 }
 
 static void