result = Tcl_NewListObj(0, NULL); Tcl_IncrRefCount(result); for (i = 0; i < itemc; ++i) { Tcl_ObjSetVar2(interp, objv[1], NULL, items[i], 0); if (Tcl_ExprObj(interp, objv[2], ¤t) != TCL_OK) { Tcl_DecrRefCount(current); Tcl_DecrRefCount(result); return TCL_ERROR; } Tcl_ListObjAppendElement(interp, result, current); Tcl_DecrRefCount(current); } Tcl_SetObjResult(interp, result); Tcl_DecrRefCount(result);