Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Eagar <joeedh@gmail.com>2022-10-17 04:58:08 +0300
committerJoseph Eagar <joeedh@gmail.com>2022-10-17 04:58:08 +0300
commit106edd7caf296db7cabf4554d540037e2ddedee0 (patch)
tree8d3364234abbc9d71bc7ded4870abead930e2496
parent8c6a054e8eb2c707fdc4dc7743fe293eebd5d6b2 (diff)
sculpt-dev: fix crash in extract face set
Also fixed a few compile errors
-rw-r--r--source/blender/blenkernel/intern/multires.cc24
-rw-r--r--source/blender/blenkernel/intern/paint.cc4
2 files changed, 16 insertions, 12 deletions
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;
}