diff options
| author | Andrea Corallo <akrl@sdf.org> | 2020-05-17 22:49:02 +0100 |
|---|---|---|
| committer | Andrea Corallo <akrl@sdf.org> | 2020-05-17 22:49:02 +0100 |
| commit | cd4ef52c8673a76c6fcb0efd7d2c74778522038c (patch) | |
| tree | b3d4b99c92ddccc02a2f3ee846b11419dde1d892 /src | |
| parent | 9e9421c7eecd74c9f163253ab760044fca53f26b (diff) | |
| parent | abec255c024938a40fa3c9730f602c0351e5877d (diff) | |
Merge remote-tracking branch 'savannah/master' into HEAD
Diffstat (limited to 'src')
| -rw-r--r-- | src/alloc.c | 4 | ||||
| -rw-r--r-- | src/lisp.h | 10 | ||||
| -rw-r--r-- | src/xdisp.c | 2 | ||||
| -rw-r--r-- | src/xfns.c | 8 |
4 files changed, 16 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c index f2b80fac882..d6ba4d97905 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -4952,12 +4952,10 @@ typedef union #ifdef HAVE___BUILTIN_UNWIND_INIT # define SET_STACK_TOP_ADDRESS(p) \ stacktop_sentry sentry; \ - __builtin_unwind_init (); \ *(p) = NEAR_STACK_TOP (&sentry) #else # define SET_STACK_TOP_ADDRESS(p) \ stacktop_sentry sentry; \ - __builtin_unwind_init (); \ test_setjmp (); \ sys_setjmp (sentry.j); \ *(p) = NEAR_STACK_TOP (&sentry + (stack_bottom < &sentry.c)) @@ -5033,7 +5031,7 @@ mark_stack (char const *bottom, char const *end) from FUNC. */ NO_INLINE void -flush_stack_call_func (void (*func) (void *arg), void *arg) +flush_stack_call_func1 (void (*func) (void *arg), void *arg) { void *end; struct thread_state *self = current_thread; diff --git a/src/lisp.h b/src/lisp.h index 66a86ddadfa..893e278afe0 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3819,7 +3819,15 @@ extern void alloc_unexec_pre (void); extern void alloc_unexec_post (void); extern void mark_maybe_objects (Lisp_Object const *, ptrdiff_t); extern void mark_stack (char const *, char const *); -extern void flush_stack_call_func (void (*func) (void *arg), void *arg); +extern void flush_stack_call_func1 (void (*func) (void *arg), void *arg); + +INLINE void +flush_stack_call_func (void (*func) (void *arg), void *arg) +{ + __builtin_unwind_init (); + flush_stack_call_func1 (func, arg); +} + extern void garbage_collect (void); extern void maybe_garbage_collect (void); extern const char *pending_malloc_warning; diff --git a/src/xdisp.c b/src/xdisp.c index d65bb388699..cf15f579b58 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5120,7 +5120,7 @@ handle_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object, if (CONSP (spec) && EQ (XCAR (spec), Qdisable_eval)) { enable_eval = false; - spec = XCAR (XCDR (spec)); + spec = CONSP (XCDR (spec)) ? XCAR (XCDR (spec)) : Qnil; } if (CONSP (spec) diff --git a/src/xfns.c b/src/xfns.c index 1f381e2a8b0..2ab5080d977 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -6738,9 +6738,11 @@ x_hide_tip (bool delete) } } - /* Reset tip_last_frame, it will be reassigned when showing the - next GTK+ system tooltip. */ - tip_last_frame = Qnil; + /* When using GTK+ system tooltips (compare Bug#41200) reset + tip_last_frame. It will be reassigned when showing the next + GTK+ system tooltip. */ + if (x_gtk_use_system_tooltips) + tip_last_frame = Qnil; /* Now look whether there's an Emacs tip around. */ if (FRAMEP (tip_frame)) |
