Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-11-01 23:00:56 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-11-02 19:16:50 +0300
commit31746e1baa14fd3a64053aec82a40ffc07f95973 (patch)
treed220facfd17d34de073fd36ac2c98af12e7992f6 /source/blender/render/intern/render_result.h
parent07ef428c6c41d74d267e2dbd505386e93f26de38 (diff)
Fix memory leak with Freestyle renders after recent changes
Render stored a shallow copy of the scene view layers and views for thread safety, without proper functions to free it. But with the CoW depsgraph this scene is already a copy of the original and an additional copy is not needed. Refactor to use the scene view layers and some other settings directly instead of making a copy.
Diffstat (limited to 'source/blender/render/intern/render_result.h')
-rw-r--r--source/blender/render/intern/render_result.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/render/intern/render_result.h b/source/blender/render/intern/render_result.h
index 2e76efba8a3..6e971d45d31 100644
--- a/source/blender/render/intern/render_result.h
+++ b/source/blender/render/intern/render_result.h
@@ -136,10 +136,11 @@ void render_result_views_shallowdelete(struct RenderResult *rr);
{ \
int nr_; \
ViewLayer *iter_; \
- for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->view_layers.first); iter_ != NULL; \
+ for (nr_ = 0, iter_ = static_cast<ViewLayer *>((re_)->scene->view_layers.first); \
+ iter_ != NULL; \
iter_ = iter_->next, nr_++) { \
if (!G.background && (re_)->r.scemode & R_SINGLE_LAYER) { \
- if (nr_ != re->active_view_layer) { \
+ if (!STREQ(iter_->name, re->single_view_layer)) { \
continue; \
} \
} \