Bug 184670

Summary: Make all the items of the SVG tear-off properties list be RefCounted objects
Product: WebKit Reporter: Said Abou-Hallawa <sabouhallawa>
Component: SVGAssignee: Said Abou-Hallawa <sabouhallawa>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: achristensen, dino, zimmermann
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 168586    
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Description Said Abou-Hallawa 2018-04-16 15:21:47 PDT
This work is a step towards https://bugs.webkit.org/show_bug.cgi?id=168586.

1. A new class, named SVGValue, will be added. This class is RefCounted. It is also a variant of the all the types of the list elements.
2. A new template class, named SVGValueList will be added. This class is derived from Vector<RefPtr<SVGValue>>. It provides easy access to the underlaying data members. It handles the copy assignment such that the underlaying data members are copied not referenced.
3. All the list properties classes will be derived form SVGValueList. For example SVGNumberListValues will be derived from SVGValueList<float>.
4. When an item is added to the values of a tear-off object, a new RefPtr<SVGValue> is created to hold the new data.
5. When an item of the values of a tear-off object is referenced by a wrapper, the reference of the underlaying data member is obtained form the RefPtr<SVGValue>.

The patch of this bug will add the overhead of saving all the data of the list properties as RefCounted objects. It will not make the code more secure. All the raw references and raw pointers from the values to the wrappers will remain the same. But it will make changing all SVG attributes to be RefCounted a lot easier.
Comment 1 Said Abou-Hallawa 2018-04-16 15:31:03 PDT
Created attachment 338049 [details]
Patch
Comment 2 Said Abou-Hallawa 2018-04-16 15:53:58 PDT
Created attachment 338051 [details]
Patch
Comment 3 Said Abou-Hallawa 2018-04-16 18:16:20 PDT
Created attachment 338066 [details]
Patch
Comment 4 Said Abou-Hallawa 2019-05-06 15:28:26 PDT
This is already done in https://bugs.webkit.org/show_bug.cgi?id=191237.

*** This bug has been marked as a duplicate of bug 191237 ***
Comment 5 Alex Christensen 2021-11-01 12:05:26 PDT
Comment on attachment 338066 [details]
Patch

This has been requesting review for more than one year.  If this is still needed, please rebase and re-request review.