@@ -99,12 +99,12 @@ unsigned int ffi_prep_args(char *stack, extended_cif *ecif)
99
99
i != 0 ;
100
100
i -- , p_arg += dir , p_argv += dir )
101
101
{
102
+ size_t z = (* p_arg )-> size ;
103
+
102
104
/* Align if necessary */
103
105
if ((sizeof (void * ) - 1 ) & (size_t ) argp )
104
106
argp = (char * ) ALIGN (argp , sizeof (void * ));
105
107
106
- size_t z = (* p_arg )-> size ;
107
-
108
108
#ifdef X86_WIN64
109
109
if (z > FFI_SIZEOF_ARG
110
110
|| ((* p_arg )-> type == FFI_TYPE_STRUCT
@@ -202,6 +202,7 @@ unsigned int ffi_prep_args(char *stack, extended_cif *ecif)
202
202
on top of stack, so that those can be moved to registers by call-handler. */
203
203
if (stack_args_count > 0 )
204
204
{
205
+ unsigned i ;
205
206
if (dir < 0 && stack_args_count > 1 )
206
207
{
207
208
/* Reverse order if iterating arguments backwards */
@@ -210,7 +211,6 @@ unsigned int ffi_prep_args(char *stack, extended_cif *ecif)
210
211
* (ffi_arg * ) p_stack_data [stack_args_count - 1 ] = tmp ;
211
212
}
212
213
213
- int i ;
214
214
for (i = 0 ; i < stack_args_count ; i ++ )
215
215
{
216
216
if (p_stack_data [i ] != argp2 )
@@ -572,11 +572,12 @@ ffi_prep_incoming_args(char *stack, void **rvalue, void **avalue,
572
572
i < cif -> nargs && passed_regs < max_stack_count ;
573
573
i ++ , p_arg ++ )
574
574
{
575
+ size_t sz = (* p_arg )-> size ;
576
+
575
577
if ((* p_arg )-> type == FFI_TYPE_FLOAT
576
578
|| (* p_arg )-> type == FFI_TYPE_STRUCT )
577
579
continue ;
578
580
579
- size_t sz = (* p_arg )-> size ;
580
581
if (sz == 0 || sz > FFI_SIZEOF_ARG )
581
582
continue ;
582
583
@@ -602,12 +603,12 @@ ffi_prep_incoming_args(char *stack, void **rvalue, void **avalue,
602
603
i != 0 ;
603
604
i -- , p_arg += dir , p_argv += dir )
604
605
{
606
+ size_t z = (* p_arg )-> size ;
607
+
605
608
/* Align if necessary */
606
609
if ((sizeof (void * ) - 1 ) & (size_t ) argp )
607
610
argp = (char * ) ALIGN (argp , sizeof (void * ));
608
611
609
- size_t z = (* p_arg )-> size ;
610
-
611
612
#ifdef X86_WIN64
612
613
if (z > FFI_SIZEOF_ARG
613
614
|| ((* p_arg )-> type == FFI_TYPE_STRUCT
@@ -858,11 +859,12 @@ ffi_prep_args_raw(char *stack, extended_cif *ecif)
858
859
859
860
for (i = 0 ; i < cif -> nargs && passed_regs <= max_regs ; i ++ )
860
861
{
862
+ size_t sz = cif -> arg_types [i ]-> size ;
863
+
861
864
if (cif -> arg_types [i ]-> type == FFI_TYPE_FLOAT
862
865
|| cif -> arg_types [i ]-> type == FFI_TYPE_STRUCT )
863
866
continue ;
864
867
865
- size_t sz = cif -> arg_types [i ]-> size ;
866
868
if (sz == 0 || sz > FFI_SIZEOF_ARG )
867
869
continue ;
868
870
0 commit comments