[Bf-blender-cvs] [106edd7caf2] sculpt-dev: sculpt-dev: fix crash in extract face set
Joseph Eagar
noreply at git.blender.org
Mon Oct 17 03:58:25 CEST 2022
Commit: 106edd7caf296db7cabf4554d540037e2ddedee0
Author: Joseph Eagar
Date: Sun Oct 16 18:58:08 2022 -0700
Branches: sculpt-dev
https://developer.blender.org/rB106edd7caf296db7cabf4554d540037e2ddedee0
sculpt-dev: fix crash in extract face set
Also fixed a few compile errors
===================================================================
M source/blender/blenkernel/intern/multires.cc
M source/blender/blenkernel/intern/paint.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/multires.cc b/source/blender/blenkernel/intern/multires.cc
index ef3db5f3675..5e531158f50 100644
--- a/source/blender/blenkernel/intern/multires.cc
+++ b/source/blender/blenkernel/intern/multires.cc
@@ -869,7 +869,7 @@ extern "C" Object *multires_dump_grids_bmesh(Object *bmob, BMesh *bm)
}
Main *bmain = G.main;
- char *name = "multires_dump";
+ const char *name = "multires_dump";
bContext *ctx = CTX_create();
CTX_data_main_set(ctx, bmain);
@@ -1003,7 +1003,7 @@ extern "C" Object *multires_dump_grids_bmesh(Object *bmob, BMesh *bm)
int e;
if (!BLI_edgehash_haskey(eh, a, b)) {
- BLI_edgehash_insert(eh, a, b, (void *)medi);
+ BLI_edgehash_insert(eh, a, b, POINTER_FROM_INT(medi));
e = medi;
MEdge *med = medge + medi;
@@ -1014,7 +1014,7 @@ extern "C" Object *multires_dump_grids_bmesh(Object *bmob, BMesh *bm)
medi++;
}
else {
- e = (int)BLI_edgehash_lookup(eh, a, b);
+ e = POINTER_AS_INT(BLI_edgehash_lookup(eh, a, b));
}
ml[i2].e = e;
@@ -1271,14 +1271,16 @@ void BKE_multires_bmesh_space_set(Object *ob, BMesh *bm, int mode)
BLI_parallel_range_settings_defaults(&settings);
settings.min_iter_per_thread = CCG_TASK_LIMIT;
- MultiresThreadedData data = {
- .bmop = (MultiResSpace)mode,
- .sd = sd,
- .lvl = mmd->totlvl,
- .bm = bm,
- .cd_mdisps_off = cd_disp_off,
- .gridSize = gridSize,
- };
+ MultiresThreadedData data;
+
+ memset(static_cast<void *>(&data), 0, sizeof(data));
+
+ data.bmop = (MultiResSpace)mode;
+ data.sd = sd;
+ data.lvl = mmd->totlvl;
+ data.bm = bm;
+ data.cd_mdisps_off = cd_disp_off;
+ data.gridSize = gridSize;
BLI_task_parallel_range(0, totpoly, &data, multires_bmesh_space_set_cb, &settings);
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc
index 1e76fbadb4b..c8602b74e3c 100644
--- a/source/blender/blenkernel/intern/paint.cc
+++ b/source/blender/blenkernel/intern/paint.cc
@@ -2420,7 +2420,9 @@ int BKE_sculpt_mask_layers_ensure(Object *ob, MultiresModifierData *mmd)
ret |= SCULPT_MASK_LAYER_CALC_VERT;
}
- BKE_sculptsession_update_attr_refs(ob);
+ if (ob->sculpt) {
+ BKE_sculptsession_update_attr_refs(ob);
+ }
return ret;
}
More information about the Bf-blender-cvs
mailing list