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

Issue 412483007: Add explicit destructors to DOM classes containing smart pointers to incomplete types (Closed)

Created:
6 years, 5 months ago by Reid Kleckner
Modified:
6 years, 5 months ago
Reviewers:
Nico
CC:
blink-reviews, ed+blinkwatch_opera.com, krit, blink-reviews-html_chromium.org, fs, Raymond Toy, dglazkov+blink, f(malita), gyuyoung.kim_webkit.org, Stephen Chennney, kouhei+svg_chromium.org, pdr., rwlbuis
Project:
blink
Visibility:
Public.

Description

Add explicit destructors to DOM classes containing smart pointers to incomplete types Clang on Windows tries to declare the implicit virtual destructor of these classes so that it can diagnose mismatched exceptions specifications. This ends up requiring that the type of the smart pointer be complete, which it is not. This codepath does not fire on non-Windows platforms due to the Itanium C++ ABI key function optimization. It is possible to fix Clang to avoid performing semantic analysis of the destructor when it only needs to compute the exception specification, but it is prohibitively difficult. http://llvm.org/PR20337 Another possible fix on the Blink side would be to make the smart pointer type complete by including the relevant header, which has the cost of increasing transitive header bloat. Instead, simply define the destructor out of line. This is also a minor object file size optimization, as now the destructor is only emitted once. R=thakis@chromium.org BUG=82385 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=178838

Patch Set 1 #

Patch Set 2 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+15 lines, -0 lines) Patch
M Source/core/html/HTMLOptionElement.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/html/HTMLOptionElement.cpp View 1 1 chunk +4 lines, -0 lines 0 comments Download
M Source/core/svg/SVGScriptElement.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/svg/SVGScriptElement.cpp View 1 1 chunk +4 lines, -0 lines 0 comments Download
M Source/platform/audio/AudioDSPKernelProcessor.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M Source/platform/audio/AudioDSPKernelProcessor.cpp View 1 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
Reid Kleckner
This is a re-send of with a fixed blink baseurl, so that I can get ...
6 years, 5 months ago (2014-07-23 02:32:23 UTC) #1
Nico
rslgtm, but are you sure about the base url? i think both should probably work. ...
6 years, 5 months ago (2014-07-23 04:07:40 UTC) #2
Reid Kleckner
The CQ bit was checked by rnk@chromium.org
6 years, 5 months ago (2014-07-24 00:04:01 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rnk@chromium.org/412483007/20001
6 years, 5 months ago (2014-07-24 00:04:46 UTC) #4
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_gpu_triggered_tests on tryserver.chromium.gpu ...
6 years, 5 months ago (2014-07-24 06:41:51 UTC) #5
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 5 months ago (2014-07-24 07:07:22 UTC) #6
commit-bot: I haz the power
Try jobs failed on following builders: win_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/win_gpu_triggered_tests/builds/32072)
6 years, 5 months ago (2014-07-24 07:07:23 UTC) #7
Nico
The CQ bit was checked by thakis@chromium.org
6 years, 5 months ago (2014-07-24 13:34:17 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rnk@chromium.org/412483007/20001
6 years, 5 months ago (2014-07-24 13:35:23 UTC) #9
commit-bot: I haz the power
Change committed as 178838
6 years, 5 months ago (2014-07-24 13:37:03 UTC) #10
Nico
5 years, 11 months ago (2015-01-27 19:42:49 UTC) #11
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in
https://codereview.chromium.org/878273002/ by thakis@chromium.org.

The reason for reverting is: This should no longer be necessary; clang should be
able to handle this now. Reverting this to test that theory..

Powered by Google App Engine
This is Rietveld 408576698