diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-01-29 07:12:49 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-01-29 07:12:49 +0400 |
commit | 8f969fdc40cded16ec58f6810585411adbb5538d (patch) | |
tree | 23d4fd70b94b2f148c7a1743cb3760ab82bbb473 /source/blender/freestyle/FRS_freestyle.h | |
parent | 6ff0d15e5a4786cffbf471ffe67f8d5916fccc97 (diff) |
Fix for a crash when freeing copied scenes.
The problem was caused by the fact that BKE_scene_copy() was simply doing "memcpy"
to duplicate render layers including lineset settings without taking care of pointers
in the linesets. For this reason, freeing the original scene and copied one resulted
in freeing allocated memory buffers twice.
Now BKE_scene_copy() properly duplicates linesets as part of render layers.
Also some code clean-up was made in the modified files.
Problem report by IRIE Shinsuke (with a patch to fix the crash). Many thanks!
Diffstat (limited to 'source/blender/freestyle/FRS_freestyle.h')
-rw-r--r-- | source/blender/freestyle/FRS_freestyle.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/freestyle/FRS_freestyle.h b/source/blender/freestyle/FRS_freestyle.h index ece51d20048..3eaa1f3fbed 100644 --- a/source/blender/freestyle/FRS_freestyle.h +++ b/source/blender/freestyle/FRS_freestyle.h @@ -61,12 +61,15 @@ void FRS_finish_stroke_rendering(struct Render* re); void FRS_composite_result(struct Render* re, struct SceneRenderLayer* srl, struct Render* freestyle_render); void FRS_exit(void); -/* Panel configuration */ +/* FreestyleConfig.modules */ +FreestyleModuleConfig *FRS_alloc_module(void); void FRS_add_module(FreestyleConfig *config); void FRS_delete_module(FreestyleConfig *config, FreestyleModuleConfig *module_conf); void FRS_move_module_up(FreestyleConfig *config, FreestyleModuleConfig *module_conf); void FRS_move_module_down(FreestyleConfig *config, FreestyleModuleConfig *module_conf); +/* FreestyleConfig.linesets */ +FreestyleLineSet *FRS_alloc_lineset(void); FreestyleLineSet *FRS_add_lineset(FreestyleConfig *config); void FRS_copy_active_lineset(FreestyleConfig *config); void FRS_paste_active_lineset(FreestyleConfig *config); |