Я перезваниваю объект в Javascript, используя NPAPI. Перед этим вызовом вызываемые мной функции приводят к правильному вызову функций в JavaScript, но при вызовах NPN_Invoke
происходит сбой.
Фрагмент кода:
sBrowserFuncs->releaseobject(object_temp);
object_temp = NPVARIANT_TO_OBJECT(args[0]);
sBrowserFuncs->retainobject(object_temp);
if (send_msg1(sBrowserFuncs, instance, msg_rcv, NPVARIANT_TO_OBJECT(args[0]), msg, name_id))
sendmsg1
порождает новый поток, и этот поток вызывает msg_rcv
назад. Это нормально для порожденного потока для вызова функции основного потока, это причина ошибки.
...
Ее звонок на NPN_Invoke
называется
NPVariant from;
STRINGZ_TO_NPVARIANT(sdata->from, from);
NPIdentifier methodId = NPN_GetStringIdentifier("new_msg");
int res = NPN_Invoke(sdata->instance, object_temp, methodId, &from, 1, &result);
sdata->instance
соответствует instance
object_temp
последний вызванный сохраненный объект
Возвращает 0, а в случае успеха возвращает 1.
В этом случае NPN_Invoke
генерирует 0,