From: <aur...@wa...> - 2003-03-27 20:46:05
|
While reading dia-constraint.c I found this in constraint_optimize : in the "Unite elements with the same variable" part, you do if (expr->elem[k].variable) { g_object_unref (expr->elem[k].variable); expr->elem[k].variable = NULL; } which deallocates the variable, but after this : /* Remove elements whose constant == 0.0. */ for (i = 0; i < len; i++) { if (expr->elem[i].constant == 0.0) { guint k = i; /* Skip all elements with constant == 0.0. We decrement * expr->len also. */ while ((i < len) && (expr->elem[i].constant == 0.0)) { i++; expr->len--; } if (i < len) { expr->elem[k].constant = expr->elem[i].constant; expr->elem[k].variable = expr->elem[i].variable; expr->elem[i].constant = 0.0; /** then, no dereferencing BEFORE nullification ? **/ expr->elem[i].variable = NULL; } I wonder if this is normal. I'm still totally new to the GObject mysteries (and this part of dc), so maybe this is just bs, but who knows. Aurélien. |