我使用一个外部库(HarfBuzz),它以“无效的函数指针调用”中止。无效的函数指针调用
这是由下面的代码(降低到绝对最小值)的原因:
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