vrclient: Fix float parameters in x64 C API thunks.

This commit is contained in:
Józef Kucia 2018-07-30 17:40:06 +02:00
parent 92f395ddd5
commit 304a3d8b76
20 changed files with 2718 additions and 2394 deletions

View file

@ -16,7 +16,8 @@ struct thunk
extern void call_flat_method(void);
static inline void init_thunk( struct thunk *thunk, void *this, void *proc, int param_count )
static inline void init_thunk( struct thunk *thunk, void *this, void *proc,
int param_count, BOOL has_floats, BOOL is_4th_float )
{
thunk->mov_ecx = 0xb9;
thunk->this = this;
@ -51,14 +52,16 @@ static const struct thunk thunk_template =
typedef void (*pfn_call_flat_method)(void);
extern pfn_call_flat_method get_call_flat_method_pfn( int param_count );
extern pfn_call_flat_method
get_call_flat_method_pfn( int param_count, BOOL has_floats, BOOL is_4th_float );
static inline void init_thunk( struct thunk *thunk, void *this, void *proc, int param_count )
static inline void init_thunk( struct thunk *thunk, void *this, void *proc,
int param_count, BOOL has_floats, BOOL is_4th_float )
{
*thunk = thunk_template;
thunk->this = this;
thunk->proc = proc;
thunk->call_flat = get_call_flat_method_pfn(param_count);
thunk->call_flat = get_call_flat_method_pfn(param_count, has_floats, is_4th_float);
}
#endif