diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-05-06 19:32:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-06 19:32:03 +0200 |
commit | 1e8e44f4c31688ac55100f96bdab27723eb6e575 (patch) | |
tree | 820c3b61ded766ecb912eefddaae4894e399555c /core/bindings.rs | |
parent | f208e6a26f3c21c25dbfcfe29491a6f5660c999d (diff) |
refactor(ops): replace `ZeroCopyBuf` arg by 2nd generic deserializable arg (#10448)
Diffstat (limited to 'core/bindings.rs')
-rw-r--r-- | core/bindings.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/core/bindings.rs b/core/bindings.rs index 8a32bc5da..edf115d27 100644 --- a/core/bindings.rs +++ b/core/bindings.rs @@ -309,21 +309,17 @@ fn opcall<'s>( } }; - // Structured args - let v = args.get(2); + // Deserializable args (may be structured args or ZeroCopyBuf) + let a = args.get(2); + let b = args.get(3); - // Buf arg (optional) - let arg3 = args.get(3); - let buf: Option<ZeroCopyBuf> = match serde_v8::from_v8(scope, arg3) { - Ok(buf) => buf, - Err(err) => { - throw_type_error(scope, format!("Err with buf arg: {}", err)); - return; - } + let payload = OpPayload { + scope, + a, + b, + promise_id, }; - - let payload = OpPayload::new(scope, v, promise_id); - let op = OpTable::route_op(op_id, state.op_state.clone(), payload, buf); + let op = OpTable::route_op(op_id, state.op_state.clone(), payload); match op { Op::Sync(result) => { rv.set(result.to_v8(scope).unwrap()); |