diff options
author | Priyanka Kore <piyukore06@gmail.com> | 2019-12-01 14:35:18 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-12-03 23:20:15 +0100 |
commit | c9d4949565c9a1e12cc1236cb4947ded88ebac3c (patch) | |
tree | 6f08e9542ff147f2ab2dea92abdc99e1ae79d2de /src | |
parent | efd6775a509734de5feae5d62c045f3cd2231841 (diff) | |
download | android-node-v8-c9d4949565c9a1e12cc1236cb4947ded88ebac3c.tar.gz android-node-v8-c9d4949565c9a1e12cc1236cb4947ded88ebac3c.tar.bz2 android-node-v8-c9d4949565c9a1e12cc1236cb4947ded88ebac3c.zip |
src: improve node_crypto.cc memory allocation
This avoids heap allocations in common cases
PR-URL: https://github.com/nodejs/node/pull/30751
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/node_crypto.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/node_crypto.cc b/src/node_crypto.cc index d1bd5471f3..2d965bcbff 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -2697,11 +2697,11 @@ void SSLWrap<Base>::GetSharedSigalgs(const FunctionCallbackInfo<Value>& args) { Base* w; ASSIGN_OR_RETURN_UNWRAP(&w, args.Holder()); Environment* env = w->ssl_env(); - std::vector<Local<Value>> ret_arr; SSL* ssl = w->ssl_.get(); int nsig = SSL_get_shared_sigalgs(ssl, 0, nullptr, nullptr, nullptr, nullptr, nullptr); + MaybeStackBuffer<Local<Value>, 16> ret_arr(nsig); for (int i = 0; i < nsig; i++) { int hash_nid; @@ -2765,12 +2765,11 @@ void SSLWrap<Base>::GetSharedSigalgs(const FunctionCallbackInfo<Value>& args) { } else { sig_with_md += "UNDEF"; } - - ret_arr.push_back(OneByteString(env->isolate(), sig_with_md.c_str())); + ret_arr[i] = OneByteString(env->isolate(), sig_with_md.c_str()); } args.GetReturnValue().Set( - Array::New(env->isolate(), ret_arr.data(), ret_arr.size())); + Array::New(env->isolate(), ret_arr.out(), ret_arr.length())); } |