[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53780] trunk/blender/source/blender: fix for own error with unwrap selection checking uvedit_have_selection() failed with no UV layer.
Campbell Barton
ideasman42 at gmail.com
Mon Jan 14 09:02:15 CET 2013
Revision: 53780
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53780
Author: campbellbarton
Date: 2013-01-14 08:02:06 +0000 (Mon, 14 Jan 2013)
Log Message:
-----------
fix for own error with unwrap selection checking uvedit_have_selection() failed with no UV layer.
also add some safety checks for BM_ELEM_CD_GET_* macros.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/bmesh.h
trunk/blender/source/blender/bmesh/bmesh_class.h
trunk/blender/source/blender/editors/transform/transform.h
trunk/blender/source/blender/editors/transform/transform_input.c
trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
Modified: trunk/blender/source/blender/bmesh/bmesh.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh.h 2013-01-13 18:21:47 UTC (rev 53779)
+++ trunk/blender/source/blender/bmesh/bmesh.h 2013-01-14 08:02:06 UTC (rev 53780)
@@ -243,6 +243,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <assert.h>
#include "bmesh_class.h"
Modified: trunk/blender/source/blender/bmesh/bmesh_class.h
===================================================================
--- trunk/blender/source/blender/bmesh/bmesh_class.h 2013-01-13 18:21:47 UTC (rev 53779)
+++ trunk/blender/source/blender/bmesh/bmesh_class.h 2013-01-14 08:02:06 UTC (rev 53780)
@@ -253,18 +253,17 @@
};
/* defines */
-
#define BM_ELEM_CD_GET_VOID_P(ele, offset) \
- ((void)0, (void *)((char *)(ele)->head.data + (offset)))
+ (assert(offset != -1), (void *)((char *)(ele)->head.data + (offset)))
#define BM_ELEM_CD_SET_FLOAT(ele, offset, f) \
- { *((float *)((char *)(ele)->head.data + (offset))) = (f); } (void)0
+ { assert(offset != -1); *((float *)((char *)(ele)->head.data + (offset))) = (f); } (void)0
#define BM_ELEM_CD_GET_FLOAT(ele, offset) \
- ((void)0, *((float *)((char *)(ele)->head.data + (offset))))
+ (assert(offset != -1), *((float *)((char *)(ele)->head.data + (offset))))
#define BM_ELEM_CD_GET_FLOAT_AS_UCHAR(ele, offset) \
- (unsigned char)(BM_ELEM_CD_GET_FLOAT(ele, offset) * 255.0f)
+ (assert(offset != -1), (unsigned char)(BM_ELEM_CD_GET_FLOAT(ele, offset) * 255.0f))
/*forward declarations*/
Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h 2013-01-13 18:21:47 UTC (rev 53779)
+++ trunk/blender/source/blender/editors/transform/transform.h 2013-01-14 08:02:06 UTC (rev 53780)
@@ -271,8 +271,8 @@
} TransData;
typedef struct MouseInput {
- void (*apply)(struct TransInfo *, struct MouseInput *, const int [2], float [3]);
- void (*post)(struct TransInfo *, float [3]);
+ void (*apply)(struct TransInfo *t, struct MouseInput *mi, const int mval[2], float output[3]);
+ void (*post)(struct TransInfo *t, float values[3]);
int imval[2]; /* initial mouse position */
char precision;
@@ -691,7 +691,7 @@
void applyMouseInput(struct TransInfo *t, struct MouseInput *mi, const int mval[2], float output[3]);
void setCustomPoints(TransInfo *t, MouseInput *mi, int start[2], int end[2]);
-void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *, float [3]));
+void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *t, float values[3]));
/*********************** Generics ********************************/
Modified: trunk/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_input.c 2013-01-13 18:21:47 UTC (rev 53779)
+++ trunk/blender/source/blender/editors/transform/transform_input.c 2013-01-14 08:02:06 UTC (rev 53780)
@@ -368,7 +368,7 @@
applyMouseInput(t, mi, mi->imval, t->values);
}
-void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *, float[3]))
+void setInputPostFct(MouseInput *mi, void (*post)(struct TransInfo *t, float values[3]))
{
mi->post = post;
}
Modified: trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
===================================================================
--- trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c 2013-01-13 18:21:47 UTC (rev 53779)
+++ trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c 2013-01-14 08:02:06 UTC (rev 53780)
@@ -161,14 +161,14 @@
/****************** Parametrizer Conversion ***************/
-static bool uvedit_have_selection(Scene *scene, BMEditMesh *em, short implicit)
+static bool uvedit_have_selection(Scene *scene, BMEditMesh *em, bool implicit)
{
BMFace *efa;
BMLoop *l;
BMIter iter, liter;
if (!CustomData_has_layer(&em->bm->ldata, CD_MLOOPUV)) {
- return false;
+ return (em->bm->totfacesel != 0);
}
/* verify if we have any selected uv's before unwrapping,
@@ -561,7 +561,7 @@
BMEditMesh *em = BMEdit_FromObject(obedit);
MinStretch *ms;
int fill_holes = RNA_boolean_get(op->ptr, "fill_holes");
- short implicit = 1;
+ bool implicit = true;
if (!uvedit_have_selection(scene, em, implicit)) {
return false;
@@ -757,7 +757,7 @@
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
ParamHandle *handle;
- short implicit = 1;
+ bool implicit = true;
if (!uvedit_have_selection(scene, em, implicit)) {
return OPERATOR_CANCELLED;
@@ -804,7 +804,7 @@
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
ParamHandle *handle;
- short implicit = 1;
+ bool implicit = true;
if (!uvedit_have_selection(scene, em, implicit)) {
return OPERATOR_CANCELLED;
@@ -1209,7 +1209,7 @@
int use_subsurf = RNA_boolean_get(op->ptr, "use_subsurf_data");
short use_subsurf_final;
float obsize[3];
- short implicit = 0;
+ bool implicit = false;
if (!uvedit_have_selection(scene, em, implicit)) {
return OPERATOR_CANCELLED;
More information about the Bf-blender-cvs
mailing list