summaryrefslogtreecommitdiff
path: root/core/inspector.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/inspector.rs')
-rw-r--r--core/inspector.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/inspector.rs b/core/inspector.rs
index 6a254b76c..b1047d421 100644
--- a/core/inspector.rs
+++ b/core/inspector.rs
@@ -150,7 +150,7 @@ impl JsRuntimeInspector {
pub fn new(
isolate: &mut v8::OwnedIsolate,
context: v8::Global<v8::Context>,
- ) -> Box<Self> {
+ ) -> Rc<RefCell<Self>> {
let scope = &mut v8::HandleScope::new(isolate);
let (new_session_tx, new_session_rx) =
@@ -162,7 +162,7 @@ impl JsRuntimeInspector {
let waker = InspectorWaker::new(scope.thread_safe_handle());
// Create JsRuntimeInspector instance.
- let mut self_ = Box::new(Self {
+ let self__ = Rc::new(RefCell::new(Self {
v8_inspector_client,
v8_inspector: Default::default(),
sessions: RefCell::new(SessionContainer::temporary_placeholder()),
@@ -170,7 +170,8 @@ impl JsRuntimeInspector {
flags: Default::default(),
waker,
deregister_tx: None,
- });
+ }));
+ let mut self_ = self__.borrow_mut();
self_.v8_inspector = Rc::new(RefCell::new(
v8::inspector::V8Inspector::create(scope, &mut *self_).into(),
));
@@ -192,8 +193,9 @@ impl JsRuntimeInspector {
// Poll the session handler so we will get notified whenever there is
// new incoming debugger activity.
let _ = self_.poll_sessions(None).unwrap();
+ drop(self_);
- self_
+ self__
}
pub fn has_active_sessions(&self) -> bool {