[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