Index: compiled/filter/Filter.cpp |
=================================================================== |
--- a/compiled/filter/Filter.cpp |
+++ b/compiled/filter/Filter.cpp |
@@ -145,17 +145,20 @@ |
if (static_cast<ElemHideEmulationFilter*>(filter.get())->IsGeneric()) |
filter = FilterPtr(new InvalidFilter(text, u"filter_elemhideemulation_nodomain"_str), false); |
break; |
default: |
// This should never happen but just in case |
return nullptr; |
} |
- // This is a hack: we looked up the entry using text but create it using |
- // filter->mText. This works because both are equal at this point. However, |
- // text refers to a temporary buffer which will go away. |
enter_context("Adding to known filters"); |
- knownFilter.assign(filter->mText, filter.get()); |
+ if (text != filter->mText) |
+ knownFilters[filter->mText] = filter.get(); |
+ else |
+ // This is a hack: we looked up the entry using text but create it using |
+ // filter->mText. This works because both are equal at this point. However, |
+ // text refers to a temporary buffer which will go away. |
+ knownFilter.assign(filter->mText, filter.get()); |
exit_context(); |
return filter.release(); |
} |