Browse Source

Text: workarounds for silly test crashes due to insane MSVC 2017 bugs.

pull/674/head
Vladimír Vondruš 1 year ago
parent
commit
c256c27d25
  1. 60
      src/Magnum/Text/Test/RendererTest.cpp

60
src/Magnum/Text/Test/RendererTest.cpp

@ -5565,7 +5565,17 @@ void RendererTest::addSingleLine() {
/* Set padding to zero for easier dummy glyph addition below */
} glyphCache{PixelFormat::R8Unorm, {16, 16}, {}};
struct: AbstractFont {
struct
/* MSVC 2017 (_MSC_VER == 191x) crashes at runtime accessing instance2
in the following case. Not a problem in MSVC 2015 or 2019+.
struct: SomeBase {
} instance1, instance2;
Simply naming the derived struct is enough to fix the crash, FFS. */
#if defined(CORRADE_TARGET_MSVC) && _MSC_VER >= 1910 && _MSC_VER < 1920
ThisNameAlonePreventsMSVC2017FromBlowingUp
#endif
: AbstractFont
{
FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return _opened; }
void doClose() override { _opened = false; }
@ -5847,7 +5857,17 @@ void RendererTest::addMultipleLines() {
/* Set padding to zero for easier dummy glyph addition below */
} glyphCache{PixelFormat::R8Unorm, {16, 16}, {}};
struct: AbstractFont {
struct
/* MSVC 2017 (_MSC_VER == 191x) crashes at runtime accessing instance2
in the following case. Not a problem in MSVC 2015 or 2019+.
struct: SomeBase {
} instance1, instance2;
Simply naming the derived struct is enough to fix the crash, FFS. */
#if defined(CORRADE_TARGET_MSVC) && _MSC_VER >= 1910 && _MSC_VER < 1920
ThisNameAlonePreventsMSVC2017FromBlowingUp
#endif
: AbstractFont
{
FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return _opened; }
void doClose() override { _opened = false; }
@ -6194,7 +6214,17 @@ void RendererTest::addFontNotFoundInCache() {
GlyphCacheFeatures doFeatures() const override { return {}; }
} glyphCache{PixelFormat::R8Unorm, {16, 16}};
struct: AbstractFont {
struct
/* MSVC 2017 (_MSC_VER == 191x) crashes at runtime accessing instance2
in the following case. Not a problem in MSVC 2015 or 2019+.
struct: SomeBase {
} instance1, instance2;
Simply naming the derived struct is enough to fix the crash, FFS. */
#if defined(CORRADE_TARGET_MSVC) && _MSC_VER >= 1910 && _MSC_VER < 1920
ThisNameAlonePreventsMSVC2017FromBlowingUp
#endif
: AbstractFont
{
FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; }
void doClose() override {}
@ -6239,7 +6269,17 @@ void RendererTest::multipleBlocks() {
/* Set padding to zero for easier dummy glyph addition below */
} glyphCache{PixelFormat::R8Unorm, {16, 16}, {}};
struct: AbstractFont {
struct
/* MSVC 2017 (_MSC_VER == 191x) crashes at runtime accessing instance2
in the following case. Not a problem in MSVC 2015 or 2019+.
struct: SomeBase {
} instance1, instance2;
Simply naming the derived struct is enough to fix the crash, FFS. */
#if defined(CORRADE_TARGET_MSVC) && _MSC_VER >= 1910 && _MSC_VER < 1920
ThisNameAlonePreventsMSVC2017FromBlowingUp
#endif
: AbstractFont
{
FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return _opened; }
void doClose() override { _opened = false; }
@ -6441,7 +6481,17 @@ template<class T> void RendererTest::indicesVertices() {
/* Set padding to zero for easier dummy glyph addition below */
} glyphCache{PixelFormat::R8Unorm, {16, 16, data.glyphCacheArraySize}, {}};
struct: AbstractFont {
struct
/* MSVC 2017 (_MSC_VER == 191x) crashes at runtime accessing instance2
in the following case. Not a problem in MSVC 2015 or 2019+.
struct: SomeBase {
} instance1, instance2;
Simply naming the derived struct is enough to fix the crash, FFS. */
#if defined(CORRADE_TARGET_MSVC) && _MSC_VER >= 1910 && _MSC_VER < 1920
ThisNameAlonePreventsMSVC2017FromBlowingUp
#endif
: AbstractFont
{
FontFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return _opened; }
void doClose() override { _opened = false; }

Loading…
Cancel
Save