[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41405] trunk/blender: fix own error r41191 getting id property string lengths.

Campbell Barton ideasman42 at gmail.com
Mon Oct 31 02:50:05 CET 2011


Revision: 41405
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41405
Author:   campbellbarton
Date:     2011-10-31 01:50:04 +0000 (Mon, 31 Oct 2011)
Log Message:
-----------
fix own error r41191 getting id property string lengths.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41191

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_operators/wm.py
    trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
    trunk/blender/source/blender/python/generic/IDProp.c

Modified: trunk/blender/release/scripts/startup/bl_operators/wm.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/wm.py	2011-10-31 00:44:12 UTC (rev 41404)
+++ trunk/blender/release/scripts/startup/bl_operators/wm.py	2011-10-31 01:50:04 UTC (rev 41405)
@@ -1371,9 +1371,9 @@
         km = context.keymap
 
         if km.is_modal:
-            km.keymap_items.new_modal("", 'A', 'PRESS')  #~ kmi
+            km.keymap_items.new_modal("", 'A', 'PRESS')
         else:
-            km.keymap_items.new("none", 'A', 'PRESS')  #~ kmi
+            km.keymap_items.new("none", 'A', 'PRESS')
 
         # clear filter and expand keymap so we can see the newly added item
         if context.space_data.filter_text != "":

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2011-10-31 00:44:12 UTC (rev 41404)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2011-10-31 01:50:04 UTC (rev 41405)
@@ -737,7 +737,7 @@
             col = layout.column()
             col.active = tex_slot.map_mode in {'FIXED', 'TILED'}
             col.prop(tex_slot, "angle", text="")
-           
+
             #col = layout.column()
             #col.prop(brush, "use_random_rotation")
             #col.active = (not brush.use_rake) and (not brush.use_anchor) and (brush.sculpt_tool not in {'GRAB', 'SNAKE_HOOK', 'THUMB', 'ROTATE'}) and tex_slot.map_mode in {'FIXED'}
@@ -749,11 +749,11 @@
             col = layout.column(align=True)
             col.label(text="Sample Bias:")
             col.prop(brush, "texture_sample_bias", slider=True, text="")
-            
+
             col = layout.column(align=True)
             col.active = tex_slot.map_mode in {'FIXED', 'TILED'}
             col.label(text="Overlay:")
-            
+
             row = col.row()
             if brush.use_texture_overlay:
                 row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
@@ -972,7 +972,7 @@
         row.prop(sculpt, "use_symmetry_x", text="X", toggle=True)
         row.prop(sculpt, "use_symmetry_y", text="Y", toggle=True)
         row.prop(sculpt, "use_symmetry_z", text="Z", toggle=True)
-        
+
         layout.column().prop(sculpt, "radial_symmetry", text="Radial")
         layout.prop(sculpt, "use_symmetry_feather", text="Feather")
 

Modified: trunk/blender/source/blender/python/generic/IDProp.c
===================================================================
--- trunk/blender/source/blender/python/generic/IDProp.c	2011-10-31 00:44:12 UTC (rev 41404)
+++ trunk/blender/source/blender/python/generic/IDProp.c	2011-10-31 01:50:04 UTC (rev 41405)
@@ -65,9 +65,9 @@
 	switch ( prop->type ) {
 		case IDP_STRING:
 #ifdef USE_STRING_COERCE
-            return PyC_UnicodeFromByteAndSize(IDP_Array(prop), prop->len);
+            return PyC_UnicodeFromByteAndSize(IDP_Array(prop), prop->len - 1);
 #else
-            return PyUnicode_FromStringAndSize(IDP_Array(prop), prop->len);
+            return PyUnicode_FromStringAndSize(IDP_Array(prop), prop->len - 1);
 #endif
 		case IDP_INT:
 			return PyLong_FromLong( (long)prop->data.val );
@@ -483,9 +483,9 @@
 	switch (prop->type) {
 		case IDP_STRING:
 #ifdef USE_STRING_COERCE
-            return PyC_UnicodeFromByteAndSize(IDP_Array(prop), prop->len);
+            return PyC_UnicodeFromByteAndSize(IDP_Array(prop), prop->len - 1);
 #else
-            return PyUnicode_FromStringAndSize(IDP_Array(prop), prop->len);
+            return PyUnicode_FromStringAndSize(IDP_Array(prop), prop->len - 1);
 #endif
 			break;
 		case IDP_FLOAT:
@@ -625,11 +625,11 @@
 }
 
 /* utility function */
-static void BPy_IDGroup_CorrectListLen(IDProperty *prop, PyObject *seq, int len)
+static void BPy_IDGroup_CorrectListLen(IDProperty *prop, PyObject *seq, int len, const char *func)
 {
 	int j;
 
-	printf("ID Property Error found and corrected in BPy_IDGroup_GetKeys/Values/Items!\n");
+	printf("%s: ID Property Error found and corrected!\n", func);
 
 	/*fill rest of list with valid references to None*/
 	for (j=len; j<prop->len; j++) {
@@ -654,7 +654,7 @@
 	for (; loop; loop=loop->next, i++) {}
 
 	if (i != prop->len) { /* if the loop didnt finish, we know the length is wrong */
-		BPy_IDGroup_CorrectListLen(prop, seq, i);
+		BPy_IDGroup_CorrectListLen(prop, seq, i, __func__);
 		Py_DECREF(seq); /*free the list*/
 		/*call self again*/
 		return BPy_Wrap_GetKeys(prop);
@@ -674,7 +674,7 @@
 	}
 
 	if (i != prop->len) {
-		BPy_IDGroup_CorrectListLen(prop, seq, i);
+		BPy_IDGroup_CorrectListLen(prop, seq, i, __func__);
 		Py_DECREF(seq); /*free the list*/
 		/*call self again*/
 		return BPy_Wrap_GetValues(id, prop);
@@ -697,7 +697,7 @@
 	}
 
 	if (i != prop->len) {
-		BPy_IDGroup_CorrectListLen(prop, seq, i);
+		BPy_IDGroup_CorrectListLen(prop, seq, i, __func__);
 		Py_DECREF(seq); /*free the list*/
 		/*call self again*/
 		return BPy_Wrap_GetItems(id, prop);




More information about the Bf-blender-cvs mailing list