Bug 1240241 - Don't recurse infinitely in FilterCachedColorModels::ForColorModel if the original filter node was null. r=roc

This commit is contained in:
Markus Stange 2016-01-20 22:45:58 +01:00
parent 82825fdb0c
commit d84a3a4a78

View File

@ -310,6 +310,13 @@ FilterCachedColorModels::FilterCachedColorModels(DrawTarget* aDT,
already_AddRefed<FilterNode>
FilterCachedColorModels::ForColorModel(ColorModel aColorModel)
{
if (aColorModel == mOriginalColorModel) {
// Make sure to not call WrapForColorModel if our original filter node was
// null, because then we'd get an infinite recursion.
RefPtr<FilterNode> filter = mFilterForColorModel[mOriginalColorModel.ToIndex()];
return filter.forget();
}
if (!mFilterForColorModel[aColorModel.ToIndex()]) {
mFilterForColorModel[aColorModel.ToIndex()] = WrapForColorModel(aColorModel);
}