https://bugs.winehq.org/show_bug.cgi?id=51139
--- Comment #12 from Henri Verbeet hverbeet@gmail.com --- (In reply to ms from comment #9)
in d2d_geometry_resolve_beziers() the innermost of 3 while loops never terminates, because there's a point that has x and y both NaN.
the NaN was created in d2d_geometry_add_bezier_line_intersections() because "t" is NaN because it's created by dividing 0 by 0.
unfortunately am rather clueless about graphics, so have only found a workaround "if (isnan(t)) {return TRUE;}" that prevents the crash, the resulting images are obviously wrong as most of the text is missing.
Does it also help if you replace "if (isnan(t)) return TRUE;" with "if (isnan(t)) t = 0.0f;"?
In any case, from the log it looks like the reason we end up with "t" being NaN is that we have a degenerate (i.e., zero-length) line segment that intersects the curve segment. It would be good to figure out what kind of geometry reproduces that, so that we can add a test case for it.