Bug 95909
Summary: | Refactoring SVG's Path datastructures | ||
---|---|---|---|
Product: | WebKit | Reporter: | Philip Rogers <pdr> |
Component: | SVG | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | fmalita, krit, schenney, stephen.bannasch, zimmermann |
Priority: | P2 | ||
Version: | 420+ | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Philip Rogers
SVGPathByteStream is a datastructure with the following performance characteristics:
insert - O(n)
append - O(n)
replace - O(n)
modify any element - O(n)
In SVGPathUtilities we have methods for syncing SVGPathSegLists, SVGPathByteStream, and the string representation of a path. Modifying a PathSeg from a PathSegList requires rebuilding the entire byte stream (with the possible exception of append, see wkbug.com/94048). Once we have a PathSegList, updating the bytestream does not seem like the right approach. Instead, we should use a vector-backed datastructure (insert O(1), append O(1), replace O(1), modify O(1)) or go directly to the Path data itself.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |