From 5bd13b4982758a9cf50b92b3eed1901693a7883c Mon Sep 17 00:00:00 2001 From: Chengrui Zhu Date: Wed, 10 Jul 2024 16:40:36 +0800 Subject: [PATCH 1/2] Copy all keys of def_map when copying a mjCModel. Fixes #1798 --- src/user/user_model.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/user/user_model.cc b/src/user/user_model.cc index 7ad003ed..9b96b37f 100644 --- a/src/user/user_model.cc +++ b/src/user/user_model.cc @@ -150,7 +150,10 @@ mjCModel& mjCModel::operator=(const mjCModel& other) { // create new default tree mjCDef* subtree = new mjCDef(*other.defaults_[0]); *this += *subtree; - def_map["main"] = Default(); + for (const auto& [name, def] : other.def_map) { + std::size_t index = std::find(other.defaults_.begin(), other.defaults_.end(), def) - other.defaults_.begin(); + def_map[name] = defaults_[index]; + } // copy name maps for (int i=0; i Date: Wed, 10 Jul 2024 23:10:22 +0800 Subject: [PATCH 2/2] Add a xml test file whose mesh has a default class. user_api_test will have a segmentation fault before #1799. --- test/user/testdata/cube_with_mesh_def.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 test/user/testdata/cube_with_mesh_def.xml diff --git a/test/user/testdata/cube_with_mesh_def.xml b/test/user/testdata/cube_with_mesh_def.xml new file mode 100644 index 00000000..d9c34c52 --- /dev/null +++ b/test/user/testdata/cube_with_mesh_def.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +