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);


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to