diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-08-15 13:29:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-15 13:29:19 +0200 |
commit | 2ca454b402d48c1808f8233c5adedc11b714c63c (patch) | |
tree | 592f9e877e9b0ae92be80383ab723cc290e4b01e /runtime/ops/io.rs | |
parent | 18ff6bb053d600c277613628a256fe5fdd4dda67 (diff) |
refactor(ops): return BadResource errors in ResourceTable calls (#11710)
* refactor(ops): return BadResource errors in ResourceTable calls
Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
Diffstat (limited to 'runtime/ops/io.rs')
-rw-r--r-- | runtime/ops/io.rs | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/runtime/ops/io.rs b/runtime/ops/io.rs index e18846466..82fe3605c 100644 --- a/runtime/ops/io.rs +++ b/runtime/ops/io.rs @@ -1,9 +1,9 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. +use deno_core::error::not_supported; use deno_core::error::null_opbuf; use deno_core::error::resource_unavailable; use deno_core::error::AnyError; -use deno_core::error::{bad_resource_id, not_supported}; use deno_core::op_async; use deno_core::op_sync; use deno_core::AsyncMutFuture; @@ -334,10 +334,7 @@ impl StdFileResource { F: FnMut(Result<&mut std::fs::File, ()>) -> Result<R, AnyError>, { // First we look up the rid in the resource table. - let resource = state - .resource_table - .get::<StdFileResource>(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.resource_table.get::<StdFileResource>(rid)?; // Sync write only works for FsFile. It doesn't make sense to do this // for non-blocking sockets. So we error out if not FsFile. @@ -408,11 +405,7 @@ async fn op_read_async( buf: Option<ZeroCopyBuf>, ) -> Result<u32, AnyError> { let buf = &mut buf.ok_or_else(null_opbuf)?; - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; let nread = if let Some(s) = resource.downcast_rc::<ChildStdoutResource>() { s.read(buf).await? } else if let Some(s) = resource.downcast_rc::<ChildStderrResource>() { @@ -452,11 +445,7 @@ async fn op_write_async( buf: Option<ZeroCopyBuf>, ) -> Result<u32, AnyError> { let buf = &buf.ok_or_else(null_opbuf)?; - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; let nwritten = if let Some(s) = resource.downcast_rc::<ChildStdinResource>() { s.write(buf).await? } else if let Some(s) = resource.downcast_rc::<TcpStreamResource>() { @@ -478,11 +467,7 @@ async fn op_shutdown( rid: ResourceId, _: (), ) -> Result<(), AnyError> { - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; if let Some(s) = resource.downcast_rc::<ChildStdinResource>() { s.shutdown().await?; } else if let Some(s) = resource.downcast_rc::<TcpStreamResource>() { |