Я использую внешнюю библиотеку (HarfBuzz), которая прерывается с помощью «Invalid function pointer called».Недопустимый указатель на функцию
Это вызывает по следующему коду (снижение до абсолютного минимума):
typedef void (*hb_destroy_func_t) (void *);
void _do_nothing(void) { }
void test() {
hb_destroy_func_t func = (hb_destroy_func_t) _do_nothing;
void* arg = 0;
func(arg);
}
EMSCRIPTEN_BINDINGS(foobar) {
emscripten::function("test", &test);
}
На данный момент я решить эту проблему путем изменения функции _do_nothing
к:
void doNothing(void *) { }
В связи с тем что это во внешней библиотеке я делаю не хочу изменить источник. Интересно, есть ли возможность «научить» emscripten
для обработки этого случая.
Какие части кода являются частью библиотеки? – anorm
Если это то, что делает библиотека, это ошибка в библиотеке. Доложите об этом. –
@anorm Мое предположение из текста: 'void _do_nothing (void) {}' – guntbert