Clean up allocations in adblock_add_url_pattern
This commit is contained in:
parent
249619a631
commit
ffd3026baf
1 changed files with 14 additions and 11 deletions
|
@ -1128,31 +1128,35 @@ adblock_add_url_pattern (gchar* prefix,
|
||||||
|
|
||||||
data = g_strsplit (line, "$", -1);
|
data = g_strsplit (line, "$", -1);
|
||||||
if (!data || !data[0])
|
if (!data || !data[0])
|
||||||
|
{
|
||||||
|
g_strfreev (data);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (data[1] && data[2])
|
if (data[1] && data[2])
|
||||||
{
|
{
|
||||||
patt = g_strconcat (data[0], data[1], NULL);
|
patt = g_strconcat (data[0], data[1], NULL);
|
||||||
opts = g_strconcat (type, ",", data[2], NULL);
|
opts = g_strconcat (type, ",", data[2], NULL);
|
||||||
g_strfreev (data);
|
|
||||||
}
|
}
|
||||||
else if (data[1])
|
else if (data[1])
|
||||||
{
|
{
|
||||||
patt = data[0];
|
patt = data[0];
|
||||||
opts = g_strconcat (type, ",", data[1], NULL);
|
opts = g_strconcat (type, ",", data[1], NULL);
|
||||||
g_free (data[1]);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
patt = data[0];
|
patt = data[0];
|
||||||
opts = g_strdup (type);
|
opts = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_regex_match_simple ("subdocument", opts,
|
if (g_regex_match_simple ("subdocument", opts,
|
||||||
G_REGEX_CASELESS, G_REGEX_MATCH_NOTEMPTY))
|
G_REGEX_CASELESS, G_REGEX_MATCH_NOTEMPTY))
|
||||||
{
|
{
|
||||||
g_free (patt);
|
g_strfreev (data);
|
||||||
g_free (opts);
|
if (data[1] && data[2])
|
||||||
|
g_free (patt);
|
||||||
|
if (data[1])
|
||||||
|
g_free (opts);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1161,14 +1165,13 @@ adblock_add_url_pattern (gchar* prefix,
|
||||||
adblock_debug ("got: %s opts %s", format_patt->str, opts);
|
adblock_debug ("got: %s opts %s", format_patt->str, opts);
|
||||||
should_free = adblock_compile_regexp (format_patt, opts);
|
should_free = adblock_compile_regexp (format_patt, opts);
|
||||||
|
|
||||||
g_free (opts);
|
g_strfreev (data);
|
||||||
g_free (patt);
|
if (data[1] && data[2])
|
||||||
|
g_free (patt);
|
||||||
|
if (data[1])
|
||||||
|
g_free (opts);
|
||||||
|
|
||||||
#if G_ENABLE_DEBUG
|
|
||||||
return g_string_free (format_patt, FALSE);
|
|
||||||
#else
|
|
||||||
return g_string_free (format_patt, should_free);
|
return g_string_free (format_patt, should_free);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
Loading…
Reference in a new issue