Add non-inline SkRTreeFactory constructor to fix clang-cl

When Chromium is switched to build with VS 2015 that switches clang-cl
to build in -fmsc-version=1900 mode. This causes some changes in
importing of constructors and vftables which leads to link errors in
blink_platform.dll. Adding a non-inline constructor makes 1900 mode
behave consistently with 1800 mode and avoids the link error.

The root cause needs investigation but this will unblock the VS 2015
switch.

BUG=440500,498544
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1676833002

Review URL: https://codereview.chromium.org/1676833002
This commit is contained in:
brucedawson 2016-02-06 12:40:56 -08:00 committed by Commit bot
parent f1036b2c66
commit 964eec6776
2 changed files with 5 additions and 0 deletions

View File

@ -23,6 +23,7 @@ public:
class SK_API SkRTreeFactory : public SkBBHFactory {
public:
SkRTreeFactory();
SkBBoxHierarchy* operator()(const SkRect& bounds) const override;
private:
typedef SkBBHFactory INHERITED;

View File

@ -14,3 +14,7 @@ SkBBoxHierarchy* SkRTreeFactory::operator()(const SkRect& bounds) const {
SkScalar aspectRatio = bounds.width() / bounds.height();
return new SkRTree(aspectRatio);
}
// TODO(thakis@chromium): remove once HTTP://llvm.org/26506 is fixed
SkRTreeFactory::SkRTreeFactory() {
}