diff options
author | sebres <sebres@users.sourceforge.net> | 2020-04-16 13:28:49 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2020-04-16 13:28:49 (GMT) |
commit | b7f84c7bc0a87376cd9d151b61beadb68ab18e03 (patch) | |
tree | 94a39489bcc9b408cac8e6b40954e1334fa0dbb4 | |
parent | 14143230c875cfddb154eef9698c9344bbb905d5 (diff) | |
download | tcl-b7f84c7bc0a87376cd9d151b61beadb68ab18e03.zip tcl-b7f84c7bc0a87376cd9d151b61beadb68ab18e03.tar.gz tcl-b7f84c7bc0a87376cd9d151b61beadb68ab18e03.tar.bz2 |
zlib: performance - set default read ahead limit to DEFAULT_BUFFER_SIZE (4K); better fix avoiding BO (replacement for [54605d16b9])
-rw-r--r-- | generic/tclZlib.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclZlib.c b/generic/tclZlib.c index 1ee8919..23472cf 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -2371,7 +2371,7 @@ ZlibPushSubcmd( const char *const *pushOptions = pushDecompressOptions; enum pushOptions {poDictionary, poHeader, poLevel, poLimit}; Tcl_Obj *headerObj = NULL, *compDictObj = NULL; - int limit = 1, dummy; + int limit = DEFAULT_BUFFER_SIZE, dummy; if (objc < 4) { Tcl_WrongNumArgs(interp, 2, objv, "mode channel ?options...?"); @@ -3661,6 +3661,9 @@ ZlibStackChannelTransform( goto error; } cd->inAllocated = DEFAULT_BUFFER_SIZE; + if (cd->inAllocated < cd->readAheadLimit) { + cd->inAllocated = cd->readAheadLimit; + } cd->inBuffer = ckalloc(cd->inAllocated); if (cd->flags & IN_HEADER) { if (inflateGetHeader(&cd->inStream, &cd->inHeader.header) != Z_OK) { |