我使用一個外部庫(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