aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-12 13:10:19 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-12 13:11:05 -0800
commit5cb84231b287b8845098e94a007c3cfa38126aea (patch)
treec7dc987a56c48380d734a1757c0fcd3c31f68558
parentbbd4504954b6eacb6cb5ee480a70b9cb65e6e700 (diff)
downloadbun-5cb84231b287b8845098e94a007c3cfa38126aea.tar.gz
bun-5cb84231b287b8845098e94a007c3cfa38126aea.tar.zst
bun-5cb84231b287b8845098e94a007c3cfa38126aea.zip
Reduce amount of cloning
-rw-r--r--src/bun.js/net.exports.js16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/bun.js/net.exports.js b/src/bun.js/net.exports.js
index 11e9ce24b..f894cd5fa 100644
--- a/src/bun.js/net.exports.js
+++ b/src/bun.js/net.exports.js
@@ -86,11 +86,10 @@ export const Socket = (function (InternalSocket) {
self.emit("error", error);
},
- data(socket, buffer) {
- const self = socket.data;
- self.bytesRead += buffer.length;
+ data({ data: self }, { length, buffer }) {
+ self.bytesRead += length;
const queue = self.#readQueue;
- const ret = new Buffer(buffer.buffer);
+ const ret = new Buffer(buffer);
if (queue.isEmpty()) {
if (self.push(ret)) return;
}
@@ -339,7 +338,14 @@ export const Socket = (function (InternalSocket) {
} else if (this.#writeCallback) {
callback(new Error("overlapping _write()"));
} else {
- if (written > 0) chunk = chunk.slice(written);
+ if (written > 0) {
+ if (typeof chunk == "string") {
+ chunk = chunk.slice(written);
+ } else {
+ chunk = chunk.subarray(written);
+ }
+ }
+
this.#writeCallback = callback;
this.#writeChunk = chunk;
}