Fix missing render result release when alt-wheeling render pass menu

This commit is contained in:
Sergey Sharybin 2016-01-25 01:23:02 +05:00
parent 81a1b002a0
commit a224ee00f5
1 changed files with 8 additions and 1 deletions

View File

@ -597,6 +597,7 @@ static bool ui_imageuser_pass_menu_step(bContext *C, int direction, void *rnd_pt
rr = BKE_image_acquire_renderresult(scene, image);
if (UNLIKELY(rr == NULL)) {
BKE_image_release_renderresult(scene, image);
return false;
}
@ -606,11 +607,13 @@ static bool ui_imageuser_pass_menu_step(bContext *C, int direction, void *rnd_pt
rl = BLI_findlink(&rr->layers, layer);
if (rl == NULL) {
BKE_image_release_renderresult(scene, image);
return false;
}
rpass = BLI_findlink(&rl->passes, iuser->pass);
if (rpass == NULL) {
BKE_image_release_renderresult(scene, image);
return false;
}
@ -631,8 +634,10 @@ static bool ui_imageuser_pass_menu_step(bContext *C, int direction, void *rnd_pt
RenderPass *rp;
int rp_index = 0;
if (iuser->pass == 0)
if (iuser->pass == 0) {
BKE_image_release_renderresult(scene, image);
return false;
}
for (rp = rl->passes.first; rp; rp = rp->next, rp_index++) {
if (rp->passtype == rpass->passtype) {
@ -646,6 +651,8 @@ static bool ui_imageuser_pass_menu_step(bContext *C, int direction, void *rnd_pt
BLI_assert(0);
}
BKE_image_release_renderresult(scene, image);
if (changed) {
BKE_image_multilayer_index(rr, iuser);
WM_event_add_notifier(C, NC_IMAGE | ND_DRAW, NULL);