- if (hooks_ != NULL && hooks_->CallFunction != NULL)
- (*hooks_->CallFunction)(context, cif, function, value, values);
- else
- ffi_call(cif, function, value, values);
+ for (CYHook *hook : hooks_)
+ if (hook->CallFunction != NULL) {
+ // XXX: this only supports one hook, but it is a bad idea anyway
+ (*hook->CallFunction)(context, cif, function, value, values);
+ goto from;
+ }
+ ffi_call(cif, function, value, values);