diff options
Diffstat (limited to 'generic/tclIORChan.c')
| -rw-r--r-- | generic/tclIORChan.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c index c622afa..e50c96f 100644 --- a/generic/tclIORChan.c +++ b/generic/tclIORChan.c @@ -1591,7 +1591,7 @@ ReflectSeekWide( Tcl_Preserve(rcPtr); - offObj = Tcl_NewWideIntObj(offset); + TclNewIntObj(offObj, offset); baseObj = Tcl_NewStringObj( (seekMode == SEEK_SET) ? "start" : (seekMode == SEEK_CUR) ? "current" : "end", -1); @@ -3052,7 +3052,7 @@ ForwardProc( TclNewIntObj(toReadObj, paramPtr->input.toRead); Tcl_IncrRefCount(toReadObj); - Tcl_Preserve(rcPtr); + Tcl_Preserve(rcPtr); if (InvokeTclMethod(rcPtr, METH_READ, toReadObj, NULL, &resObj)!=TCL_OK){ int code = ErrnoReturn(rcPtr, resObj); @@ -3127,15 +3127,18 @@ ForwardProc( } case ForwardedSeek: { - Tcl_Obj *offObj = Tcl_NewWideIntObj(paramPtr->seek.offset); - Tcl_Obj *baseObj = Tcl_NewStringObj( - (paramPtr->seek.seekMode==SEEK_SET) ? "start" : - (paramPtr->seek.seekMode==SEEK_CUR) ? "current" : "end", -1); + Tcl_Obj *offObj; + Tcl_Obj *baseObj; - Tcl_IncrRefCount(offObj); - Tcl_IncrRefCount(baseObj); + TclNewIntObj(offObj, paramPtr->seek.offset); + baseObj = Tcl_NewStringObj( + (paramPtr->seek.seekMode==SEEK_SET) ? "start" : + (paramPtr->seek.seekMode==SEEK_CUR) ? "current" : "end", -1); - Tcl_Preserve(rcPtr); + Tcl_IncrRefCount(offObj); + Tcl_IncrRefCount(baseObj); + + Tcl_Preserve(rcPtr); if (InvokeTclMethod(rcPtr, METH_SEEK, offObj, baseObj, &resObj)!=TCL_OK){ ForwardSetObjError(paramPtr, resObj); paramPtr->seek.offset = -1; |
