Skip to content

Commit 05c822b

Browse files
Fixed for msvc x86 builds
1 parent 664a248 commit 05c822b

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/ffi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ int dynamic_library_load(dynamic_library_table_t* dynamic_library, machine_t* ma
6363
static wchar_t libid_buf[100];
6464
mbstowcs(libid_buf, name, 100);
6565
ESCAPE_ON_FAIL(new_lib->handle = LoadLibrary(libid_buf));
66-
if (!(new_lib->entry_point = GetProcAddress(new_lib->handle, TEXT("superforth_entry")))) {
66+
if (!(new_lib->entry_point = (superforth_dll_entry)GetProcAddress(new_lib->handle, TEXT("superforth_entry")))) {
6767
free(name);
6868
FreeLibrary(new_lib->handle);
6969
return 0;
@@ -76,7 +76,7 @@ int dynamic_library_load(dynamic_library_table_t* dynamic_library, machine_t* ma
7676
return 0;
7777
}
7878
#endif
79-
ESCAPE_ON_FAIL(new_lib->entry_point(machine));
79+
ESCAPE_ON_FAIL((*new_lib->entry_point)(machine));
8080
dynamic_library->imported_lib_count++;
8181
return 1;
8282
}

src/ffi.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
typedef struct machine machine_t;
99
typedef union machine_register machine_reg_t;
1010
typedef int (*foreign_func)(machine_t* machine, machine_reg_t* input, machine_reg_t* output);
11+
typedef int (*superforth_dll_entry)(machine_t* machine);
1112

1213
typedef struct foreign_func_table {
1314
foreign_func* func_table;
@@ -22,7 +23,7 @@ int ffi_invoke(ffi_t* ffi_table, machine_t* machine, machine_reg_t* id_reg, mach
2223

2324
typedef struct dynamic_library {
2425
char* name;
25-
int(*entry_point)(machine_t* machine);
26+
superforth_dll_entry entry_point;
2627
void* handle;
2728
} dynamic_library_t;
2829

0 commit comments

Comments
 (0)