[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49056] branches/ge_harmony/source/blender /blenkernel: Fixing some memory issues caused by the shader datablock.
Daniel Stokes
kupomail at gmail.com
Thu Jul 19 08:36:01 CEST 2012
Revision: 49056
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49056
Author: kupoman
Date: 2012-07-19 06:36:00 +0000 (Thu, 19 Jul 2012)
Log Message:
-----------
Fixing some memory issues caused by the shader datablock. Still have a couple more leaks to work.
Modified Paths:
--------------
branches/ge_harmony/source/blender/blenkernel/BKE_shader.h
branches/ge_harmony/source/blender/blenkernel/intern/library.c
branches/ge_harmony/source/blender/blenkernel/intern/shader.c
Modified: branches/ge_harmony/source/blender/blenkernel/BKE_shader.h
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/BKE_shader.h 2012-07-19 04:50:21 UTC (rev 49055)
+++ branches/ge_harmony/source/blender/blenkernel/BKE_shader.h 2012-07-19 06:36:00 UTC (rev 49056)
@@ -37,6 +37,7 @@
#endif
void init_shader(struct Shader *sh);
+void BKE_shader_free(Shader *sh);
struct Shader *BKE_shader_add(const char *name);
struct Shader *BKE_shader_copy(struct Shader *sh);
Modified: branches/ge_harmony/source/blender/blenkernel/intern/library.c
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/intern/library.c 2012-07-19 04:50:21 UTC (rev 49055)
+++ branches/ge_harmony/source/blender/blenkernel/intern/library.c 2012-07-19 06:36:00 UTC (rev 49056)
@@ -110,6 +110,7 @@
#include "BKE_utildefines.h"
#include "BKE_movieclip.h"
#include "BKE_mask.h"
+#include "BKE_shader.h"
#include "RNA_access.h"
@@ -576,6 +577,7 @@
lb[a++] = &(main->wm);
lb[a++] = &(main->movieclip);
lb[a++] = &(main->mask);
+ lb[a++] = &(main->shader);
lb[a] = NULL;
@@ -904,6 +906,9 @@
case ID_MSK:
BKE_mask_free((Mask *)id);
break;
+ case ID_SH:
+ BKE_shader_free((Shader *)id);
+ break;
}
if (id->properties) {
Modified: branches/ge_harmony/source/blender/blenkernel/intern/shader.c
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/intern/shader.c 2012-07-19 04:50:21 UTC (rev 49055)
+++ branches/ge_harmony/source/blender/blenkernel/intern/shader.c 2012-07-19 06:36:00 UTC (rev 49056)
@@ -218,7 +218,7 @@
type = extract_token(&src);
name = extract_token(&src);
- uni = (Uniform *)BLI_ghash_lookup(sh->uniform_cache, name);
+ uni = (Uniform *)BLI_ghash_pop(sh->uniform_cache, name, NULL);
if (!uni)
uni = uniform_init(type, name);
BLI_addtail(&sh->uniforms, uni);
More information about the Bf-blender-cvs
mailing list