fix: Remove try-catch from Buffer.readFrom, readFromSync (#6161)

This commit is contained in:
Casper Beyer 2020-06-10 23:54:54 +08:00 committed by GitHub
parent 54c3f8e27f
commit be8bacaaa4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 22 deletions

View file

@ -158,38 +158,30 @@ export class Buffer implements Reader, ReaderSync, Writer, WriterSync {
async readFrom(r: Reader): Promise<number> {
let n = 0;
while (true) {
try {
const i = this.#grow(MIN_READ);
this.#reslice(i);
const fub = new Uint8Array(this.#buf.buffer, i);
const nread = await r.read(fub);
if (nread === null) {
return n;
}
this.#reslice(i + nread);
n += nread;
} catch (e) {
const i = this.#grow(MIN_READ);
this.#reslice(i);
const fub = new Uint8Array(this.#buf.buffer, i);
const nread = await r.read(fub);
if (nread === null) {
return n;
}
this.#reslice(i + nread);
n += nread;
}
}
readFromSync(r: ReaderSync): number {
let n = 0;
while (true) {
try {
const i = this.#grow(MIN_READ);
this.#reslice(i);
const fub = new Uint8Array(this.#buf.buffer, i);
const nread = r.readSync(fub);
if (nread === null) {
return n;
}
this.#reslice(i + nread);
n += nread;
} catch (e) {
const i = this.#grow(MIN_READ);
this.#reslice(i);
const fub = new Uint8Array(this.#buf.buffer, i);
const nread = r.readSync(fub);
if (nread === null) {
return n;
}
this.#reslice(i + nread);
n += nread;
}
}
}