summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2014-05-27 13:28:41 (GMT)
committerdgp <dgp@users.sourceforge.net>2014-05-27 13:28:41 (GMT)
commit00ef775fc158959acc2c14c5ff3568e1f86fe538 (patch)
tree6e5c0491dd583fb852fe98ab933205c11f62a22b
parent7e7fc66d0c49405ff64c193170207ba58c33301f (diff)
downloadtcl-00ef775fc158959acc2c14c5ff3568e1f86fe538.zip
tcl-00ef775fc158959acc2c14c5ff3568e1f86fe538.tar.gz
tcl-00ef775fc158959acc2c14c5ff3568e1f86fe538.tar.bz2
Move code that can only matter in the first loop iteration out of the loop.
-rw-r--r--generic/tclIO.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 9e1a723..4e325ba 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -2510,12 +2510,6 @@ FlushChannel(
return -1;
}
- /*
- * Loop over the queued buffers and attempt to flush as much as possible
- * of the queued output to the channel.
- */
-
- while (1) {
/*
* If the queue is empty and there is a ready current buffer, OR if
* the current buffer is full, then move the current buffer to the
@@ -2536,7 +2530,6 @@ FlushChannel(
statePtr->outQueueTail = statePtr->curOutPtr;
statePtr->curOutPtr = NULL;
}
- bufPtr = statePtr->outQueueHead;
/*
* If we are not being called from an async flush and an async flush
@@ -2547,13 +2540,13 @@ FlushChannel(
return 0;
}
- /*
- * If the output queue is still empty, break out of the while loop.
- */
+ /*
+ * Loop over the queued buffers and attempt to flush as much as possible
+ * of the queued output to the channel.
+ */
- if (bufPtr == NULL) {
- break; /* Out of the "while (1)". */
- }
+ while (statePtr->outQueueHead) {
+ bufPtr = statePtr->outQueueHead;
/*
* Produce the output on the channel.