Esme Povirk (@madewokherd) commented about dlls/gdiplus/graphicspath.c:
/* store path data back */ i = path_list_count(list);
- path->pathdata.Count = 0;
I think it would make more sense to pass in the number of additional points needed. Either that or construct an entirely new GpPathData and then free/replace the old one in case of error.