diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-02-08 20:34:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-08 20:34:31 +0100 |
commit | cdba5ab6fc633606aaa6f95d0825832c3ac6fe5c (patch) | |
tree | e8dee2801e14b65b2da6aca62e39cd3d3ac2a786 /cli/ops/permissions.rs | |
parent | 619a24390ff15d5ea5e577a4d0391823f94e8592 (diff) |
refactor: rename ThreadSafeState, use RefCell for mutable state (#3931)
* rename ThreadSafeState to State
* State stores InnerState wrapped in Rc and RefCell
Diffstat (limited to 'cli/ops/permissions.rs')
-rw-r--r-- | cli/ops/permissions.rs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/cli/ops/permissions.rs b/cli/ops/permissions.rs index 39d49c32f..7c7cb682c 100644 --- a/cli/ops/permissions.rs +++ b/cli/ops/permissions.rs @@ -3,11 +3,11 @@ use super::dispatch_json::{Deserialize, JsonOp, Value}; use crate::deno_error::other_error; use crate::fs as deno_fs; use crate::ops::json_op; -use crate::state::ThreadSafeState; +use crate::state::State; use deno_core::*; use std::path::Path; -pub fn init(i: &mut Isolate, s: &ThreadSafeState) { +pub fn init(i: &mut Isolate, s: &State) { i.register_op( "query_permission", s.core_op(json_op(s.stateful_op(op_query_permission))), @@ -38,14 +38,14 @@ fn resolve_path(path: &str) -> String { } pub fn op_query_permission( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { let args: PermissionArgs = serde_json::from_value(args)?; - let permissions = state.permissions.lock().unwrap(); + let state = state.borrow(); let resolved_path = args.path.as_ref().map(String::as_str).map(resolve_path); - let perm = permissions.get_permission_state( + let perm = state.permissions.get_permission_state( &args.name, &args.url.as_ref().map(String::as_str), &resolved_path.as_ref().map(String::as_str).map(Path::new), @@ -54,12 +54,13 @@ pub fn op_query_permission( } pub fn op_revoke_permission( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { let args: PermissionArgs = serde_json::from_value(args)?; - let mut permissions = state.permissions.lock().unwrap(); + let mut state = state.borrow_mut(); + let permissions = &mut state.permissions; match args.name.as_ref() { "run" => permissions.allow_run.revoke(), "read" => permissions.allow_read.revoke(), @@ -80,12 +81,13 @@ pub fn op_revoke_permission( } pub fn op_request_permission( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { let args: PermissionArgs = serde_json::from_value(args)?; - let mut permissions = state.permissions.lock().unwrap(); + let mut state = state.borrow_mut(); + let permissions = &mut state.permissions; let resolved_path = args.path.as_ref().map(String::as_str).map(resolve_path); let perm = match args.name.as_ref() { "run" => Ok(permissions.request_run()), |