New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 604481 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Apr 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Consider removing RefCountedGarbageCollected<T> class

Reported by sigbjo...@opera.com, Apr 18 2016

Issue description

This class proved to be immensely useful to have around while transitioning Blink over to Oilpan.

With Oilpan always enabled, it only has one remaining use, StyleFilterData -

 https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/style/StyleFilterData.h&q=StyleFilterData&sq=package:chromium&type=cs&l=26

If StyleFilterData uses can avoid relying on ref-counting, RefCountedGarbageCollected<> will be unused. We should consider removing it.
 

Comment 1 by sigbjo...@opera.com, Apr 18 2016

(Removing it would also entail dropping WebPrivatePtr<> support.)
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5f18f7973b22a5a35fab927e2af848917e4827b

commit e5f18f7973b22a5a35fab927e2af848917e4827b
Author: sigbjornf <sigbjornf@opera.com>
Date: Sun Apr 24 08:09:31 2016

Add DataPersistent<> for copy-on-modify and use for StyleFilterData.

Emulate what DataRef<T> provides over ref-counted objects, but
for persistent heap references. DataPersistent<T> values can
be freely copied, but when access()ed before being mutated,
DataPersistent<> ensures that the mutation will happen on
an unshared copy of the underlying heap object (of type T.)

The motivation for doing is to migrate the StyleFilterData fields
that StyleRareNonInheritedData keeps over to use DataPersistent<>
rather than DataRef<>. By doing so, StyleFilterData becomes
a simple GCed object without any ref-counting extras.

R=
BUG= 604481 

Review URL: https://codereview.chromium.org/1855213002

Cr-Commit-Position: refs/heads/master@{#389400}

[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataPersistent.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataRef.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleFilterData.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

Comment 4 by sigbjo...@opera.com, Apr 25 2016

Owner: sigbjo...@opera.com
Status: Fixed (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 25 2016

Labels: merge-merged-2716
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5f18f7973b22a5a35fab927e2af848917e4827b

commit e5f18f7973b22a5a35fab927e2af848917e4827b
Author: sigbjornf <sigbjornf@opera.com>
Date: Sun Apr 24 08:09:31 2016

Add DataPersistent<> for copy-on-modify and use for StyleFilterData.

Emulate what DataRef<T> provides over ref-counted objects, but
for persistent heap references. DataPersistent<T> values can
be freely copied, but when access()ed before being mutated,
DataPersistent<> ensures that the mutation will happen on
an unshared copy of the underlying heap object (of type T.)

The motivation for doing is to migrate the StyleFilterData fields
that StyleRareNonInheritedData keeps over to use DataPersistent<>
rather than DataRef<>. By doing so, StyleFilterData becomes
a simple GCed object without any ref-counting extras.

R=
BUG= 604481 

Review URL: https://codereview.chromium.org/1855213002

Cr-Commit-Position: refs/heads/master@{#389400}

[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataPersistent.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/DataRef.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleFilterData.h
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/e5f18f7973b22a5a35fab927e2af848917e4827b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

Sign in to add a comment