start working on function calls
This commit is contained in:
@@ -21,7 +21,7 @@ void load_argon_function(Translated *translated, RuntimeState *state,
|
||||
object->type = TYPE_FUNCTION;
|
||||
uint64_t offset = pop_bytecode(translated, state);
|
||||
uint64_t length = pop_bytecode(translated, state);
|
||||
add_field(object, "__class__", new_string_object(arena_get(&translated->constants, offset), length));
|
||||
add_field(object, "__name__", new_string_object(arena_get(&translated->constants, offset), length));
|
||||
object->value.argon_fn.number_of_parameters = pop_bytecode(translated, state);
|
||||
object->value.argon_fn.parameters =
|
||||
ar_alloc(object->value.argon_fn.number_of_parameters * sizeof(struct string_struct));
|
||||
|
||||
@@ -17,7 +17,8 @@ ArgonObject *new_string_object(char*data, size_t length) {
|
||||
ArgonObject * object = new_object();
|
||||
add_field(object, "__class__", ARGON_STRING_TYPE);
|
||||
object->type = TYPE_STRING;
|
||||
object->value.as_str.data = data;
|
||||
object->value.as_str.data = ar_alloc_atomic(length);
|
||||
memcpy(object->value.as_str.data, data, length);
|
||||
object->value.as_str.length = length;
|
||||
return object;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user