| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
These are refcounts on structs, not Tcl_Obj's. Their scheme doesn't suffer
the same difficulties and histories as Tcl_Obj's, and they need not copy
every detail, appropriate or not, from Tcl_Obj refcount management.
The "significant value" -- as dkf puts it -- for the struct refcounting scheme
is 0 not 1.
|
| | |
|
|\ \
| |/ |
|
| |\ |
|
| | | |
|
|\ \ \
| |/ /
| | |
| | | |
input buffers. Also properly reset input encoding flags when cycling through a fleeting EOF condition.
|
| | |
| | |
| | |
| | | |
of input buffers. Also properly reset input encoding flags when cycling
through a fleeting EOF condition.
|
| | | |
|
| | |
| | |
| | |
| | | |
[84f208762f172e]) adj code to passing test suite
|
| | | |
|
| | |
| | |
| | |
| | | |
TCL_WRITABLE mask
|
| | | |
|
|\ \ \ |
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
Tcl_ChannelType{} fields.
|
| | |
| | |
| | |
| | | |
the contents of dst -- they could be leftovers. Only check bytes reported
to have been written and take care to get the assertions right.
|
| | |
| | |
| | | |
the max chars to read constraint.
|
|\ \ \ |
|
| | | |
| | | |
| | | | |
byte-moving optimized path of [chan copy]. Thanks to Benno.
|
| | | |
| | | |
| | | | |
between the dstNeeded and dstLimit values.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
Perhaps this is a welcome convenience for some callers, but not for Tcl's
I/O system, which has no need for that. Added a new flag value
TCL_ENCODING_NO_TERMINATE that callers can use to suppress this behavior.
This means buffers don't require so much padding, and a tiny bit of processing
is saved. Update I/O callers to use the feature.
|
| | | |
|
|\ \ \
| |/ /
| | | |
Likely additional changes needed in the other channel transforms new in 8.6.
|
| | |
| | |
| | |
| | | |
ability to read beyond EOF. Plenty of assert()s to keep thing from going
off track again.
|
| | |
| | |
| | |
| | |
| | | |
strings back in those cases where the channel has them to offer. Also
working through all the implications of this possibility on Tcl's more
exotic channel features, like stacking.
|
| | | |
|
|\ \ \
| |/ /
| | |
| | | |
accounts for the effects of ENCODING_LINESIZE.
|
| |\ \
| | | |
| | | | |
properly accounts for the effects of ENCODING_LINESIZE.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
1) At least one call to the channel driver input proc gets made.
Failure to do this locks up the channel - catastrophic FAIL.
2) After any driver call reports BLOCKED, don't call again.
This is less serious, but FAILs to respect the non-blocking setting.
Code corrections and tests included, to restore 8.5.15 compat.
|
|\ \ \
| |/ / |
|
| | | |
|
| | | |
|
|\ \ \
| |/ / |
|
| | | |
|
|\ \ \
| |/ / |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
recorded Tcl history.
Still need to purge comments of mentions of ChannelHandlerEventProc()
which is similarly pre-historic.
|
|\ \ \
| |/ / |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In a DoRead() revision, it came to favor making every effort to fill
buffers, in preference to a more sensible goal of favoring avoiding calls
out to the driver if there's already enough data in the buffers to satisfy
the read operation. Result is many more calls out to recv() than are
a good idea. Ought to show up most glaringly when many Tcl_Read() calls
asking for small numbers of bytes (compared to buffer size) each, and that
matches the reported case.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
will be called back with a mask value. "Mask is an integer mask indicating
which of the requested conditions actually exists for the channel; it will
contain ***a subset of the bits from the mask argument*** to
Tcl_CreateChannelHandler when the handler was created." (emhpasis added).
Tcl_NotifyChannel is not honoring this. It passes a mask value that may
contain bits not in common with the mask argument to T_CCH().
This commit is a one-liner patch adding in the masking step to make things
behave as documented. Thanks to apn for digging this out. (In combination
with other questionable code, this led to a hang in test http-4.6 on Windows)
Tcl_NotifyChannel() has had this error in all of recorded Tcl history.
It's hard to imagine any code dependent on it though. If any exists, it
can be revised to pass the mask value it truly needs to T_CCH() and end up
with code suitable both before and after this change.
If you concur, please merge to core-8-5-branch, and I'll take it from there.
|
| | |
| | |
| | |
| | |
| | | |
[read] on a channel @ EOF to attempt another pass through the channel drivers
instead of immediately returning an empty string. Correcting this misbehavior
appears too disruptive in a patch release to a long stable branch.
|
| | | |
|
|\ \ \
| |/ / |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
identifiers "macosx*-i386-x86_64" and "macosx-universal" as
incompatible with each other.
Plus addition of a cast in tclIO.c to match types in a comparison
which otherwise bugs a Windows debug build (warnings are errors).
|