Esme Povirk (@madewokherd) commented about dlls/gdiplus/pen.c:
- TRACE("(%p, %p, %i)\n", pen, compoundarray, count);
- if (!pen || !dash || count < 2 || count%2 == 1)
- if(!pen || !compoundarray || count < 2 || count%2 == 1 || *compoundarray < 0.0 || *compoundarray > 1.0) return InvalidParameter;
- previousValue = *compoundarray;
- return NotImplemented;
- for(size_t i = 1; i<count; i++)
- {
if((compoundarray[i] < previousValue) || (compoundarray[i] > 1.0))
return InvalidParameter;
previousValue = compoundarray[i];
- }
- heap_free(pen->compound_array);
I've been told in the past that an old array shouldn't be freed until we have successfully allocated a new array to replace it.