Fix more mjData stack leakages.

PiperOrigin-RevId: 562545230
Change-Id: I2facf25b00878669dc12d5865767a44229d2ca48
This commit is contained in:
Saran Tunyasuvunakool
2023-09-04 06:37:53 -07:00
committed by Copybara-Service
parent 5a21e202ed
commit 0e36f00857
9 changed files with 20 additions and 14 deletions
+7 -4
View File
@@ -495,13 +495,14 @@ void mj_instantiateEquality(const mjModel* m, mjData* d) {
mjtNum cpos[6], pos[2][3], ref[2], dif, deriv;
mjtNum quat[4], quat1[4], quat2[4], quat3[4], axis[3];
mjtNum *jac[2], *jacdif, *data, *sparse_buf = NULL;
mjMARKSTACK;
// disabled or no equality constraints: return
if (mjDISABLED(mjDSBL_EQUALITY) || m->nemax == 0) {
return;
}
mjMARKSTACK;
// allocate space
jac[0] = mj_stackAllocNum(d, 6*nv);
jac[1] = mj_stackAllocNum(d, 6*nv);
@@ -703,13 +704,14 @@ void mj_instantiateEquality(const mjModel* m, mjData* d) {
void mj_instantiateFriction(const mjModel* m, mjData* d) {
int nv = m->nv, issparse = mj_isSparse(m);
mjtNum* jac;
mjMARKSTACK;
// disabled: return
if (mjDISABLED(mjDSBL_FRICTIONLOSS)) {
return;
}
mjMARKSTACK;
// allocate Jacobian
jac = mj_stackAllocNum(d, nv);
@@ -764,13 +766,14 @@ void mj_instantiateLimit(const mjModel* m, mjData* d) {
int side, nv = m->nv, issparse = mj_isSparse(m);
mjtNum margin, value, dist, angleAxis[3];
mjtNum *jac;
mjMARKSTACK;
// disabled: return
if (mjDISABLED(mjDSBL_LIMIT)) {
return;
}
mjMARKSTACK;
// allocate Jacobian
jac = mj_stackAllocNum(d, nv);
@@ -863,7 +866,7 @@ void mj_instantiateLimit(const mjModel* m, mjData* d) {
// find tendon limits
for (int i=0; i < m->ntendon; i++) {
if (m->tendon_limited[i]) {
// get value = lenth, margin
// get value = length, margin
value = d->ten_length[i];
margin = m->tendon_margin[i];