https://bugs.winehq.org/show_bug.cgi?id=51139 --- Comment #12 from Henri Verbeet <hverbeet(a)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. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.