chore: remove trailing whitespace and fix indentation across multiple files
This commit is contained in:
+53
-12
@@ -325,9 +325,23 @@ static bool _rava_vm_execute_instruction(RavaVM_t *vm, RavaCallFrame_t *frame, R
|
||||
break;
|
||||
|
||||
case RAVA_OP_CALL_STATIC: {
|
||||
RavaMethod_t *method = _rava_vm_find_method_cached(vm,
|
||||
int arg_count = instr->operand.call.arg_count;
|
||||
RavaMethod_t *method = (RavaMethod_t*)instr->operand.call.cached_method;
|
||||
if (!method) {
|
||||
RavaValue_t *args = arg_count > 0 ? &stack->values[stack->top - arg_count] : NULL;
|
||||
method = _rava_vm_find_method_overload(vm,
|
||||
instr->operand.call.class_name,
|
||||
instr->operand.call.method_name,
|
||||
args, (size_t)arg_count);
|
||||
if (!method) {
|
||||
method = _rava_vm_find_method_cached(vm,
|
||||
instr->operand.call.class_name,
|
||||
instr->operand.call.method_name);
|
||||
}
|
||||
if (method) {
|
||||
instr->operand.call.cached_method = method;
|
||||
}
|
||||
}
|
||||
if (!method) {
|
||||
vm->had_error = true;
|
||||
vm->error_message = malloc(RAVA_ERROR_BUFFER_SIZE);
|
||||
@@ -339,7 +353,7 @@ static bool _rava_vm_execute_instruction(RavaVM_t *vm, RavaCallFrame_t *frame, R
|
||||
|
||||
RavaCallFrame_t *new_frame = rava_call_frame_create(method);
|
||||
|
||||
for (int i = instr->operand.call.arg_count - 1; i >= 0; i--) {
|
||||
for (int i = arg_count - 1; i >= 0; i--) {
|
||||
new_frame->locals[i] = rava_stack_pop(stack);
|
||||
}
|
||||
|
||||
@@ -387,7 +401,11 @@ static bool _rava_vm_execute_instruction(RavaVM_t *vm, RavaCallFrame_t *frame, R
|
||||
class_name = obj_val.data.object_val->class_name;
|
||||
}
|
||||
|
||||
RavaMethod_t *method = _rava_vm_find_method_cached(vm, class_name, instr->operand.call.method_name);
|
||||
RavaMethod_t *method = _rava_vm_find_method_overload(vm, class_name, instr->operand.call.method_name,
|
||||
args, (size_t)instr->operand.call.arg_count);
|
||||
if (!method) {
|
||||
method = _rava_vm_find_method_cached(vm, class_name, instr->operand.call.method_name);
|
||||
}
|
||||
if (!method) {
|
||||
if (strcmp(instr->operand.call.method_name, "<init>") == 0 && instr->operand.call.arg_count == 0) {
|
||||
break;
|
||||
@@ -467,7 +485,11 @@ static bool _rava_vm_execute_instruction(RavaVM_t *vm, RavaCallFrame_t *frame, R
|
||||
RavaValue_t obj_val = rava_stack_pop(stack);
|
||||
const char *super_class = instr->operand.call.class_name;
|
||||
|
||||
RavaMethod_t *method = _rava_vm_find_method_cached(vm, super_class, instr->operand.call.method_name);
|
||||
RavaMethod_t *method = _rava_vm_find_method_overload(vm, super_class, instr->operand.call.method_name,
|
||||
args, (size_t)instr->operand.call.arg_count);
|
||||
if (!method) {
|
||||
method = _rava_vm_find_method_cached(vm, super_class, instr->operand.call.method_name);
|
||||
}
|
||||
if (!method) {
|
||||
vm->had_error = true;
|
||||
vm->error_message = malloc(RAVA_ERROR_BUFFER_SIZE);
|
||||
@@ -3640,8 +3662,23 @@ uf_label:
|
||||
|
||||
uf_call:
|
||||
uf_call_static: {
|
||||
RavaMethod_t *target = _rava_vm_find_method_cached(vm,
|
||||
instr->operand.call.class_name, instr->operand.call.method_name);
|
||||
RavaNanboxValue_t args[16];
|
||||
for (int i = instr->operand.call.arg_count - 1; i >= 0; i--) {
|
||||
args[i] = UF_POP();
|
||||
}
|
||||
RavaMethod_t *target = (RavaMethod_t*)instr->operand.call.cached_method;
|
||||
if (!target) {
|
||||
target = _rava_vm_find_method_overload_nb(vm,
|
||||
instr->operand.call.class_name, instr->operand.call.method_name,
|
||||
args, (size_t)instr->operand.call.arg_count);
|
||||
if (!target) {
|
||||
target = _rava_vm_find_method_cached(vm,
|
||||
instr->operand.call.class_name, instr->operand.call.method_name);
|
||||
}
|
||||
if (target) {
|
||||
instr->operand.call.cached_method = target;
|
||||
}
|
||||
}
|
||||
if (!target) {
|
||||
vm->had_error = true;
|
||||
goto uf_done;
|
||||
@@ -3650,10 +3687,6 @@ uf_call_static: {
|
||||
rava_optimize_superinstructions(target);
|
||||
target->label_table = rava_labeltable_create(target->instructions);
|
||||
}
|
||||
RavaNanboxValue_t args[16];
|
||||
for (int i = instr->operand.call.arg_count - 1; i >= 0; i--) {
|
||||
args[i] = UF_POP();
|
||||
}
|
||||
frame->pc = pc;
|
||||
FastFrame_t *new_frame = rava_fastframe_push(target, target->local_count);
|
||||
if (!new_frame) {
|
||||
@@ -3767,7 +3800,11 @@ uf_call_virtual: {
|
||||
}
|
||||
RavaObject_t *obj = rava_nanbox_as_object(obj_val);
|
||||
const char *class_name = obj->class_name;
|
||||
RavaMethod_t *target = _rava_vm_find_method_cached(vm, class_name, instr->operand.call.method_name);
|
||||
RavaMethod_t *target = _rava_vm_find_method_overload_nb(vm, class_name, instr->operand.call.method_name,
|
||||
args, (size_t)arg_count);
|
||||
if (!target) {
|
||||
target = _rava_vm_find_method_cached(vm, class_name, instr->operand.call.method_name);
|
||||
}
|
||||
if (!target) {
|
||||
if (strcmp(mname, "<init>") == 0 && arg_count == 0) {
|
||||
UF_DISPATCH();
|
||||
@@ -3824,7 +3861,11 @@ uf_call_super: {
|
||||
}
|
||||
RavaNanboxValue_t obj_val = UF_POP();
|
||||
const char *super_class = instr->operand.call.class_name;
|
||||
RavaMethod_t *target = _rava_vm_find_method_cached(vm, super_class, instr->operand.call.method_name);
|
||||
RavaMethod_t *target = _rava_vm_find_method_overload_nb(vm, super_class, instr->operand.call.method_name,
|
||||
args, (size_t)arg_count);
|
||||
if (!target) {
|
||||
target = _rava_vm_find_method_cached(vm, super_class, instr->operand.call.method_name);
|
||||
}
|
||||
if (!target) {
|
||||
vm->had_error = true;
|
||||
goto uf_done;
|
||||
|
||||
@@ -154,6 +154,7 @@ RavaClass_t* _rava_vm_find_class(RavaVM_t *vm, const char *class_name);
|
||||
RavaMethod_t* _rava_vm_find_method(RavaVM_t *vm, const char *class_name, const char *method_name);
|
||||
RavaMethod_t* _rava_vm_find_method_cached(RavaVM_t *vm, const char *class_name, const char *method_name);
|
||||
RavaMethod_t* _rava_vm_find_method_overload(RavaVM_t *vm, const char *class_name, const char *method_name, RavaValue_t *args, size_t arg_count);
|
||||
RavaMethod_t* _rava_vm_find_method_overload_nb(RavaVM_t *vm, const char *class_name, const char *method_name, RavaNanboxValue_t *args, size_t arg_count);
|
||||
|
||||
RavaStaticFieldTable_t* rava_static_field_table_create(void);
|
||||
void rava_static_field_table_destroy(RavaStaticFieldTable_t *table);
|
||||
|
||||
@@ -119,3 +119,15 @@ RavaMethod_t* _rava_vm_find_method_cached(RavaVM_t *vm, const char *class_name,
|
||||
}
|
||||
return method;
|
||||
}
|
||||
|
||||
RavaMethod_t* _rava_vm_find_method_overload_nb(RavaVM_t *vm, const char *class_name, const char *method_name, RavaNanboxValue_t *args, size_t arg_count) {
|
||||
if (arg_count == 0) {
|
||||
return _rava_vm_find_method_overload(vm, class_name, method_name, NULL, 0);
|
||||
}
|
||||
RavaValue_t converted_args[16];
|
||||
size_t count = arg_count > 16 ? 16 : arg_count;
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
converted_args[i] = rava_nanbox_to_value(args[i]);
|
||||
}
|
||||
return _rava_vm_find_method_overload(vm, class_name, method_name, converted_args, count);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user