Created attachment 112093 [details] quick hack The problem is that with a paginated surface (pdf, svg) _cairo_recording_surface_break_self_copy_loop flushes the internal recording surface, but not the parent which is the snapshot_of of the paint source pattern. When later detach_snapshots is invoked for the recording_surface it creates a paint command that uses the same recording surface as source and this results in a memory leak for the pdf backend and an infinite recursion for the svg12 backend. The attached quick hack flushes the pattern->surface before adding the paint-command to the recording surface commands. Reproduction step (cd test && CAIRO_TEST_TARGET=pdf,svg12 .libs/cairo-test-suite -f self-copy)
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/260.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.