There is an incomplete life cycle for cairo_pattern_t objects returned by the call Pattern::createPlatformPattern in PatternCairo.cpp. The returned object is applied directly on the current surface without being deleted after the paint operation was executed. This flaw can generate huge memory leaks if the pattern contains large objects (such as images). This patch completes the life cycle of the problematic objects by calling cairo_destroy_pattern on them after the paint operation.
Created attachment 55691 [details] First patch Repost the patch because the first attempt failed.
Attachment 55691 [details] did not pass style-queue: Failed to run "['WebKitTools/Scripts/check-webkit-style', '--no-squash']" exit_code: 1 WebCore/ChangeLog:6: Line contains tab character. [whitespace/tab] [5] WebCore/ChangeLog:7: Line contains tab character. [whitespace/tab] [5] WebCore/ChangeLog:10: Line contains tab character. [whitespace/tab] [5] Total errors found: 3 in 3 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 55693 [details] Second patch Same patch, no tabs this time.
Comment on attachment 55693 [details] Second patch Makes sense to me! Thanks!
Comment on attachment 55693 [details] Second patch Clearing flags on attachment: 55693 Committed r59548: <http://trac.webkit.org/changeset/59548>
All reviewed patches have been landed. Closing bug.