Delete the temporary mjData if model reference validation fails.

PiperOrigin-RevId: 575852845
Change-Id: I2146dbc510b48c310ac338adcd5d53cb9f38b383
This commit is contained in:
Nimrod Gileadi
2023-10-23 10:07:07 -07:00
committed by Copybara-Service
parent 643c1248b8
commit 97d99c84ce
+3
View File
@@ -3098,6 +3098,7 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) {
m->opt.disableflags |= mjDSBL_CONTACT;
d = mj_makeData(m);
if (!d) {
mj_deleteModel(m);
throw mjCError(0, "could not create mjData");
}
@@ -3125,6 +3126,8 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) {
// assert that model has valid references
const char* validationerr = mj_validateReferences(m);
if (validationerr) { // SHOULD NOT OCCUR
mj_deleteData(d);
mj_deleteModel(m);
throw mjCError(0, validationerr);
}
// test forward simulation