From bcca489318706279d28f0c4183c4108f1a7064b4 Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Sun, 28 Jun 2026 18:28:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20array=5Fptr=5Flen!=20=E5=AE=8F?= =?UTF-8?q?=E4=B8=BA=20ArrayLike=20=E6=89=A9=E5=B1=95=E5=81=9A=E5=87=86?= =?UTF-8?q?=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_builtins/src/array.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/oxide_builtins/src/array.rs b/crates/oxide_builtins/src/array.rs index a7534b11..a96ef973 100644 --- a/crates/oxide_builtins/src/array.rs +++ b/crates/oxide_builtins/src/array.rs @@ -21,8 +21,14 @@ macro_rules! array_ptr { macro_rules! array_ptr_len { ($vm:expr, $args:expr) => {{ - let arr_ptr = array_ptr!($vm, $args); - let len = unsafe { (*arr_ptr).prop_count() } as usize; + let this_val = $vm.reg($args[0]); + let (arr_ptr, len, _is_arr) = match get_this_arraylike($vm, this_val) { + Ok(v) => v, + Err(err) => { + builtins_error!("Array method: invalid receiver"); + return NativeResult::Err(err); + } + }; (arr_ptr, len) }}; }