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);

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

Reply via email to