[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33304] trunk/blender/source/blender/ blenkernel/intern/pointcache.c: Possible fix for the issue that came up in [#24890] Vector Blur node is Buggy

Janne Karhu jhkarh at gmail.com
Thu Nov 25 12:38:57 CET 2010


Revision: 33304
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33304
Author:   jhk
Date:     2010-11-25 12:38:55 +0100 (Thu, 25 Nov 2010)

Log Message:
-----------
Possible fix for the issue that came up in [#24890] Vector Blur node is Buggy
* Apparently some compilers don't respect proper operator precedence, so added some parentheses around to make inline conditionals unambiguous.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/pointcache.c

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-11-25 01:25:47 UTC (rev 33303)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-11-25 11:38:55 UTC (rev 33304)
@@ -1230,7 +1230,7 @@
 	int i;
 
 	for(i=0; i<BPHYS_TOT_DATA; i++) {
-		if(pf->data_types & (1<<i) && !ptcache_file_read(pf, pf->cur[i], 1, ptcache_data_size[i]))
+		if((pf->data_types & (1<<i)) && !ptcache_file_read(pf, pf->cur[i], 1, ptcache_data_size[i]))
 			return 0;
 	}
 	
@@ -1241,7 +1241,7 @@
 	int i;
 
 	for(i=0; i<BPHYS_TOT_DATA; i++) {
-		if(pf->data_types & (1<<i) && !ptcache_file_write(pf, pf->cur[i], 1, ptcache_data_size[i]))
+		if((pf->data_types & (1<<i)) && !ptcache_file_write(pf, pf->cur[i], 1, ptcache_data_size[i]))
 			return 0;
 	}
 	
@@ -1295,14 +1295,14 @@
 {
 	int data_types = pf->data_types;
 
-	pf->cur[BPHYS_DATA_INDEX] =		data_types & (1<<BPHYS_DATA_INDEX) ?		&pf->data.index	: NULL;
-	pf->cur[BPHYS_DATA_LOCATION] =	data_types & (1<<BPHYS_DATA_LOCATION) ?		&pf->data.loc	: NULL;
-	pf->cur[BPHYS_DATA_VELOCITY] =	data_types & (1<<BPHYS_DATA_VELOCITY) ?		&pf->data.vel	: NULL;
-	pf->cur[BPHYS_DATA_ROTATION] =	data_types & (1<<BPHYS_DATA_ROTATION) ?		&pf->data.rot	: NULL;
-	pf->cur[BPHYS_DATA_AVELOCITY] =	data_types & (1<<BPHYS_DATA_AVELOCITY) ?	&pf->data.ave	: NULL;
-	pf->cur[BPHYS_DATA_SIZE] =		data_types & (1<<BPHYS_DATA_SIZE)	?		&pf->data.size	: NULL;
-	pf->cur[BPHYS_DATA_TIMES] =		data_types & (1<<BPHYS_DATA_TIMES) ?		&pf->data.times	: NULL;
-	pf->cur[BPHYS_DATA_BOIDS] =		data_types & (1<<BPHYS_DATA_BOIDS) ?		&pf->data.boids	: NULL;
+	pf->cur[BPHYS_DATA_INDEX] =		(data_types & (1<<BPHYS_DATA_INDEX))	?		&pf->data.index	: NULL;
+	pf->cur[BPHYS_DATA_LOCATION] =	(data_types & (1<<BPHYS_DATA_LOCATION)) ?		&pf->data.loc	: NULL;
+	pf->cur[BPHYS_DATA_VELOCITY] =	(data_types & (1<<BPHYS_DATA_VELOCITY)) ?		&pf->data.vel	: NULL;
+	pf->cur[BPHYS_DATA_ROTATION] =	(data_types & (1<<BPHYS_DATA_ROTATION)) ?		&pf->data.rot	: NULL;
+	pf->cur[BPHYS_DATA_AVELOCITY] =	(data_types & (1<<BPHYS_DATA_AVELOCITY))?		&pf->data.ave	: NULL;
+	pf->cur[BPHYS_DATA_SIZE] =		(data_types & (1<<BPHYS_DATA_SIZE))		?		&pf->data.size	: NULL;
+	pf->cur[BPHYS_DATA_TIMES] =		(data_types & (1<<BPHYS_DATA_TIMES))	?		&pf->data.times	: NULL;
+	pf->cur[BPHYS_DATA_BOIDS] =		(data_types & (1<<BPHYS_DATA_BOIDS))	?		&pf->data.boids	: NULL;
 }
 
 static void ptcache_file_seek_pointers(int index, PTCacheFile *pf)
@@ -1329,7 +1329,7 @@
 	}
 	else {
 		for(i=0; i<BPHYS_TOT_DATA; i++)
-			size += pf->data_types & (1<<i) ? ptcache_data_size[i] : 0;
+			size += (pf->data_types & (1<<i)) ? ptcache_data_size[i] : 0;
 
 		/* size of default header + data up to index */
 		fseek(pf->fp, 8 + 3*sizeof(int) + index * size, SEEK_SET);
@@ -1343,7 +1343,7 @@
 	int i;
 
 	for(i=0; i<BPHYS_TOT_DATA; i++)
-		pm->cur[i] = data_types & (1<<i) ? pm->data[i] : NULL;
+		pm->cur[i] = ((data_types & (1<<i)) ? pm->data[i] : NULL);
 }
 
 void BKE_ptcache_mem_incr_pointers(PTCacheMem *pm)
@@ -1528,12 +1528,12 @@
 	if(pm) {
 		BKE_ptcache_mem_init_pointers(pm);
 		totpoint = pm->totpoint;
-		index = pm->data_types & (1<<BPHYS_DATA_INDEX) ? pm->cur[BPHYS_DATA_INDEX] : &i;
+		index = ((pm->data_types & (1<<BPHYS_DATA_INDEX)) ? pm->cur[BPHYS_DATA_INDEX] : &i);
 	}
 	if(pm2) {
 		BKE_ptcache_mem_init_pointers(pm2);
 		totpoint2 = pm2->totpoint;
-		index2 = pm2->data_types & (1<<BPHYS_DATA_INDEX) ? pm2->cur[BPHYS_DATA_INDEX] : &i;
+		index2 = ((pm2->data_types & (1<<BPHYS_DATA_INDEX)) ? pm2->cur[BPHYS_DATA_INDEX] : &i);
 	}
 	if(pf) {
 		if(ptcache_file_read_header_begin(pf)) {
@@ -1545,7 +1545,7 @@
 			else if(pid->read_header(pf)) {
 				ptcache_file_init_pointers(pf);
 				totpoint = pf->totpoint;
-				index = pf->data_types & (1<<BPHYS_DATA_INDEX) ? &pf->data.index : &i;
+				index = ((pf->data_types & (1<<BPHYS_DATA_INDEX)) ? &pf->data.index : &i);
 			}
 		}
 		else {
@@ -1564,7 +1564,7 @@
 			else if(pid->read_header(pf2)) {
 				ptcache_file_init_pointers(pf2);
 				totpoint2 = pf2->totpoint;
-				index2 = pf2->data_types & (1<<BPHYS_DATA_INDEX) ? &pf2->data.index : &i;
+				index2 = ((pf2->data_types & (1<<BPHYS_DATA_INDEX)) ? &pf2->data.index : &i);
 			}
 		}
 		else {
@@ -1608,14 +1608,14 @@
 			}
 			else {
 				if(pid->read_elem && (pm || ptcache_file_read_data(pf)))
-					pid->read_elem(*index, pid->calldata, pm ? pm->cur : pf->cur, frs_sec, cfra1 ? (float)cfra1 : (float)cfrai, NULL);
+					pid->read_elem(*index, pid->calldata, (pm ? pm->cur : pf->cur), frs_sec, (cfra1 ? (float)cfra1 : (float)cfrai), NULL);
 				else if(pid->read_elem)
 					{ error = 1; break; }
 			}
 
 			if(pm) {
 				BKE_ptcache_mem_incr_pointers(pm);
-				index = pm->data_types & (1<<BPHYS_DATA_INDEX) ? pm->cur[BPHYS_DATA_INDEX] : &i;
+				index = ((pm->data_types & (1<<BPHYS_DATA_INDEX)) ? pm->cur[BPHYS_DATA_INDEX] : &i);
 			}
 		}
 	}
@@ -1667,13 +1667,13 @@
 
 			if(pm2) {
 				BKE_ptcache_mem_incr_pointers(pm2);
-				index2 = pm2->data_types & (1<<BPHYS_DATA_INDEX) ? pm2->cur[BPHYS_DATA_INDEX] : &i;
+				index2 = ((pm2->data_types & (1<<BPHYS_DATA_INDEX)) ? pm2->cur[BPHYS_DATA_INDEX] : &i);
 			}
 		}
 	}
 
 	if(pm || pf)
-		ret = (pm2 || pf2) ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT;
+		ret = ((pm2 || pf2) ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT);
 	else if(pm2 || pf2) {
 		ret = PTCACHE_READ_OLD;
 		pid->cache->simframe = old_frame;





More information about the Bf-blender-cvs mailing list