From a93c7fba9e4545bb5a881a111e6206f1239b9f11 Mon Sep 17 00:00:00 2001 From: Vasilii Rogin Date: Thu, 20 Apr 2023 02:26:37 +0300 Subject: [PATCH] Small updates --- src/sfall_arrays.cc | 5 ++--- src/sfall_arrays.h | 2 +- src/sfall_opcodes.cc | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/sfall_arrays.cc b/src/sfall_arrays.cc index 32899ee..4394405 100644 --- a/src/sfall_arrays.cc +++ b/src/sfall_arrays.cc @@ -100,17 +100,16 @@ int LenArray(ArrayId array_id) return arr->size(); } -ProgramValue GetArray(ArrayId array_id, ProgramValue key) +ProgramValue GetArray(ArrayId array_id, const SFallScriptValue& key) { auto arr = get_array_by_id(array_id); if (arr == nullptr) { return SFallScriptValue(0); }; - auto skey = SFallScriptValue(key); // TODO assoc - auto element_index = skey.asInt(); + auto element_index = key.asInt(); if (element_index < 0 || element_index >= arr->size()) { return SFallScriptValue(0); }; diff --git a/src/sfall_arrays.h b/src/sfall_arrays.h index f3a1d7b..acb8915 100644 --- a/src/sfall_arrays.h +++ b/src/sfall_arrays.h @@ -18,7 +18,7 @@ ArrayId CreateArray(int len, uint32_t flags); ArrayId CreateTempArray(int len, uint32_t flags); ProgramValue GetArrayKey(ArrayId array_id, int index); int LenArray(ArrayId array_id); -ProgramValue GetArray(ArrayId array_id, ProgramValue key); +ProgramValue GetArray(ArrayId array_id, const SFallScriptValue& key); void SetArray(ArrayId array_id, const SFallScriptValue& key, const SFallScriptValue& val, bool allowUnset); } diff --git a/src/sfall_opcodes.cc b/src/sfall_opcodes.cc index 2c2f026..18abbe4 100644 --- a/src/sfall_opcodes.cc +++ b/src/sfall_opcodes.cc @@ -326,7 +326,7 @@ static void opGetArray(Program* program) { auto key = programStackPopValue(program); auto arrayId = programStackPopInteger(program); - auto value = GetArray(arrayId, key); + auto value = GetArray(arrayId, SFallScriptValue { key }); programStackPushValue(program, value); }