mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-23 13:27:36 +00:00
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.
This commit is contained in:
parent
589bd0c22b
commit
a6e76fc725
1 changed files with 12 additions and 5 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue