Skip to content

Commit

Permalink
src: use LocalVector in more places
Browse files Browse the repository at this point in the history
  • Loading branch information
jasnell committed Jan 3, 2025
1 parent 01554f3 commit a9de0b9
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
5 changes: 3 additions & 2 deletions src/crypto/crypto_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,8 @@ void ThrowCryptoError(Environment* env,

class CipherPushContext {
public:
inline explicit CipherPushContext(Environment* env) : env_(env) {}
inline explicit CipherPushContext(Environment* env)
: list_(env->isolate()), env_(env) {}

inline void push_back(const char* str) {
list_.emplace_back(OneByteString(env_->isolate(), str));
Expand All @@ -558,7 +559,7 @@ class CipherPushContext {
}

private:
std::vector<v8::Local<v8::Value>> list_;
v8::LocalVector<v8::Value> list_;
Environment* env_;
};

Expand Down
7 changes: 2 additions & 5 deletions src/env.cc
Original file line number Diff line number Diff line change
Expand Up @@ -176,11 +176,7 @@ bool AsyncHooks::pop_async_context(double async_id) {
}
#endif
native_execution_async_resources_.resize(offset);
if (native_execution_async_resources_.size() <
native_execution_async_resources_.capacity() / 2 &&
native_execution_async_resources_.size() > 16) {
native_execution_async_resources_.shrink_to_fit();
}
native_execution_async_resources_.shrink_to_fit();
}

if (js_execution_async_resources()->Length() > offset) [[unlikely]] {
Expand Down Expand Up @@ -1694,6 +1690,7 @@ AsyncHooks::AsyncHooks(Isolate* isolate, const SerializeInfo* info)
fields_(isolate, kFieldsCount, MAYBE_FIELD_PTR(info, fields)),
async_id_fields_(
isolate, kUidFieldsCount, MAYBE_FIELD_PTR(info, async_id_fields)),
native_execution_async_resources_(isolate),
info_(info) {
HandleScope handle_scope(isolate);
if (info == nullptr) {
Expand Down
10 changes: 8 additions & 2 deletions src/env.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

#include "aliased_buffer.h"
#if HAVE_INSPECTOR
#include "inspector_agent.h"
#include "inspector_agent.h"f
#include "inspector_profiler.h"
#endif
#include "callback_queue.h"
Expand Down Expand Up @@ -401,7 +401,13 @@ class AsyncHooks : public MemoryRetainer {
void grow_async_ids_stack();

v8::Global<v8::Array> js_execution_async_resources_;
std::vector<v8::Local<v8::Object>> native_execution_async_resources_;

// TODO(@jasnell): Note that this is technically illegal use of
// v8::Locals, which aren't supposed to live beyond the handle
// scope in which they were created. This should likely be a
// std::vector<v8::Global<v8::Object>> but that's possibly a
// larger change that should be made separately.
v8::LocalVector<v8::Object> native_execution_async_resources_;

// Non-empty during deserialization
const SerializeInfo* info_ = nullptr;
Expand Down

0 comments on commit a9de0b9

Please sign in to comment.