diff options
author | Bert Belder <bertbelder@gmail.com> | 2018-10-07 23:48:06 +0200 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2018-10-08 18:19:32 +0200 |
commit | e742af10aa67dc90a68fcb60b8e70733fd753e68 (patch) | |
tree | bc9d7360c5a8cb94e93f9dabf5749b94addc0c18 /libdeno/from_filesystem.cc | |
parent | d86e5d2605c68606c8073d1b563d3389ea93c112 (diff) |
Abide by the rules when passing Isolate between c and rust
Ensure that at most one mutable Isolate reference exists at a time.
`deno_execute()` and `deno_respond()` now borrow a reference to the rust-side
isolate from the caller. When we need a reference to the isolate while one of
these functions is on the stack, `deno_get_data()` can be used to borrow back
that reference.
Diffstat (limited to 'libdeno/from_filesystem.cc')
-rw-r--r-- | libdeno/from_filesystem.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libdeno/from_filesystem.cc b/libdeno/from_filesystem.cc index 701925c9c..6b9f5ca1f 100644 --- a/libdeno/from_filesystem.cc +++ b/libdeno/from_filesystem.cc @@ -14,7 +14,7 @@ namespace deno { -Deno* NewFromFileSystem(void* user_data, deno_recv_cb cb) { +Deno* NewFromFileSystem(deno_recv_cb cb) { std::string exe_path; CHECK(deno::ExePath(&exe_path)); std::string exe_dir = deno::Dirname(exe_path); // Always ends with a slash. @@ -30,7 +30,7 @@ Deno* NewFromFileSystem(void* user_data, deno_recv_cb cb) { Deno* d = new Deno; d->currentArgs = nullptr; d->cb = cb; - d->user_data = user_data; + d->user_data = nullptr; v8::Isolate::CreateParams params; params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator(); @@ -55,7 +55,5 @@ Deno* NewFromFileSystem(void* user_data, deno_recv_cb cb) { } // namespace deno extern "C" { -Deno* deno_new(void* user_data, deno_recv_cb cb) { - return deno::NewFromFileSystem(user_data, cb); -} +Deno* deno_new(deno_recv_cb cb) { return deno::NewFromFileSystem(cb); } } |