static bool module_eq (emacs_env *env, emacs_value a, emacs_value b) { check_main_thread (); if (module_non_local_exit_check (env) != emacs_funcall_exit_return) return false; return EQ (value_to_lisp (a), value_to_lisp (b)); }
static bool module_is_not_nil (emacs_env *env, emacs_value value) { check_main_thread (); if (module_non_local_exit_check (env) != emacs_funcall_exit_return) return false; return ! NILP (value_to_lisp (value)); }
/* Like for `signal', DATA must be a list. */ static void module_non_local_exit_signal (emacs_env *env, emacs_value sym, emacs_value data) { check_main_thread (); if (module_non_local_exit_check (env) == emacs_funcall_exit_return) module_non_local_exit_signal_1 (env, value_to_lisp (sym), value_to_lisp (data)); }
static void module_non_local_exit_throw (emacs_env *env, emacs_value tag, emacs_value value) { check_main_thread (); if (module_non_local_exit_check (env) == emacs_funcall_exit_return) module_non_local_exit_throw_1 (env, value_to_lisp (tag), value_to_lisp (value)); }
static void module_set_user_ptr (emacs_env *env, emacs_value uptr, void *ptr) { /* FIXME: This function should return bool because it can fail. */ MODULE_FUNCTION_BEGIN (); check_main_thread (); if (module_non_local_exit_check (env) != emacs_funcall_exit_return) return; Lisp_Object lisp = value_to_lisp (uptr); if (! USER_PTRP (lisp)) module_wrong_type (env, Quser_ptr, lisp); XUSER_PTR (lisp)->p = ptr; }