Fix mjData stack frame leakages.

PiperOrigin-RevId: 562091591
Change-Id: Ia7bb8a70ccba6bd40edc06ad8ebfac16e4286836
This commit is contained in:
Saran Tunyasuvunakool
2023-09-01 17:56:43 -07:00
committed by Copybara-Service
parent 33f51856c1
commit 89f47c33e4
+4 -2
View File
@@ -920,12 +920,13 @@ void mj_instantiateContact(const mjModel* m, mjData* d) {
int dim, b1, b2, NV = m->nv, *chain = NULL;
mjContact* con;
mjtNum cpos[6], cmargin[6], *jac, *jacdifp, *jacdifr, *jac1p, *jac2p, *jac1r, *jac2r;
mjMARKSTACK;
if (mjDISABLED(mjDSBL_CONTACT) || ncon == 0) {
return;
}
mjMARKSTACK;
// allocate Jacobian
jac = mj_stackAllocNum(d, 6*NV);
jacdifp = mj_stackAllocNum(d, 3*NV);
@@ -1831,13 +1832,14 @@ void mj_makeConstraint(const mjModel* m, mjData* d) {
// compute efc_AR
void mj_projectConstraint(const mjModel* m, mjData* d) {
int nefc = d->nefc, nv = m->nv;
mjMARKSTACK;
// nothing to do
if (nefc == 0 || !mj_isDual(m)) {
return;
}
mjMARKSTACK;
// space for backsubM2(J')' and its traspose
mjtNum* JM2 = mj_stackAllocNum(d, nefc*nv);
mjtNum* JM2T = mj_stackAllocNum(d, nv*nefc);