Commit: 22b35d7217cf6fde00637c107e9946a6a8150d27
Author: Lukas Tönne
Date:   Tue Apr 28 10:01:50 2015 +0200
Branches: alembic
https://developer.blender.org/rB22b35d7217cf6fde00637c107e9946a6a8150d27

Fixed minor memory leak when the bake operator exits early without
freeing allocated data.

===================================================================

M       source/blender/editors/io/io_cache_library.c

===================================================================

diff --git a/source/blender/editors/io/io_cache_library.c 
b/source/blender/editors/io/io_cache_library.c
index ce8612f..51688b0 100644
--- a/source/blender/editors/io/io_cache_library.c
+++ b/source/blender/editors/io/io_cache_library.c
@@ -256,18 +256,17 @@ static void cache_library_bake_do(CacheLibraryBakeJob 
*data)
 {
        Scene *scene = data->scene;
        int frame, frame_prev, start_frame, end_frame;
+       CacheProcessData process_data;
        
-       /* === prepare === */
+       if (cache_library_bake_stop(data))
+               return;
        
-       CacheProcessData process_data;
+       /* === prepare === */
        
        process_data.lay = data->lay;
        copy_m4_m4(process_data.mat, data->mat);
        process_data.dupcache = BKE_dupli_cache_new();
        
-       if (cache_library_bake_stop(data))
-               return;
-       
        switch (data->cachelib->source_mode) {
                case CACHE_LIBRARY_SOURCE_SCENE:
                        data->writer = 
PTC_writer_dupligroup(data->group->id.name, &data->eval_ctx, scene, 
data->group, data->cachelib);
@@ -276,8 +275,9 @@ static void cache_library_bake_do(CacheLibraryBakeJob *data)
                        data->writer = 
PTC_writer_duplicache(data->group->id.name, data->group, process_data.dupcache, 
data->cachelib->data_types, G.debug & G_DEBUG_SIMDATA);
                        break;
        }
-       if (!data->writer)
-               return;
+       if (!data->writer) {
+               BKE_dupli_cache_free(process_data.dupcache);
+       }
        
        data->cachelib->flag |= CACHE_LIBRARY_BAKING;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to