summaryrefslogtreecommitdiff
path: root/runtime/ops/tty.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-05-10 10:13:08 -0400
committerGitHub <noreply@github.com>2022-05-10 10:13:08 -0400
commit11c13fb9819a479a5a69278fff3703cf893d3df1 (patch)
tree832d253433eb14fe92a54715e07bbd38bff92acd /runtime/ops/tty.rs
parent64f9711f7d61cabda98f4a9278b681a5490cd46d (diff)
refactor: remove unused `Option`s on `StdFileResource.fs_file` (#14549)
Diffstat (limited to 'runtime/ops/tty.rs')
-rw-r--r--runtime/ops/tty.rs39
1 files changed, 8 insertions, 31 deletions
diff --git a/runtime/ops/tty.rs b/runtime/ops/tty.rs
index 789847697..7644d7567 100644
--- a/runtime/ops/tty.rs
+++ b/runtime/ops/tty.rs
@@ -2,8 +2,6 @@
use super::io::StdFileResource;
use deno_core::error::bad_resource_id;
-use deno_core::error::not_supported;
-use deno_core::error::resource_unavailable;
use deno_core::error::AnyError;
use deno_core::op;
use deno_core::Extension;
@@ -88,23 +86,12 @@ fn op_set_raw(state: &mut OpState, args: SetRawArgs) -> Result<(), AnyError> {
let resource = state.resource_table.get::<StdFileResource>(rid)?;
if cbreak {
- return Err(not_supported());
+ return Err(deno_core::error::not_supported());
}
- if resource.fs_file.is_none() {
- return Err(bad_resource_id());
- }
-
- let handle_result = if let Some((fs_file, _)) = &resource.fs_file {
- let file = fs_file.as_ref().unwrap().clone();
- let std_file = file.lock().unwrap();
- let raw_handle = std_file.as_raw_handle();
- Ok(raw_handle)
- } else {
- Err(resource_unavailable())
- };
-
- let handle = handle_result?;
+ let std_file = resource.std_file()?;
+ let std_file = std_file.lock().unwrap(); // hold the lock
+ let handle = std_file.as_raw_handle();
if handle == handleapi::INVALID_HANDLE_VALUE {
return Err(Error::last_os_error().into());
@@ -133,20 +120,10 @@ fn op_set_raw(state: &mut OpState, args: SetRawArgs) -> Result<(), AnyError> {
use std::os::unix::io::AsRawFd;
let resource = state.resource_table.get::<StdFileResource>(rid)?;
-
- if resource.fs_file.is_none() {
- return Err(not_supported());
- }
-
- let (fs_file, meta) =
- resource.fs_file.as_ref().ok_or_else(resource_unavailable)?;
-
- if fs_file.is_none() {
- return Err(resource_unavailable());
- }
-
- let raw_fd = fs_file.as_ref().unwrap().lock().unwrap().as_raw_fd();
- let maybe_tty_mode = &mut meta.as_ref().unwrap().borrow_mut().tty.mode;
+ let std_file = resource.std_file()?;
+ let raw_fd = std_file.lock().unwrap().as_raw_fd();
+ let mut meta_data = resource.metadata_mut();
+ let maybe_tty_mode = &mut meta_data.tty.mode;
if is_raw {
if maybe_tty_mode.is_none() {