objv = objStore;
if (args == NULL)
- objc = 0;
+ /* do nothing */;
else if (!PyTuple_Check(args)) {
- objc = 1;
objv[0] = AsObj(args);
if (objv[0] == 0)
goto finally;
+ objc = 1;
Tcl_IncrRefCount(objv[0]);
}
else {
objv = (Tcl_Obj **)ckalloc(objc * sizeof(char *));
if (objv == NULL) {
PyErr_NoMemory();
+ objc = 0;
goto finally;
}
}
break;
}
objv[i] = AsObj(v);
- if (!objv[i])
+ if (!objv[i]) {
+ /* Reset objc, so it attempts to clear
+ objects only up to i. */
+ objc = i;
goto finally;
+ }
Tcl_IncrRefCount(objv[i]);
}
}