@@ -132,7 +132,7 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
132
132
ffi_values[i] = vi;
133
133
} else {
134
134
clever_error (" Argument %N isn't a int!\n " , i + 1 );
135
- return ;
135
+ goto out ;
136
136
}
137
137
} else if (v->isBool ()) {
138
138
if (arg_type == FFIVOID or arg_type == FFIBOOL) {
@@ -145,7 +145,7 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
145
145
ffi_values[i] = b;
146
146
} else {
147
147
clever_error (" Argument %N isn't a bool!\n " , i + 1 );
148
- return ;
148
+ goto out ;
149
149
}
150
150
} else if (v->isStr ()) {
151
151
if (arg_type == FFIVOID or arg_type == FFISTRING) {
@@ -162,7 +162,7 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
162
162
ffi_values[i] = s;
163
163
} else {
164
164
clever_error (" Argument %N isn't a string!\n " , i + 1 );
165
- return ;
165
+ goto out ;
166
166
}
167
167
} else if (v->isDouble ()) {
168
168
if (arg_type == FFIVOID or arg_type == FFIDOUBLE) {
@@ -175,7 +175,7 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
175
175
ffi_values[i] = d;
176
176
} else {
177
177
clever_error (" Argument %N isn't a double!\n " , i + 1 );
178
- return ;
178
+ goto out ;
179
179
}
180
180
} else {
181
181
if (arg_type == FFIVOID or arg_type == FFIPOINTER) {
@@ -186,14 +186,14 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
186
186
ffi_values[i] = &(obj->data );
187
187
} else {
188
188
clever_error (" Argument %N isn't a pointer!\n " , i + 1 );
189
- return ;
189
+ goto out ;
190
190
}
191
191
}
192
192
}
193
193
194
194
if (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, n_args, ffi_rt, ffi_args) != FFI_OK) {
195
195
result->setBool (false );
196
- return ;
196
+ goto out ;
197
197
}
198
198
199
199
#ifndef CLEVER_WIN32
@@ -245,7 +245,7 @@ static void _ffi_call(Value* result, ffi_call_func pf, size_t n_args,
245
245
result->setBool (true );
246
246
}
247
247
#endif
248
-
248
+ out:
249
249
for (size_t i = 0 ; i < n_args; ++i) {
250
250
Value* v = args.at (i + offset);
251
251
0 commit comments