Fix T54864: Assert when changing interface display scale
authorDalai Felinto <dfelinto@gmail.com>
Wed, 2 May 2018 16:22:09 +0000 (18:22 +0200)
committerDalai Felinto <dfelinto@gmail.com>
Wed, 2 May 2018 16:32:44 +0000 (18:32 +0200)
The asserts were introduced on rB5f6c45498c92 (top-bar).

Although the asserts are technically correct, they would fail even in master.
And the commit simply added the asserts without fixing the situation itself
(as you can see in the report, it is really simple to reproduce this issue).

I propose we remove the asserts and bring them back only when the situation
itself is fixed. It doesn't make sense to introduce asserts that would fail
with the current state of the code.

source/blender/editors/screen/area.c

index 5e68ad1218d22d422de8ed87fc70aa06e38f5c87..f243cf686b89af8a16389942076cd8b659c5fd02 100644 (file)
@@ -1449,10 +1449,15 @@ static void area_calc_totrct(ScrArea *sa, int window_size_x, int window_size_y)
        if (sa->totrct.ymax < (window_size_y - 1)) {
                sa->totrct.ymax -= px;
        }
+       /* Although the following asserts are correct they lead to a very unstable Blender.
+        * And the asserts would fail even in 2.7x (they were added in 2.8x as part of the top-bar commit).
+        * For more details see T54864. */
+#if 0
        BLI_assert(sa->totrct.xmin >= 0);
        BLI_assert(sa->totrct.xmax >= 0);
        BLI_assert(sa->totrct.ymin >= 0);
        BLI_assert(sa->totrct.ymax >= 0);
+#endif
 
        /* for speedup */
        sa->winx = BLI_rcti_size_x(&sa->totrct) + 1;