src: destroy inspector agent before context
The inspector_agent depends on the context still being accessible during the destructor execution. PR-URL: https://github.com/nodejs/node/pull/16472 Fixes: https://github.com/nodejs/node/issues/15558 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
e8de2bfd13
commit
e3503aca08
@ -306,7 +306,7 @@ inline Environment::Environment(IsolateData* isolate_data,
|
||||
emit_napi_warning_(true),
|
||||
makecallback_cntr_(0),
|
||||
#if HAVE_INSPECTOR
|
||||
inspector_agent_(this),
|
||||
inspector_agent_(new inspector::Agent(this)),
|
||||
#endif
|
||||
handle_cleanup_waiting_(0),
|
||||
http_parser_buffer_(nullptr),
|
||||
@ -347,6 +347,11 @@ inline Environment::Environment(IsolateData* isolate_data,
|
||||
inline Environment::~Environment() {
|
||||
v8::HandleScope handle_scope(isolate());
|
||||
|
||||
#if HAVE_INSPECTOR
|
||||
// Destroy inspector agent before erasing the context.
|
||||
delete inspector_agent_;
|
||||
#endif
|
||||
|
||||
context()->SetAlignedPointerInEmbedderData(kContextEmbedderDataIndex,
|
||||
nullptr);
|
||||
#define V(PropertyName, TypeName) PropertyName ## _.Reset();
|
||||
|
@ -667,8 +667,8 @@ class Environment {
|
||||
#undef V
|
||||
|
||||
#if HAVE_INSPECTOR
|
||||
inline inspector::Agent* inspector_agent() {
|
||||
return &inspector_agent_;
|
||||
inline inspector::Agent* inspector_agent() const {
|
||||
return inspector_agent_;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -713,7 +713,7 @@ class Environment {
|
||||
std::map<std::string, uint64_t> performance_marks_;
|
||||
|
||||
#if HAVE_INSPECTOR
|
||||
inspector::Agent inspector_agent_;
|
||||
inspector::Agent* const inspector_agent_;
|
||||
#endif
|
||||
|
||||
HandleWrapQueue handle_wrap_queue_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user