summaryrefslogtreecommitdiff
path: root/libdeno/from_filesystem.cc
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2018-10-07 23:48:06 +0200
committerBert Belder <bertbelder@gmail.com>2018-10-08 18:19:32 +0200
commite742af10aa67dc90a68fcb60b8e70733fd753e68 (patch)
treebc9d7360c5a8cb94e93f9dabf5749b94addc0c18 /libdeno/from_filesystem.cc
parentd86e5d2605c68606c8073d1b563d3389ea93c112 (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.cc8
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); }
}