[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19220] branches/blender2.5/blender/source /blender/makesrna/intern/rna_access.c: RNA:

Brecht Van Lommel brecht at blender.org
Sat Mar 7 16:23:03 CET 2009


Revision: 19220
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19220
Author:   blendix
Date:     2009-03-07 16:23:03 +0100 (Sat, 07 Mar 2009)

Log Message:
-----------
RNA:
* boolean/int/float_get_array now works for non-array
  properties as well, just filling in a single value.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2009-03-07 10:28:08 UTC (rev 19219)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c	2009-03-07 15:23:03 UTC (rev 19220)
@@ -586,8 +586,14 @@
 	BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop;
 	IDProperty *idprop;
 
-	if((idprop=rna_idproperty_check(&prop, ptr)))
-		memcpy(values, IDP_Array(idprop), sizeof(int)*idprop->len);
+	if((idprop=rna_idproperty_check(&prop, ptr))) {
+		if(prop->arraylength == 0)
+			values[0]= RNA_property_boolean_get(ptr, prop);
+		else
+			memcpy(values, IDP_Array(idprop), sizeof(int)*idprop->len);
+	}
+	else if(prop->arraylength == 0)
+		values[0]= RNA_property_boolean_get(ptr, prop);
 	else if(bprop->getarray)
 		bprop->getarray(ptr, values);
 	else if(bprop->defaultarray)
@@ -677,8 +683,14 @@
 	IntPropertyRNA *iprop= (IntPropertyRNA*)prop;
 	IDProperty *idprop;
 
-	if((idprop=rna_idproperty_check(&prop, ptr)))
-		memcpy(values, IDP_Array(idprop), sizeof(int)*idprop->len);
+	if((idprop=rna_idproperty_check(&prop, ptr))) {
+		if(prop->arraylength == 0)
+			values[0]= RNA_property_int_get(ptr, prop);
+		else
+			memcpy(values, IDP_Array(idprop), sizeof(int)*idprop->len);
+	}
+	else if(prop->arraylength == 0)
+		values[0]= RNA_property_int_get(ptr, prop);
 	else if(iprop->getarray)
 		iprop->getarray(ptr, values);
 	else if(iprop->defaultarray)
@@ -779,7 +791,9 @@
 	int i;
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
-		if(idprop->subtype == IDP_FLOAT) {
+		if(prop->arraylength == 0)
+			values[0]= RNA_property_float_get(ptr, prop);
+		else if(idprop->subtype == IDP_FLOAT) {
 			memcpy(values, IDP_Array(idprop), sizeof(float)*idprop->len);
 		}
 		else {
@@ -787,13 +801,14 @@
 				values[i]=  (float)(((double*)IDP_Array(idprop))[i]);
 		}
 	}
+	else if(prop->arraylength == 0)
+		values[0]= RNA_property_float_get(ptr, prop);
 	else if(fprop->getarray)
 		fprop->getarray(ptr, values);
 	else if(fprop->defaultarray)
 		memcpy(values, fprop->defaultarray, sizeof(float)*prop->arraylength);
 	else
 		memset(values, 0, sizeof(float)*prop->arraylength);
-
 }
 
 float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)





More information about the Bf-blender-cvs mailing list