Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Issue 189543014: Ensure proper finalization of garbage-collected types. (Closed)

Created:
6 years, 9 months ago by zerny-chromium
Modified:
6 years, 9 months ago
CC:
blink-reviews, kenneth.christiansen, ed+blinkwatch_opera.com, Mikhail, abarth-chromium, dglazkov+blink, apavlov+blink_chromium.org, adamk+blink_chromium.org, darktears, rune+blink, kouhei+heap_chromium.org, Inactive, rwlbuis, oilpan-reviews
Visibility:
Public.

Description

Ensure proper finalization of garbage-collected types. This CL reflects the finalization requirements of the Blink GC clang plugin. In particular, the plugin uses clang's notion of when a class has a 'trivial finalizer' to ensure that classes that do not have trivial finalizers are derived from finalized GC base classes. In order for this to work, the collection types must not have user-declared destructors when instantiated with the heap allocator. In the case of Vector, the rules are further complicated since a heap-allocated vector can have inlined elements, and if they need finalization then so does the heap vector. R=erik.corry@gmail.com, vegorov@chromium.org BUG= Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169117

Patch Set 1 #

Patch Set 2 : retry #

Patch Set 3 : finalize HashTable #

Total comments: 13

Patch Set 4 : comments and rebase #

Patch Set 5 : empty dtor macros #

Patch Set 6 : #

Patch Set 7 : removed dtor from HeapSupplement and derived classes #

Total comments: 2

Patch Set 8 : Rename macros #

Patch Set 9 : rebase and sign error in Vector #

Unified diffs Side-by-side diffs Delta from patch set Stats (+111 lines, -83 lines) Patch
M Source/core/css/CSSBasicShapes.h View 1 2 3 4 5 6 7 2 chunks +1 line, -3 lines 0 comments Download
M Source/core/css/CSSBasicShapes.cpp View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/css/CSSCalculationValue.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/css/CSSCalculationValue.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
M Source/core/css/MediaList.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/css/MediaList.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
Source/core/css/MediaQueryList.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/css/MediaQueryList.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
M Source/core/css/MediaQueryMatcher.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/css/MediaQueryMatcher.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
M Source/core/css/Rect.h View 1 2 3 4 5 6 7 2 chunks +1 line, -2 lines 0 comments Download
M Source/core/css/Rect.cpp View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/events/TouchEventContext.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/events/TouchEventContext.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
M Source/core/plugins/DOMPluginArray.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/testing/LayerRectList.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/testing/LayerRectList.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -3 lines 0 comments Download
M Source/heap/Handle.h View 1 2 3 4 5 6 7 8 2 chunks +14 lines, -0 lines 0 comments Download
M Source/heap/Heap.h View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M Source/heap/HeapTest.cpp View 1 2 3 4 5 6 7 8 2 chunks +13 lines, -10 lines 0 comments Download
M Source/modules/crypto/WorkerGlobalScopeCrypto.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M Source/modules/crypto/WorkerGlobalScopeCrypto.cpp View 1 2 3 4 5 6 1 chunk +0 lines, -4 lines 0 comments Download
M Source/modules/gamepad/GamepadList.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/performance/WorkerGlobalScopePerformance.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M Source/modules/performance/WorkerGlobalScopePerformance.cpp View 1 2 3 4 5 6 1 chunk +0 lines, -4 lines 0 comments Download
M Source/modules/quota/WorkerNavigatorStorageQuota.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M Source/modules/quota/WorkerNavigatorStorageQuota.cpp View 1 2 3 4 5 6 1 chunk +0 lines, -4 lines 0 comments Download
M Source/modules/speech/SpeechRecognitionResult.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/Supplementable.h View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M Source/wtf/HashTable.h View 1 2 2 chunks +16 lines, -4 lines 0 comments Download
M Source/wtf/Vector.h View 1 2 3 4 5 6 7 8 6 chunks +43 lines, -19 lines 0 comments Download

Messages

Total messages: 37 (0 generated)
Mikhail
https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h File Source/wtf/HashTable.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h#newcode235 Source/wtf/HashTable.h:235: class HashTable : public HashTableDestructorBase<HashTable<Key, Value, Extractor, HashFunctions, Traits, ...
6 years, 9 months ago (2014-03-11 09:58:12 UTC) #1
zerny-chromium
Thanks for the review. https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h File Source/wtf/HashTable.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h#newcode235 Source/wtf/HashTable.h:235: class HashTable : public HashTableDestructorBase<HashTable<Key, ...
6 years, 9 months ago (2014-03-11 10:04:47 UTC) #2
haraken
https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h File Source/core/css/CSSBasicShapes.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h#newcode63 Source/core/css/CSSBasicShapes.h:63: #if !ENABLE(OILPAN) I'm not that happy to have a ...
6 years, 9 months ago (2014-03-11 10:26:36 UTC) #3
Erik Corry
https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h File Source/core/css/CSSBasicShapes.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h#newcode63 Source/core/css/CSSBasicShapes.h:63: #if !ENABLE(OILPAN) On 2014/03/11 10:26:37, haraken wrote: > > ...
6 years, 9 months ago (2014-03-11 10:34:25 UTC) #4
zerny-chromium
On 2014/03/11 10:34:25, Erik Corry wrote: > https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h > File Source/core/css/CSSBasicShapes.h (right): > > https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h#newcode63 ...
6 years, 9 months ago (2014-03-11 11:05:14 UTC) #5
zerny-chromium
https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSCalculationValue.h File Source/core/css/CSSCalculationValue.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSCalculationValue.h#newcode59 Source/core/css/CSSCalculationValue.h:59: class CSSCalcExpressionNode : public RefCountedWillBeGarbageCollectedFinalized<CSSCalcExpressionNode> { On 2014/03/11 10:26:37, ...
6 years, 9 months ago (2014-03-11 11:05:25 UTC) #6
Mikhail
https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h File Source/wtf/HashTable.h (right): https://codereview.chromium.org/189543014/diff/40001/Source/wtf/HashTable.h#newcode235 Source/wtf/HashTable.h:235: class HashTable : public HashTableDestructorBase<HashTable<Key, Value, Extractor, HashFunctions, Traits, ...
6 years, 9 months ago (2014-03-11 12:02:52 UTC) #7
haraken
> https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h#newcode63 > > Source/core/css/CSSBasicShapes.h:63: #if !ENABLE(OILPAN) > > On 2014/03/11 10:26:37, haraken wrote: > ...
6 years, 9 months ago (2014-03-11 13:02:58 UTC) #8
Mads Ager (chromium)
On 2014/03/11 13:02:58, haraken wrote: > > > https://codereview.chromium.org/189543014/diff/40001/Source/core/css/CSSBasicShapes.h#newcode63 > > > Source/core/css/CSSBasicShapes.h:63: #if !ENABLE(OILPAN) ...
6 years, 9 months ago (2014-03-11 13:06:14 UTC) #9
haraken
> > > > > I'm not that happy to have a lot of ENABLE(OILPAN) ...
6 years, 9 months ago (2014-03-11 13:21:29 UTC) #10
Mads Ager (chromium)
LGTM I think this is worth it in order to get the checking that we ...
6 years, 9 months ago (2014-03-11 13:34:40 UTC) #11
zerny-chromium
Thanks for the reviews everyone! I'm not finished testing since I'm observing timeouts that do ...
6 years, 9 months ago (2014-03-11 13:54:12 UTC) #12
Mads Ager (chromium)
https://codereview.chromium.org/189543014/diff/40001/Source/heap/HeapTest.cpp File Source/heap/HeapTest.cpp (right): https://codereview.chromium.org/189543014/diff/40001/Source/heap/HeapTest.cpp#newcode982 Source/heap/HeapTest.cpp:982: namespace WTF { On 2014/03/11 13:54:12, zerny-chromium wrote: > ...
6 years, 9 months ago (2014-03-11 15:09:19 UTC) #13
zerny-chromium
The CQ bit was checked by zerny@chromium.org
6 years, 9 months ago (2014-03-12 07:16:34 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/zerny@chromium.org/189543014/60001
6 years, 9 months ago (2014-03-12 07:16:41 UTC) #15
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-12 07:34:30 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: blink_presubmit
6 years, 9 months ago (2014-03-12 07:34:31 UTC) #17
tkent
On 2014/03/11 13:21:29, haraken wrote: > tkent-san: What do you think? Are you OK with ...
6 years, 9 months ago (2014-03-12 07:58:27 UTC) #18
zerny-chromium
On 2014/03/12 07:58:27, tkent wrote: > On 2014/03/11 13:21:29, haraken wrote: > > tkent-san: What ...
6 years, 9 months ago (2014-03-12 08:22:35 UTC) #19
zerny-chromium
On 2014/03/12 07:58:27, tkent wrote: > On 2014/03/11 13:21:29, haraken wrote: > > tkent-san: What ...
6 years, 9 months ago (2014-03-12 08:24:13 UTC) #20
tkent
On 2014/03/12 08:22:35, zerny-chromium wrote: > On 2014/03/12 07:58:27, tkent wrote: > > On 2014/03/11 ...
6 years, 9 months ago (2014-03-12 08:56:03 UTC) #21
zerny-chromium
> In general, I'm afraid Oilpan introduce a lot of coding rules and they decrease ...
6 years, 9 months ago (2014-03-12 09:31:03 UTC) #22
tkent
On 2014/03/12 09:31:03, zerny-chromium wrote: > I agree, that rules can make it harder to ...
6 years, 9 months ago (2014-03-12 14:01:57 UTC) #23
zerny-chromium
> I understand the importance of the finalization check by the plugin. I wonder if ...
6 years, 9 months ago (2014-03-12 14:09:56 UTC) #24
zerny-chromium
Added update for mixin checking.
6 years, 9 months ago (2014-03-12 16:18:33 UTC) #25
tkent
lgtm https://codereview.chromium.org/189543014/diff/110001/Source/heap/Handle.h File Source/heap/Handle.h (right): https://codereview.chromium.org/189543014/diff/110001/Source/heap/Handle.h#newcode687 Source/heap/Handle.h:687: #define DEFINE_EMPTY_DESTRUCTOR_WILL_BY_NONE(type) // do nothing WILL_BY -> WILL_BE
6 years, 9 months ago (2014-03-13 01:12:57 UTC) #26
haraken
On 2014/03/13 01:12:57, tkent wrote: > lgtm > > https://codereview.chromium.org/189543014/diff/110001/Source/heap/Handle.h > File Source/heap/Handle.h (right): > ...
6 years, 9 months ago (2014-03-13 01:16:04 UTC) #27
haraken
LGTM
6 years, 9 months ago (2014-03-13 01:17:10 UTC) #28
zerny-chromium
On 2014/03/13 01:16:04, haraken wrote: > On 2014/03/13 01:12:57, tkent wrote: > > lgtm > ...
6 years, 9 months ago (2014-03-13 06:44:38 UTC) #29
zerny-chromium
https://codereview.chromium.org/189543014/diff/110001/Source/heap/Handle.h File Source/heap/Handle.h (right): https://codereview.chromium.org/189543014/diff/110001/Source/heap/Handle.h#newcode687 Source/heap/Handle.h:687: #define DEFINE_EMPTY_DESTRUCTOR_WILL_BY_NONE(type) // do nothing On 2014/03/13 01:12:58, tkent ...
6 years, 9 months ago (2014-03-13 06:44:54 UTC) #30
zerny-chromium
The CQ bit was checked by zerny@chromium.org
6 years, 9 months ago (2014-03-13 09:33:20 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/zerny@chromium.org/189543014/110033
6 years, 9 months ago (2014-03-13 09:33:25 UTC) #32
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-13 10:36:05 UTC) #33
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_blink
6 years, 9 months ago (2014-03-13 10:36:06 UTC) #34
zerny-chromium
The CQ bit was checked by zerny@chromium.org
6 years, 9 months ago (2014-03-13 10:39:08 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/zerny@chromium.org/189543014/110033
6 years, 9 months ago (2014-03-13 10:39:13 UTC) #36
commit-bot: I haz the power
6 years, 9 months ago (2014-03-13 11:45:49 UTC) #37
Message was sent while issue was closed.
Change committed as 169117

Powered by Google App Engine
This is Rietveld 408576698