[Bf-blender-cvs] [a6d2fd0215c] master: Stamp info: Use dedicated function to free up memory

Sergey Sharybin noreply at git.blender.org
Tue Oct 31 15:05:56 CET 2017


Commit: a6d2fd0215c4f4507281aaf37f456771841ee6b1
Author: Sergey Sharybin
Date:   Mon Feb 6 16:54:41 2017 +0100
Branches: master
https://developer.blender.org/rBa6d2fd0215c4f4507281aaf37f456771841ee6b1

Stamp info: Use dedicated function to free up memory

This way it's more flexible to extend StampData structure
with additional stuff which might require memory free.

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

M	source/blender/blenkernel/BKE_image.h
M	source/blender/blenkernel/intern/image.c
M	source/blender/render/intern/source/render_result.c

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

diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index 3c716f39dd0..01f5d332c30 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -70,6 +70,7 @@ void    BKE_render_result_stamp_info(struct Scene *scene, struct Object *camera,
 void    BKE_imbuf_stamp_info(struct RenderResult *rr, struct ImBuf *ibuf);
 void    BKE_stamp_info_from_imbuf(struct RenderResult *rr, struct ImBuf *ibuf);
 void    BKE_stamp_info_callback(void *data, struct StampData *stamp_data, StampCallback callback, bool noskip);
+void    BKE_stamp_data_free(struct StampData *stamp_data);
 void    BKE_image_stamp_buf(
         struct Scene *scene, struct Object *camera, const struct StampData *stamp_data_template,
         unsigned char *rect, float *rectf, int width, int height, int channels);
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 54f0923cabc..7706bf921f4 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2124,6 +2124,14 @@ void BKE_stamp_info_callback(void *data, struct StampData *stamp_data, StampCall
 #undef CALL
 }
 
+void BKE_stamp_data_free(struct StampData *stamp_data)
+{
+	if (stamp_data == NULL) {
+		return;
+	}
+	MEM_freeN(stamp_data);
+}
+
 /* wrap for callback only */
 static void metadata_change_field(void *data, const char *propname, char *propvalue, int UNUSED(len))
 {
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 8e6e6c9bb7d..df51cd3c2e6 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -116,8 +116,8 @@ void render_result_free(RenderResult *res)
 		MEM_freeN(res->text);
 	if (res->error)
 		MEM_freeN(res->error);
-	if (res->stamp_data)
-		MEM_freeN(res->stamp_data);
+
+	BKE_stamp_data_free(res->stamp_data);
 
 	MEM_freeN(res);
 }



More information about the Bf-blender-cvs mailing list