remove NULL checks for return values from EDBM_***_at_index calls.

This commit is contained in:
Campbell Barton 2013-06-20 07:00:57 +00:00
parent 62c6ee2c55
commit 972c01ac0c
6 changed files with 48 additions and 60 deletions

@ -976,11 +976,11 @@ static float get_vert_def_nr(Object *ob, const int def_nr, const int vertnum)
BMEditMesh *em = me->edit_btmesh; BMEditMesh *em = me->edit_btmesh;
const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT); const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT);
/* warning, this lookup is _not_ fast */ /* warning, this lookup is _not_ fast */
BMVert *eve;
EDBM_index_arrays_ensure(em, BM_VERT); if (cd_dvert_offset != -1) {
BMVert *eve;
if ((cd_dvert_offset != -1) && (eve = EDBM_vert_at_index(em, vertnum))) { EDBM_index_arrays_ensure(em, BM_VERT);
eve = EDBM_vert_at_index(em, vertnum);
dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset); dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
} }
else { else {

@ -567,7 +567,7 @@ static DMDrawOption draw_em_tf_mapped__set_draw(void *userData, int index)
BMEditMesh *em = data->em; BMEditMesh *em = data->em;
BMFace *efa = EDBM_face_at_index(em, index); BMFace *efa = EDBM_face_at_index(em, index);
if (efa == NULL || BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { if (BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
return DM_DRAW_OPTION_SKIP; return DM_DRAW_OPTION_SKIP;
} }
else { else {

@ -2060,7 +2060,9 @@ static void draw_dm_face_centers__mapFunc(void *userData, int index, const float
BMFace *efa = EDBM_face_at_index(((void **)userData)[0], index); BMFace *efa = EDBM_face_at_index(((void **)userData)[0], index);
const char sel = *(((char **)userData)[1]); const char sel = *(((char **)userData)[1]);
if (efa && !BM_elem_flag_test(efa, BM_ELEM_HIDDEN) && BM_elem_flag_test(efa, BM_ELEM_SELECT) == sel) { if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN) &&
(BM_elem_flag_test(efa, BM_ELEM_SELECT) == sel))
{
bglVertex3fv(cent); bglVertex3fv(cent);
} }
} }
@ -2326,9 +2328,6 @@ static DMDrawOption draw_dm_edges_freestyle__setDrawOptions(void *userData, int
{ {
BMEdge *eed = EDBM_edge_at_index(userData, index); BMEdge *eed = EDBM_edge_at_index(userData, index);
if (!eed)
return DM_DRAW_OPTION_SKIP;
if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN) && draw_dm_test_freestyle_edge_mark(userData, eed)) if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN) && draw_dm_test_freestyle_edge_mark(userData, eed))
return DM_DRAW_OPTION_NORMAL; return DM_DRAW_OPTION_NORMAL;
else else
@ -2358,9 +2357,6 @@ static DMDrawOption draw_dm_faces_sel__setDrawOptions(void *userData, int index)
BMFace *efa = EDBM_face_at_index(data->em, index); BMFace *efa = EDBM_face_at_index(data->em, index);
unsigned char *col; unsigned char *col;
if (!efa)
return DM_DRAW_OPTION_SKIP;
if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
if (efa == data->efa_act) { if (efa == data->efa_act) {
glColor4ubv(data->cols[2]); glColor4ubv(data->cols[2]);
@ -2385,6 +2381,7 @@ static int draw_dm_faces_sel__compareDrawOptions(void *userData, int index, int
{ {
drawDMFacesSel_userData *data = userData; drawDMFacesSel_userData *data = userData;
int i;
BMFace *efa; BMFace *efa;
BMFace *next_efa; BMFace *next_efa;
@ -2393,8 +2390,13 @@ static int draw_dm_faces_sel__compareDrawOptions(void *userData, int index, int
if (!data->orig_index_mf_to_mpoly) if (!data->orig_index_mf_to_mpoly)
return 0; return 0;
efa = EDBM_face_at_index(data->em, DM_origindex_mface_mpoly(data->orig_index_mf_to_mpoly, data->orig_index_mp_to_orig, index)); i = DM_origindex_mface_mpoly(data->orig_index_mf_to_mpoly, data->orig_index_mp_to_orig, index);
next_efa = EDBM_face_at_index(data->em, DM_origindex_mface_mpoly(data->orig_index_mf_to_mpoly, data->orig_index_mp_to_orig, next_index)); efa = (i != ORIGINDEX_NONE) ? EDBM_face_at_index(data->em, i) : NULL;
i = DM_origindex_mface_mpoly(data->orig_index_mf_to_mpoly, data->orig_index_mp_to_orig, next_index);
next_efa = (i != ORIGINDEX_NONE) ? EDBM_face_at_index(data->em, i) : NULL;
if (ELEM(NULL, efa, next_efa))
return 0;
if (efa == next_efa) if (efa == next_efa)
return 1; return 1;
@ -2473,32 +2475,27 @@ static DMDrawOption draw_dm_bweights__setDrawOptions(void *userData, int index)
{ {
BMEditMesh *em = userData; BMEditMesh *em = userData;
BMEdge *eed = EDBM_edge_at_index(userData, index); BMEdge *eed = EDBM_edge_at_index(userData, index);
float *bweight = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_BWEIGHT); if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) {
const float *bweight = (float *)CustomData_bmesh_get(&em->bm->edata, eed->head.data, CD_BWEIGHT);
if (!bweight) if (*bweight != 0.0f) {
return DM_DRAW_OPTION_SKIP; UI_ThemeColorBlend(TH_WIRE_EDIT, TH_EDGE_SELECT, *bweight);
return DM_DRAW_OPTION_NORMAL;
if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN) && *bweight != 0.0f) { }
UI_ThemeColorBlend(TH_WIRE_EDIT, TH_EDGE_SELECT, *bweight);
return DM_DRAW_OPTION_NORMAL;
}
else {
return DM_DRAW_OPTION_SKIP;
} }
return DM_DRAW_OPTION_SKIP;
} }
static void draw_dm_bweights__mapFunc(void *userData, int index, const float co[3], static void draw_dm_bweights__mapFunc(void *userData, int index, const float co[3],
const float UNUSED(no_f[3]), const short UNUSED(no_s[3])) const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
{ {
BMEditMesh *em = userData; BMEditMesh *em = userData;
BMVert *eve = EDBM_vert_at_index(userData, index); BMVert *eve = EDBM_vert_at_index(userData, index);
float *bweight = (float *)CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_BWEIGHT);
if (!bweight) if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
return; const float *bweight = (float *)CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_BWEIGHT);
if (*bweight != 0.0f) {
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN) && *bweight != 0.0f) { UI_ThemeColorBlend(TH_VERTEX, TH_VERTEX_SELECT, *bweight);
UI_ThemeColorBlend(TH_VERTEX, TH_VERTEX_SELECT, *bweight); bglVertex3fv(co);
bglVertex3fv(co); }
} }
} }
static void draw_dm_bweights(BMEditMesh *em, Scene *scene, DerivedMesh *dm) static void draw_dm_bweights(BMEditMesh *em, Scene *scene, DerivedMesh *dm)
@ -2506,15 +2503,19 @@ static void draw_dm_bweights(BMEditMesh *em, Scene *scene, DerivedMesh *dm)
ToolSettings *ts = scene->toolsettings; ToolSettings *ts = scene->toolsettings;
if (ts->selectmode & SCE_SELECT_VERTEX) { if (ts->selectmode & SCE_SELECT_VERTEX) {
glPointSize(UI_GetThemeValuef(TH_VERTEX_SIZE) + 2); if (CustomData_has_layer(&em->bm->vdata, CD_BWEIGHT)) {
bglBegin(GL_POINTS); glPointSize(UI_GetThemeValuef(TH_VERTEX_SIZE) + 2);
dm->foreachMappedVert(dm, draw_dm_bweights__mapFunc, em); bglBegin(GL_POINTS);
bglEnd(); dm->foreachMappedVert(dm, draw_dm_bweights__mapFunc, em);
bglEnd();
}
} }
else { else {
glLineWidth(3.0); if (CustomData_has_layer(&em->bm->edata, CD_BWEIGHT)) {
dm->drawMappedEdges(dm, draw_dm_bweights__setDrawOptions, em); glLineWidth(3.0);
glLineWidth(1.0); dm->drawMappedEdges(dm, draw_dm_bweights__setDrawOptions, em);
glLineWidth(1.0);
}
} }
} }
@ -2958,7 +2959,7 @@ static DMDrawOption draw_em_fancy__setFaceOpts(void *userData, int index)
{ {
BMFace *efa = EDBM_face_at_index(userData, index); BMFace *efa = EDBM_face_at_index(userData, index);
if (efa && !BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
GPU_enable_material(efa->mat_nr + 1, NULL); GPU_enable_material(efa->mat_nr + 1, NULL);
return DM_DRAW_OPTION_NORMAL; return DM_DRAW_OPTION_NORMAL;
} }
@ -7274,7 +7275,7 @@ static DMDrawOption bbs_mesh_solid__setSolidDrawOptions(void *userData, int inde
{ {
BMFace *efa = EDBM_face_at_index(((void **)userData)[0], index); BMFace *efa = EDBM_face_at_index(((void **)userData)[0], index);
if (efa && !BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
if (((void **)userData)[1]) { if (((void **)userData)[1]) {
WM_framebuffer_index_set(index + 1); WM_framebuffer_index_set(index + 1);
} }

@ -2181,17 +2181,6 @@ int transformEnd(bContext *C, TransInfo *t)
/* send events out for redraws */ /* send events out for redraws */
viewRedrawPost(C, t); viewRedrawPost(C, t);
/* Undo as last, certainly after special_trans_update! */
if (t->state == TRANS_CANCEL) {
// if (t->undostr) ED_undo_push(C, t->undostr);
}
else {
// if (t->undostr) ED_undo_push(C, t->undostr);
// else ED_undo_push(C, transform_to_undostr(t));
}
t->undostr = NULL;
viewRedrawForce(C, t); viewRedrawForce(C, t);
} }

@ -319,7 +319,6 @@ typedef struct TransInfo {
float vec[3]; /* translation, to show for widget */ float vec[3]; /* translation, to show for widget */
float mat[3][3]; /* rot/rescale, to show for widget */ float mat[3][3]; /* rot/rescale, to show for widget */
char *undostr; /* if set, uses this string for undo */
float spacemtx[3][3]; /* orientation matrix of the current space */ float spacemtx[3][3]; /* orientation matrix of the current space */
char spacename[64]; /* name of the current space, MAX_NAME */ char spacename[64]; /* name of the current space, MAX_NAME */

@ -1475,7 +1475,6 @@ static bool snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMes
} }
for (i = 0; i < totedge; i++) { for (i = 0; i < totedge; i++) {
BMEdge *eed = NULL;
MEdge *e = edges + i; MEdge *e = edges + i;
test = 1; /* reset for every vert */ test = 1; /* reset for every vert */
@ -1492,11 +1491,11 @@ static bool snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMes
test = 0; test = 0;
} }
else { else {
eed = EDBM_edge_at_index(em, index); BMEdge *eed = EDBM_edge_at_index(em, index);
if (eed && (BM_elem_flag_test(eed, BM_ELEM_HIDDEN) || if ((BM_elem_flag_test(eed, BM_ELEM_HIDDEN) ||
BM_elem_flag_test(eed->v1, BM_ELEM_SELECT) || BM_elem_flag_test(eed->v1, BM_ELEM_SELECT) ||
BM_elem_flag_test(eed->v2, BM_ELEM_SELECT))) BM_elem_flag_test(eed->v2, BM_ELEM_SELECT)))
{ {
test = 0; test = 0;
} }