1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
|
/*
* When we get here, the last formal argument remains to be defined:
* defPtr and varPtr point to the last argument to be initialized.
*/
varPtr->flags = 0;
if (defPtr && defPtr->flags & VAR_IS_ARGS) {
Tcl_Obj *listPtr = Tcl_NewListObj(argCt-i, argObjs+i);
varPtr->value.objPtr = listPtr;
Tcl_IncrRefCount(listPtr); /* Local var is a reference. */
} else if (argCt == numArgs) {
Tcl_Obj *objPtr = argObjs[i];
varPtr->value.objPtr = objPtr;
Tcl_IncrRefCount(objPtr); /* Local var is a reference. */
|
>
>
>
>
>
>
>
>
>
>
>
|
|
|
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
|
/*
* When we get here, the last formal argument remains to be defined:
* defPtr and varPtr point to the last argument to be initialized.
*/
varPtr->flags = 0;
if (defPtr && defPtr->flags & VAR_IS_ARGS) {
Tcl_Obj *listPtr;
/*
* Note that we can get the number of actual arguments (argCt) less
* than the current formal argument index (i) if there is a defaulted
* argument before 'args' that uses the default.
*/
if (argCt <= i) {
TclNewObj(listPtr);
} else {
listPtr = Tcl_NewListObj(argCt-i, argObjs+i);
}
varPtr->value.objPtr = listPtr;
Tcl_IncrRefCount(listPtr); /* Local var is a reference. */
} else if (argCt == numArgs) {
Tcl_Obj *objPtr = argObjs[i];
varPtr->value.objPtr = objPtr;
Tcl_IncrRefCount(objPtr); /* Local var is a reference. */
|