diff options
| author | Po Lu | 2022-04-05 20:03:48 +0800 |
|---|---|---|
| committer | Po Lu | 2022-04-05 20:19:09 +0800 |
| commit | 7d504c9acc0c8d75d11c3a2b5e016f39e6156bf8 (patch) | |
| tree | 3207ff8a7d216c4908efcb360e6bc5d9a2b03e0e /src/alloc.c | |
| parent | 91ca41e292184bf0c21b55a8e51f3eb1a8c89bb7 (diff) | |
| download | emacs-7d504c9acc0c8d75d11c3a2b5e016f39e6156bf8.tar.gz emacs-7d504c9acc0c8d75d11c3a2b5e016f39e6156bf8.zip | |
Mark some data during drag-and-drop
It doesn't make sense to prevent the return frame or movement
frame from being deleted, but we should at least protect them
from garbage collection.
* src/alloc.c (garbage_collect): Call mark_xterm.
* src/xterm.c (x_dnd_begin_drag_and_drop)
(x_dnd_cleanup_drag_and_drop): Clear movement and return frames
upon DND completion.
(mark_xterm): Mark those frames.
* src/xterm.h: Update prototypes.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index 6d91ec33585..733f7733fa9 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6196,6 +6196,10 @@ garbage_collect (void) | |||
| 6196 | mark_fringe_data (); | 6196 | mark_fringe_data (); |
| 6197 | #endif | 6197 | #endif |
| 6198 | 6198 | ||
| 6199 | #ifdef HAVE_X_WINDOWS | ||
| 6200 | mark_xterm (); | ||
| 6201 | #endif | ||
| 6202 | |||
| 6199 | /* Everything is now marked, except for the data in font caches, | 6203 | /* Everything is now marked, except for the data in font caches, |
| 6200 | undo lists, and finalizers. The first two are compacted by | 6204 | undo lists, and finalizers. The first two are compacted by |
| 6201 | removing an items which aren't reachable otherwise. */ | 6205 | removing an items which aren't reachable otherwise. */ |