summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-05-30 12:22:20 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-05-30 12:22:20 (GMT)
commit75bdb756898a30047bb33ecf3f322062fcd27180 (patch)
tree7278dd27c525ccc3b71c91da02fb7ddf84346c9f /generic/tclIO.c
parentaf838a5d529d837dc588e5c57d07d94dd612afcc (diff)
parent13f6f72bb70d2f85f1ca638290bab6c606d9ae33 (diff)
downloadtcl-75bdb756898a30047bb33ecf3f322062fcd27180.zip
tcl-75bdb756898a30047bb33ecf3f322062fcd27180.tar.gz
tcl-75bdb756898a30047bb33ecf3f322062fcd27180.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 965a395..4d327b3 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -659,7 +659,7 @@ TclFinalizeIOSubsystem(void)
statePtr->refCount--;
}
- if (statePtr->refCount + 1 <= 1) {
+ if (statePtr->refCount <= 0) {
/*
* Close it only if the refcount indicates that the channel is
* not referenced from any interpreter. If it is, that
@@ -1078,7 +1078,7 @@ CheckForStdChannelsBeingClosed(
if (tsdPtr->stdinInitialized == 1
&& tsdPtr->stdinChannel != NULL
&& statePtr == ((Channel *)tsdPtr->stdinChannel)->state) {
- if (statePtr->refCount + 1 < 3) {
+ if (statePtr->refCount < 2) {
statePtr->refCount = 0;
tsdPtr->stdinChannel = NULL;
return;
@@ -1086,7 +1086,7 @@ CheckForStdChannelsBeingClosed(
} else if (tsdPtr->stdoutInitialized == 1
&& tsdPtr->stdoutChannel != NULL
&& statePtr == ((Channel *)tsdPtr->stdoutChannel)->state) {
- if (statePtr->refCount + 1 < 3) {
+ if (statePtr->refCount < 2) {
statePtr->refCount = 0;
tsdPtr->stdoutChannel = NULL;
return;
@@ -1094,7 +1094,7 @@ CheckForStdChannelsBeingClosed(
} else if (tsdPtr->stderrInitialized == 1
&& tsdPtr->stderrChannel != NULL
&& statePtr == ((Channel *)tsdPtr->stderrChannel)->state) {
- if (statePtr->refCount + 1 < 3) {
+ if (statePtr->refCount < 2) {
statePtr->refCount = 0;
tsdPtr->stderrChannel = NULL;
return;
@@ -1256,7 +1256,7 @@ Tcl_UnregisterChannel(
* If the refCount reached zero, close the actual channel.
*/
- if (statePtr->refCount + 1 <= 1) {
+ if (statePtr->refCount <= 0) {
Tcl_Preserve(statePtr);
if (!GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
/*
@@ -1681,11 +1681,11 @@ Tcl_CreateChannel(
statePtr->inputEncodingState = NULL;
statePtr->inputEncodingFlags = TCL_ENCODING_START;
ENCODING_PROFILE_SET(statePtr->inputEncodingFlags,
- TCL_ENCODING_PROFILE_DEFAULT);
+ TCL_ENCODING_PROFILE_TCL8);
statePtr->outputEncodingState = NULL;
statePtr->outputEncodingFlags = TCL_ENCODING_START;
ENCODING_PROFILE_SET(statePtr->outputEncodingFlags,
- TCL_ENCODING_PROFILE_DEFAULT);
+ TCL_ENCODING_PROFILE_TCL8);
/*
* Set the channel up initially in AUTO input translation mode to accept
@@ -2004,7 +2004,7 @@ static void
ChannelFree(
Channel *chanPtr)
{
- if (!chanPtr->refCount) {
+ if (chanPtr->refCount == 0) {
Tcl_Free(chanPtr);
return;
}
@@ -2179,7 +2179,7 @@ Tcl_UnstackChannel(
* necessary.
*/
- if (statePtr->refCount + 1 <= 1) {
+ if (statePtr->refCount <= 0) {
if (Tcl_CloseEx(interp, chan, 0) != TCL_OK) {
/*
* TIP #219, Tcl Channel Reflection API.
@@ -2547,7 +2547,7 @@ static int
IsShared(
ChannelBuffer *bufPtr)
{
- return bufPtr->refCount + 1 > 2;
+ return bufPtr->refCount > 1;
}
/*
@@ -2996,7 +2996,7 @@ FlushChannel(
* current output buffer.
*/
- if (GotFlag(statePtr, CHANNEL_CLOSED) && (statePtr->refCount + 1 <= 1) &&
+ if (GotFlag(statePtr, CHANNEL_CLOSED) && (statePtr->refCount <= 0) &&
(statePtr->outQueueHead == NULL) &&
((statePtr->curOutPtr == NULL) ||
IsBufferEmpty(statePtr->curOutPtr))) {
@@ -3457,7 +3457,7 @@ TclClose(
statePtr = chanPtr->state;
chanPtr = statePtr->topChanPtr;
- if (statePtr->refCount + 1 > 1) {
+ if (statePtr->refCount > 0) {
Tcl_Panic("called Tcl_Close on channel with refCount > 0");
}
@@ -4192,7 +4192,6 @@ Tcl_WriteChars(
}
objPtr = Tcl_NewStringObj(src, len);
- Tcl_IncrRefCount(objPtr);
src = (char *) Tcl_GetByteArrayFromObj(objPtr, &len);
if (src == NULL) {
Tcl_SetErrno(EILSEQ);
@@ -4366,8 +4365,8 @@ Write(
while (srcLen + saved + endEncoding > 0 && !encodingError) {
ChannelBuffer *bufPtr;
char *dst;
- int result, srcRead, dstLen, dstWrote;
- Tcl_Size srcLimit = srcLen;
+ int result, srcRead, dstLen, dstWrote;
+ Tcl_Size srcLimit = srcLen;
if (nextNewLine) {
srcLimit = nextNewLine - src;
@@ -4557,7 +4556,7 @@ Tcl_Gets(
TclNewObj(objPtr);
charsStored = Tcl_GetsObj(chan, objPtr);
- if (charsStored + 1 > 1) {
+ if (charsStored > 0) {
TclDStringAppendObj(lineRead, objPtr);
}
TclDecrRefCount(objPtr);
@@ -5998,7 +5997,7 @@ DoReadChars(
}
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
- for (copied = 0; toRead > 0 || toRead == TCL_INDEX_NONE; ) {
+ for (copied = 0; toRead != 0 ; ) {
int copiedNow = -1;
if (statePtr->inQueueHead != NULL) {
if (binaryMode) {
@@ -8217,7 +8216,7 @@ Tcl_SetChannelOption(
if (interp) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"bad value for -eofchar: must be non-NUL ASCII"
- " character", -1));
+ " character", TCL_INDEX_NONE));
}
Tcl_Free((void *)argv);
return TCL_ERROR;
@@ -10642,7 +10641,7 @@ Tcl_IsChannelShared(
ChannelState *statePtr = ((Channel *) chan)->state;
/* State of real channel structure. */
- return ((statePtr->refCount + 1 > 2) ? 1 : 0);
+ return ((statePtr->refCount > 1) ? 1 : 0);
}
/*