Commit a6e76fc7 authored by Paul Eggert's avatar Paul Eggert

Port xwidget to -DCHECK_LISP_OBJECT_TYPE

* src/xwidget.c (webkit_javascript_finished_cb)
(Fxwidget_webkit_execute_script): Don't assume Lisp_Object is an
integer.  This fix is just a hack; I’ll file a bug report about
the underlying problem.
parent 589bd0c2
......@@ -389,7 +389,10 @@ webkit_javascript_finished_cb (GObject *webview,
/* Register an xwidget event here, which then runs the callback.
This ensures that the callback runs in sync with the Emacs
event loop. */
store_xwidget_js_callback_event (xw, (Lisp_Object)lisp_callback,
/* FIXME: This might lead to disaster if LISP_CALLBACK’s object
was garbage collected before now. See the FIXME in
Fxwidget_webkit_execute_script. */
store_xwidget_js_callback_event (xw, XIL ((intptr_t) lisp_callback),
lisp_value);
}
......@@ -714,8 +717,13 @@ argument procedure FUN.*/)
if (!NILP (fun) && !FUNCTIONP (fun))
wrong_type_argument (Qinvalid_function, fun);
void *callback = (FUNCTIONP (fun)) ?
&webkit_javascript_finished_cb : NULL;
GAsyncReadyCallback callback
= FUNCTIONP (fun) ? webkit_javascript_finished_cb : NULL;
/* FIXME: This hack might lead to disaster if FUN is garbage
collected before store_xwidget_js_callback_event makes it visible
to Lisp again. See the FIXME in webkit_javascript_finished_cb. */
gpointer callback_arg = (gpointer) (intptr_t) XLI (fun);
/* JavaScript execution happens asynchronously. If an elisp
callback function is provided we pass it to the C callback
......@@ -723,8 +731,7 @@ argument procedure FUN.*/)
webkit_web_view_run_javascript (WEBKIT_WEB_VIEW (xw->widget_osr),
SSDATA (script),
NULL, /* cancelable */
callback,
(gpointer) fun);
callback, callback_arg);
return Qnil;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment