[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31662] trunk/blender/source/blender/ python/intern/bpy_rna.c: raise an error when setting the values of read-only rna wrapped Vector/ Matrix/Euler/Quat

Campbell Barton ideasman42 at gmail.com
Mon Aug 30 14:27:34 CEST 2010


Revision: 31662
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31662
Author:   campbellbarton
Date:     2010-08-30 14:27:34 +0200 (Mon, 30 Aug 2010)

Log Message:
-----------
raise an error when setting the values of read-only rna wrapped Vector/Matrix/Euler/Quat 

Modified Paths:
--------------
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2010-08-30 10:08:08 UTC (rev 31661)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2010-08-30 12:27:34 UTC (rev 31662)
@@ -100,6 +100,11 @@
 	float min, max;
 	if(self->prop==NULL)
 		return 0;
+	
+	if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
+		PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
+		return 0;
+	}
 
 	RNA_property_float_range(&self->ptr, self->prop, &min, &max);
 
@@ -143,6 +148,11 @@
 
 	if(self->prop==NULL)
 		return 0;
+	
+	if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
+		PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
+		return 0;
+	}
 
 	RNA_property_float_clamp(&self->ptr, self->prop, &bmo->data[index]);
 	RNA_property_float_set_index(&self->ptr, self->prop, index, bmo->data[index]);
@@ -179,6 +189,12 @@
 	
 	if(self->prop==NULL)
 		return 0;
+	
+	if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
+		PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
+		return 0;
+	}
+	
 	/* can ignore clamping here */
 	RNA_property_float_set_array(&self->ptr, self->prop, bmo->data);
 	RNA_property_update(BPy_GetContext(), &self->ptr, self->prop);





More information about the Bf-blender-cvs mailing list