[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54872] branches/ge_harmony/source/blender : Fixing a couple of crashes related to BKE shaders.

Daniel Stokes kupomail at gmail.com
Tue Feb 26 03:25:33 CET 2013


Revision: 54872
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54872
Author:   kupoman
Date:     2013-02-26 02:25:31 +0000 (Tue, 26 Feb 2013)
Log Message:
-----------
Fixing a couple of crashes related to BKE shaders.

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
    branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c

Modified: branches/ge_harmony/source/blender/blenkernel/BKE_shader.h
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/BKE_shader.h	2013-02-26 01:20:05 UTC (rev 54871)
+++ branches/ge_harmony/source/blender/blenkernel/BKE_shader.h	2013-02-26 02:25:31 UTC (rev 54872)
@@ -40,6 +40,7 @@
 
 void init_shader(struct Shader *sh);
 void BKE_shader_free(Shader *sh);
+void BKE_shader_lib_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	2013-02-26 01:20:05 UTC (rev 54871)
+++ branches/ge_harmony/source/blender/blenkernel/intern/library.c	2013-02-26 02:25:31 UTC (rev 54872)
@@ -936,7 +936,7 @@
 			BKE_mask_free(bmain, (Mask *)id);
 			break;
 		case ID_SH:
-			BKE_shader_free((Shader *)id);
+			BKE_shader_lib_free((Shader *)id);
 			break;
 	}
 

Modified: branches/ge_harmony/source/blender/blenkernel/intern/shader.c
===================================================================
--- branches/ge_harmony/source/blender/blenkernel/intern/shader.c	2013-02-26 01:20:05 UTC (rev 54871)
+++ branches/ge_harmony/source/blender/blenkernel/intern/shader.c	2013-02-26 02:25:31 UTC (rev 54872)
@@ -63,7 +63,7 @@
 	sh->uniform_cache = BLI_ghash_str_new("Uniform Cache");
 }
 
-void BKE_shader_free(Shader *sh)
+void BKE_shader_lib_free(Shader *sh)
 {
 	Uniform *uni;
 	if (sh->source)
@@ -76,7 +76,11 @@
 
 	BLI_freelistN(&sh->uniforms);
 	BLI_ghash_free(sh->uniform_cache, NULL, (GHashValFreeFP)MEM_freeN);
+}
 
+void BKE_shader_free(Shader *sh)
+{
+	BKE_shader_lib_free(sh);
 	MEM_freeN(sh);
 }
 

Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c	2013-02-26 01:20:05 UTC (rev 54871)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c	2013-02-26 02:25:31 UTC (rev 54872)
@@ -1419,7 +1419,7 @@
 	/* merge custom shaders */
 	for (link = custom_shaders->first; link; link = link->next) {
 		cs = (Shader*)link->data;
-		if (!cs->source) continue;
+		if (!cs || !cs->source) continue;
 
 		if (cs->type == SHADER_TYPE_VERTEX) {
 			BKE_shader_free(sh_vert);




More information about the Bf-blender-cvs mailing list