Convert mjElement to struct rather than opaque pointer.

By making mjElement the parent of mjCBase, mjCModel, and mjCDef, this CL enables safer casting using static_cast instead of reinterpret_cast and C-style casting.

PiperOrigin-RevId: 619526291
Change-Id: Ifa2b4bd3ecd95bade61f41a7005c62212f456c00
This commit is contained in:
Alessio Quaglino
2024-03-27 07:36:43 -07:00
committed by Copybara-Service
parent e6bf6fc327
commit dfe2b75378
10 changed files with 199 additions and 163 deletions
+2 -2
View File
@@ -739,8 +739,8 @@ void mjXWriter::OnePlugin(XMLElement* elem, mjsPlugin* plugin) {
} else {
WriteAttrTxt(elem, "plugin", plugin_name);
const mjpPlugin* pplugin = mjp_getPluginAtSlot(
((mjCPlugin*)plugin->instance)->spec.plugin_slot);
const char* c = &((mjCPlugin*)plugin->instance)->flattened_attributes[0];
static_cast<mjCPlugin*>(plugin->instance)->spec.plugin_slot);
const char* c = &(static_cast<mjCPlugin*>(plugin->instance)->flattened_attributes[0]);
for (int i = 0; i < pplugin->nattribute; ++i) {
std::string value(c);
if (!value.empty()) {