New issue
Advanced search Search tips

Issue 903712 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Nov 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Inline WebRange constructor is marked as BLINK_EXPORT.

Project Member Reported by dbesso...@yandex-team.ru, Nov 9

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15

Steps to reproduce the problem:
1. Use WebRange default constructor in different modules (blink_core and blink_controller, for example).
2. Set use_lld = true and is_debug = true.
3. Execute ninja -C out/xxx chrome.

What is the expected behavior?
Build of blink components finishes successfully.

What went wrong?
On Windows, when use_lld = true is used, this results in multiply defined symbol blink::WebRange::WebRange(void). The likely reason for that is inlining of exported constructor.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: n/a  Channel: n/a
OS Version: OS X 10.12.6
Flash Version: n/a
 
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 9

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

commit 92aa96594173109bc330bb2eab84d8e61bd7ee5e
Author: Denis Bessonov <dbessonov@yandex-team.ru>
Date: Fri Nov 09 17:19:24 2018

Out-of-line default constructor of WebRange.

WebRange default constructor is both inline and BLINK_EXPORT.
Using WebRange() in different blink modules (for example,
blink_core and blink_controller) results in duplicate symbols
during linking.

This CL out-of-lines this constructor to ensure that exported
constructor has only one implementation.

Bug:  903712 
Change-Id: Ifdc947c4d0001a4be7404950a6a1639bc9877372
Reviewed-on: https://chromium-review.googlesource.com/c/1328964
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606878}
[modify] https://crrev.com/92aa96594173109bc330bb2eab84d8e61bd7ee5e/third_party/blink/public/web/web_range.h
[modify] https://crrev.com/92aa96594173109bc330bb2eab84d8e61bd7ee5e/third_party/blink/renderer/core/exported/web_range.cc

Status: Fixed (was: Unconfirmed)
Mark Fixed according to #c2.

Sign in to add a comment