diff --git a/src/bytecode/bytecode.cc b/src/bytecode/bytecode.cc index 58950d1..2f75371 100644 --- a/src/bytecode/bytecode.cc +++ b/src/bytecode/bytecode.cc @@ -25,7 +25,7 @@ Bytecode::Bytecode(ByteArray ba) uint32_t code_start = byte_array_.get_uint32(TOC_START + (3 * TOC_RECORD_SZ)); for (uint32_t i = 0; i < cache_.n_functions; ++i) { cache_.function_addr.emplace_back(code_start + byte_array_.get_uint32(cache_.functions_idx_addr + (i * FUNCTION_RECORD_SZ))); - cache_.function_sz.emplace_back(code_start + byte_array_.get_uint32(cache_.functions_idx_addr + (i * FUNCTION_RECORD_SZ) + 8)); + cache_.function_sz.emplace_back(byte_array_.get_uint32(cache_.functions_idx_addr + (i * FUNCTION_RECORD_SZ) + 8)); } } diff --git a/src/bytecode/tests.cc b/src/bytecode/tests.cc index a0dc262..fba1aa5 100644 --- a/src/bytecode/tests.cc +++ b/src/bytecode/tests.cc @@ -140,6 +140,8 @@ TEST(Bytecode, Parsing) ASSERT_EQ(bc.n_constants(), 2); ASSERT_EQ(bc.n_functions(), 2); + ASSERT_EQ(bc.get_function_sz(0), 2); + ASSERT_EQ(bc.get_function_sz(1), 1); ASSERT_FLOAT_EQ(std::get(bc.get_constant(0)), 3.14f); ASSERT_EQ(std::get(bc.get_constant(1)), "HELLO");