child_process: do not need to count length when maxBuffer is Infinity

PR-URL: https://github.com/nodejs/node/pull/43822
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
pull/43939/head
theanarkh 2022-07-22 01:28:19 +08:00 committed by GitHub
parent 2e71ac680c
commit 04840223ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 1 deletions

View File

@ -458,6 +458,11 @@ function execFile(file, args, options, callback) {
child.stdout.setEncoding(encoding);
child.stdout.on('data', function onChildStdout(chunk) {
// Do not need to count the length
if (options.maxBuffer === Infinity) {
ArrayPrototypePush(_stdout, chunk);
return;
}
const encoding = child.stdout.readableEncoding;
const length = encoding ?
Buffer.byteLength(chunk, encoding) :
@ -483,6 +488,11 @@ function execFile(file, args, options, callback) {
child.stderr.setEncoding(encoding);
child.stderr.on('data', function onChildStderr(chunk) {
// Do not need to count the length
if (options.maxBuffer === Infinity) {
ArrayPrototypePush(_stderr, chunk);
return;
}
const encoding = child.stderr.readableEncoding;
const length = encoding ?
Buffer.byteLength(chunk, encoding) :
@ -497,7 +507,7 @@ function execFile(file, args, options, callback) {
ex = new ERR_CHILD_PROCESS_STDIO_MAXBUFFER('stderr');
kill();
} else {
_stderr.push(chunk);
ArrayPrototypePush(_stderr, chunk);
}
});
}