Esme Povirk (@madewokherd) commented about dlls/gdiplus/image.c:
- if (GdipGetEffectParameterSize(effect, ¶msize) != Ok)
return InvalidParameter;- switch (effect->type)
- {
- case BlurEffect:
if (paramsize != size)return InvalidParameter;effect->p.blurparams = malloc(size);memcpy(effect->p.blurparams, params, size);break;- case SharpenEffect:
if (paramsize != size)return InvalidParameter;effect->p.sharpenparams = malloc(size);memcpy(effect->p.sharpenparams, params, size);
I don't think it makes sense to duplicate this for each type. The member of the union may be different, but the code is equivalent.