Skip to content

Commit 435ad02

Browse files
LiviaMedeirosguangwong
authored andcommitted
tls: fix performance regression in convertALPNProtocols()
`isUint8Array()` covers instances of `Buffer` `isArrayBufferView()` path is cold and not worth additional check PR-URL: nodejs/node#43250 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Minwoo Jung <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
1 parent 9a541f2 commit 435ad02

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

lib/tls.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ const internalUtil = require('internal/util');
5656
internalUtil.assertCrypto();
5757
const {
5858
isArrayBufferView,
59-
isDataView,
6059
isUint8Array,
6160
} = require('internal/util/types');
6261

@@ -149,16 +148,14 @@ exports.convertALPNProtocols = function convertALPNProtocols(protocols, out) {
149148
// If protocols is Array - translate it into buffer
150149
if (ArrayIsArray(protocols)) {
151150
out.ALPNProtocols = convertProtocols(protocols);
152-
} else if (Buffer.isBuffer(protocols) || isUint8Array(protocols)) {
151+
} else if (isUint8Array(protocols)) {
153152
// Copy new buffer not to be modified by user.
154153
out.ALPNProtocols = Buffer.from(protocols);
155-
} else if (isDataView(protocols)) {
154+
} else if (isArrayBufferView(protocols)) {
156155
out.ALPNProtocols = Buffer.from(protocols.buffer.slice(
157156
protocols.byteOffset,
158157
protocols.byteOffset + protocols.byteLength
159158
));
160-
} else if (isArrayBufferView(protocols)) {
161-
out.ALPNProtocols = Buffer.from(protocols.slice().buffer);
162159
}
163160
};
164161

0 commit comments

Comments
 (0)