Skip to content

Commit 3bab2a6

Browse files
authored
Updated object and INVOKE function.
Merge pull request aq-org#59 from ax-6/main
2 parents 6c5aa0c + 224229e commit 3bab2a6

1 file changed

Lines changed: 9 additions & 11 deletions

File tree

prototype/prototype.c

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
typedef struct {
1313
size_t size;
1414
size_t* index;
15-
} Object;
15+
} InternalObject;
1616

17-
typedef void (*func_ptr)(Object, Object);
17+
typedef void (*func_ptr)(InternalObject, size_t);
1818

1919
struct Pair {
2020
char* first;
@@ -543,7 +543,7 @@ void* Get4Parament(void* ptr, size_t* first, size_t* second, size_t* third,
543543
return ptr;
544544
}
545545

546-
int INVOKE(size_t* func, Object return_value, Object args);
546+
int INVOKE(size_t* func, size_t return_value, InternalObject args);
547547

548548
void* GetUnknownCountParamentAndINVOKE(void* ptr, size_t* return_value,
549549
size_t* arg_count) {
@@ -570,8 +570,6 @@ void* GetUnknownCountParamentAndINVOKE(void* ptr, size_t* return_value,
570570
++size;
571571
}
572572

573-
Object return_obj = {1, return_value};
574-
575573
state = 0;
576574
size = 0;
577575
while (state == 0) {
@@ -583,7 +581,7 @@ void* GetUnknownCountParamentAndINVOKE(void* ptr, size_t* return_value,
583581
++size;
584582
}
585583

586-
Object args_obj = {*arg_count, NULL};
584+
InternalObject args_obj = {*arg_count, NULL};
587585

588586
size_t* args = malloc(*arg_count * sizeof(size_t));
589587

@@ -604,7 +602,7 @@ void* GetUnknownCountParamentAndINVOKE(void* ptr, size_t* return_value,
604602

605603
args_obj.index = args;
606604

607-
INVOKE(&func, return_obj, args_obj);
605+
INVOKE(&func, *return_value, args_obj);
608606

609607
free(args);
610608

@@ -1983,7 +1981,7 @@ int CMP(size_t result, size_t opcode, size_t operand1, size_t operand2) {
19831981
}
19841982
return 0;
19851983
}
1986-
int INVOKE(size_t* func, Object return_value, Object args) {
1984+
int INVOKE(size_t* func, size_t return_value, InternalObject args) {
19871985
func_ptr invoke_func = GetFunction((char*)GetPtrData(*func));
19881986
invoke_func(args, return_value);
19891987
return 0;
@@ -1995,8 +1993,8 @@ void* GOTO(void* ptr, size_t offset) {
19951993
int THROW() { return 0; }
19961994
int WIDE() { return 0; }
19971995

1998-
void print(Object args, Object return_value) {
1999-
SetIntData(*return_value.index, printf((char*)GetPtrData(*args.index)));
1996+
void print(InternalObject args, size_t return_value) {
1997+
SetIntData(return_value, printf((char*)GetPtrData(*args.index)));
20001998
}
20011999

20022000
unsigned int hash(const char* str) {
@@ -2256,4 +2254,4 @@ int main(int argc, char* argv[]) {
22562254
printf("Elapsed time: %f seconds\n", elapsedTime);*/
22572255

22582256
return 0;
2259-
}
2257+
}

0 commit comments

Comments
 (0)