diff options
author | Sergey Sharybin <sergey@blender.org> | 2022-04-12 11:56:51 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2022-04-13 12:48:12 +0300 |
commit | 25c357124de8905360c44a5a842284089ddec341 (patch) | |
tree | d7f7de7c459d622366ba5b0a7caec720c97f35c7 /source/blender/blenkernel | |
parent | da66c0519fce9bff981370868a359e64198552bc (diff) |
Cover some DNA files with C++ utility macros
Solves compilation warning with Clang, and moves manipulation with
DNA structures to the designed way for C++.
The tests and few other places are update to the new code by Jacques.
Ref T96847
Maniphest Tasks: T96847
Differential Revision: https://developer.blender.org/D14625
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/curve.cc | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/lattice_deform_test.cc | 12 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh.cc | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.cc | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/node.cc | 2 |
5 files changed, 12 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/curve.cc b/source/blender/blenkernel/intern/curve.cc index 2d72ad28d18..6815b4d7486 100644 --- a/source/blender/blenkernel/intern/curve.cc +++ b/source/blender/blenkernel/intern/curve.cc @@ -665,7 +665,7 @@ Nurb *BKE_nurb_duplicate(const Nurb *nu) if (newnu == nullptr) { return nullptr; } - memcpy(newnu, nu, sizeof(Nurb)); + *newnu = blender::dna::shallow_copy(*nu); if (nu->bezt) { newnu->bezt = (BezTriple *)MEM_malloc_arrayN(nu->pntsu, sizeof(BezTriple), "duplicateNurb2"); @@ -699,7 +699,7 @@ Nurb *BKE_nurb_duplicate(const Nurb *nu) Nurb *BKE_nurb_copy(Nurb *src, int pntsu, int pntsv) { Nurb *newnu = (Nurb *)MEM_mallocN(sizeof(Nurb), "copyNurb"); - memcpy(newnu, src, sizeof(Nurb)); + *newnu = blender::dna::shallow_copy(*src); if (pntsu == 1) { SWAP(int, pntsu, pntsv); diff --git a/source/blender/blenkernel/intern/lattice_deform_test.cc b/source/blender/blenkernel/intern/lattice_deform_test.cc index 1b1bca5fc53..58aadf652b7 100644 --- a/source/blender/blenkernel/intern/lattice_deform_test.cc +++ b/source/blender/blenkernel/intern/lattice_deform_test.cc @@ -69,7 +69,7 @@ static void test_lattice_deform_free(LatticeDeformTestContext *ctx) TEST(lattice_deform_performance, performance_no_dvert_1) { const int32_t num_items = 1; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); @@ -78,7 +78,7 @@ TEST(lattice_deform_performance, performance_no_dvert_1) TEST(lattice_deform_performance, performance_no_dvert_1000) { const int32_t num_items = 1000; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); @@ -87,7 +87,7 @@ TEST(lattice_deform_performance, performance_no_dvert_1000) TEST(lattice_deform_performance, performance_no_dvert_10000) { const int32_t num_items = 10000; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); @@ -96,7 +96,7 @@ TEST(lattice_deform_performance, performance_no_dvert_10000) TEST(lattice_deform_performance, performance_no_dvert_100000) { const int32_t num_items = 100000; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); @@ -105,7 +105,7 @@ TEST(lattice_deform_performance, performance_no_dvert_100000) TEST(lattice_deform_performance, performance_no_dvert_1000000) { const int32_t num_items = 1000000; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); @@ -114,7 +114,7 @@ TEST(lattice_deform_performance, performance_no_dvert_1000000) TEST(lattice_deform_performance, performance_no_dvert_10000000) { const int32_t num_items = 10000000; - LatticeDeformTestContext ctx = {{{nullptr}}}; + LatticeDeformTestContext ctx = {dna::shallow_zero_initialize()}; RandomNumberGenerator rng; test_lattice_deform_init(&ctx, &rng, num_items); test_lattice_deform(&ctx, num_items); diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc index 5afc3c0be3b..25d97d0bd3c 100644 --- a/source/blender/blenkernel/intern/mesh.cc +++ b/source/blender/blenkernel/intern/mesh.cc @@ -218,7 +218,7 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address mesh->mface = nullptr; mesh->totface = 0; memset(&mesh->fdata, 0, sizeof(mesh->fdata)); - memset(&mesh->runtime, 0, sizeof(mesh->runtime)); + mesh->runtime = blender::dna::shallow_zero_initialize(); flayers = flayers_buff; /* Do not store actual geometry data in case this is a library override ID. */ @@ -329,7 +329,7 @@ static void mesh_blend_read_data(BlendDataReader *reader, ID *id) mesh->texflag &= ~ME_AUTOSPACE_EVALUATED; mesh->edit_mesh = nullptr; - memset(&mesh->runtime, 0, sizeof(mesh->runtime)); + mesh->runtime = blender::dna::shallow_zero_initialize(); BKE_mesh_runtime_init_data(mesh); /* happens with old files */ diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc index 6abaa471877..bce7021bbb9 100644 --- a/source/blender/blenkernel/intern/mesh_convert.cc +++ b/source/blender/blenkernel/intern/mesh_convert.cc @@ -1446,8 +1446,7 @@ void BKE_mesh_nomain_to_mesh(Mesh *mesh_src, /* mesh_src might depend on mesh_dst, so we need to do everything with a local copy */ /* TODO(Sybren): the above claim came from 2.7x derived-mesh code (DM_to_mesh); * check whether it is still true with Mesh */ - Mesh tmp; - memcpy(&tmp, mesh_dst, sizeof(tmp)); + Mesh tmp = blender::dna::shallow_copy(*mesh_dst); int totvert, totedge /*, totface */ /* UNUSED */, totloop, totpoly; bool did_shapekeys = false; eCDAllocType alloctype = CD_DUPLICATE; diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index 7efdd855a04..4acccca322a 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -719,7 +719,7 @@ void ntreeBlendReadData(BlendDataReader *reader, bNodeTree *ntree) } case SH_NODE_TEX_POINTDENSITY: { NodeShaderTexPointDensity *npd = (NodeShaderTexPointDensity *)node->storage; - memset(&npd->pd, 0, sizeof(npd->pd)); + npd->pd = blender::dna::shallow_zero_initialize(); break; } case SH_NODE_TEX_IMAGE: { |