From 2ca454b402d48c1808f8233c5adedc11b714c63c Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 15 Aug 2021 13:29:19 +0200 Subject: 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 ... --- runtime/ops/io.rs | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) (limited to 'runtime/ops/io.rs') 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, { // First we look up the rid in the resource table. - let resource = state - .resource_table - .get::(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.resource_table.get::(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, ) -> Result { 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::() { s.read(buf).await? } else if let Some(s) = resource.downcast_rc::() { @@ -452,11 +445,7 @@ async fn op_write_async( buf: Option, ) -> Result { 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::() { s.write(buf).await? } else if let Some(s) = resource.downcast_rc::() { @@ -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::() { s.shutdown().await?; } else if let Some(s) = resource.downcast_rc::() { -- cgit v1.2.3