[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41868] trunk/blender/source/blender: add IDP_EqualsProperties support for comparing non-null terminated byte strings .

Campbell Barton ideasman42 at gmail.com
Tue Nov 15 11:32:08 CET 2011


Revision: 41868
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41868
Author:   campbellbarton
Date:     2011-11-15 10:32:08 +0000 (Tue, 15 Nov 2011)
Log Message:
-----------
add IDP_EqualsProperties support for comparing non-null terminated byte strings.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/idprop.c
    trunk/blender/source/blender/makesrna/intern/rna_access.c

Modified: trunk/blender/source/blender/blenkernel/intern/idprop.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/idprop.c	2011-11-15 10:19:44 UTC (rev 41867)
+++ trunk/blender/source/blender/blenkernel/intern/idprop.c	2011-11-15 10:32:08 UTC (rev 41868)
@@ -40,8 +40,6 @@
 
 #include "MEM_guardedalloc.h"
 
-#define BSTR_EQ(a, b)	(*(a) == *(b) && !strcmp(a, b))
-
 /* IDPropertyTemplate is a union in DNA_ID.h */
 
 /*local size table.*/
@@ -464,7 +462,7 @@
 	IDProperty *loop, *prop;
 	for (prop=src->data.group.first; prop; prop=prop->next) {
 		for (loop=dest->data.group.first; loop; loop=loop->next) {
-			if (BSTR_EQ(loop->name, prop->name)) {
+			if (strcmp(loop->name, prop->name) == 0) {
 				IDProperty *copy = IDP_CopyProperty(prop);
 
 				BLI_insertlink(&dest->data.group, loop, copy);
@@ -635,7 +633,7 @@
 	else if(prop1->type == IDP_DOUBLE)
 		return (IDP_Double(prop1) == IDP_Double(prop2));
 	else if(prop1->type == IDP_STRING)
-		return BSTR_EQ(IDP_String(prop1), IDP_String(prop2));
+		return ((prop1->len == prop2->len) && strncmp(IDP_String(prop1), IDP_String(prop2), prop1->len) == 0);
 	else if(prop1->type == IDP_ARRAY) {
 		if(prop1->len == prop2->len && prop1->subtype == prop2->subtype)
 			return memcmp(IDP_Array(prop1), IDP_Array(prop2), idp_size_table[(int)prop1->subtype]*prop1->len);

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-11-15 10:19:44 UTC (rev 41867)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2011-11-15 10:32:08 UTC (rev 41868)
@@ -2336,7 +2336,7 @@
 			return idprop->len;
 		}
 		else {
-			return strlen(IDP_String(idprop));
+			return idprop->len - 1;
 		}
 	}
 	else if(sprop->length)




More information about the Bf-blender-cvs mailing list