Fix T44556: Crash on the World Properties > Preview
Issue was caused by de-referencing NULL pointer, rres did not have any views because nothing was rendered yet. Needs more closer look about where else such a de-reference could happen.
This commit is contained in:
parent
41d817f15d
commit
4bcc7a2ec6
Notes:
blender-bot
2023-02-14 09:10:53 +01:00
Referenced by commit 179fff94e8
, Revert "Fix T44556: Crash on the World Properties > Preview"
Referenced by issue #44556, Crash on the World Properties > Preview
|
@ -532,6 +532,7 @@ static bool ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect,
|
|||
int newx = BLI_rcti_size_x(rect);
|
||||
int newy = BLI_rcti_size_y(rect);
|
||||
bool ok = false;
|
||||
bool has_rectf = false;
|
||||
|
||||
if (!split || first) sprintf(name, "Preview %p", (void *)sa);
|
||||
else sprintf(name, "SecondPreview %p", (void *)sa);
|
||||
|
@ -551,11 +552,14 @@ static bool ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect,
|
|||
re = RE_GetRender(name);
|
||||
|
||||
RE_AcquireResultImageViews(re, &rres);
|
||||
/* TODO(sergey): Is there a cleaner way to do this? */
|
||||
if (!BLI_listbase_is_empty(&rres.views)) {
|
||||
/* material preview only needs monoscopy (view 0) */
|
||||
rv = RE_RenderViewGetById(&rres, 0);
|
||||
has_rectf = rv->rectf != NULL;
|
||||
}
|
||||
|
||||
/* material preview only needs monoscopy (view 0) */
|
||||
rv = RE_RenderViewGetById(&rres, 0);
|
||||
|
||||
if (rv->rectf) {
|
||||
if (has_rectf) {
|
||||
|
||||
if (ABS(rres.rectx - newx) < 2 && ABS(rres.recty - newy) < 2) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue