Bug 184670 - Make all the items of the SVG tear-off properties list be RefCounted objects
Summary: Make all the items of the SVG tear-off properties list be RefCounted objects
Status: RESOLVED DUPLICATE of bug 191237
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Said Abou-Hallawa
URL:
Keywords:
Depends on:
Blocks: 168586
  Show dependency treegraph
 
Reported: 2018-04-16 15:21 PDT by Said Abou-Hallawa
Modified: 2021-11-01 12:05 PDT (History)
3 users (show)

See Also:


Attachments
Patch (85.74 KB, patch)
2018-04-16 15:31 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (83.31 KB, patch)
2018-04-16 15:53 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (83.06 KB, patch)
2018-04-16 18:16 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.