[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13760] trunk/blender/source/blender/ blenloader/intern/readfile.c: Crasher in patch for premul flag: missing NULL check

Ton Roosendaal ton at blender.org
Tue Feb 19 10:00:40 CET 2008


Revision: 13760
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13760
Author:   ton
Date:     2008-02-19 10:00:39 +0100 (Tue, 19 Feb 2008)

Log Message:
-----------
Crasher in patch for premul flag: missing NULL check

Also converted ugly short pointer casting with the standard ID
define GS(), Get Shorty!

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2008-02-18 23:50:12 UTC (rev 13759)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2008-02-19 09:00:39 UTC (rev 13760)
@@ -7464,7 +7464,9 @@
 		for (tex=main->tex.first; tex; tex=tex->id.next) {
 			if (tex->ima) {
 				image = newlibadr(fd, lib, tex->ima);
-				if (image->flag & IMA_OLDFLAG) tex->iuser.flag |= IMA_DO_PREMUL;
+				if(image)
+					if (image->flag & IMA_OLDFLAG) 
+						tex->iuser.flag |= IMA_DO_PREMUL;
 			}
 		}
 
@@ -7473,7 +7475,7 @@
 			if (scene->nodetree) {
 				for (node=scene->nodetree->nodes.first; node; node=node->next) {
 					ID *nodeid = newlibadr(fd, lib, node->id);
-					if (node->storage && nodeid && *(short*)nodeid->name == ID_IM) {
+					if (node->storage && nodeid && GS(nodeid->name) == ID_IM) {
 						image = (Image*) nodeid;
 						iuser = node->storage;
 						if (image->flag & IMA_OLDFLAG) iuser->flag |= IMA_DO_PREMUL;
@@ -7487,7 +7489,7 @@
 			if (ntree->type == NTREE_COMPOSIT) {
 				for (node=ntree->nodes.first; node; node=node->next) {
 					ID *nodeid = newlibadr(fd, lib, node->id);
-					if (node->storage && nodeid && *(short*)nodeid->name == ID_IM) {
+					if (node->storage && nodeid && GS(nodeid->name) == ID_IM) {
 						image = (Image*) nodeid;
 						iuser = node->storage;
 						if (image->flag & IMA_OLDFLAG) iuser->flag |= IMA_DO_PREMUL;





More information about the Bf-blender-cvs mailing list