I think I found why it crashes
I add another printf in event_stream_disable_wakeup like this
one-shot. */
if (!NILP (rest))
{
Lisp_Object op = XCAR (rest);
*timeout_list =
delq_no_quit_and_free_cons (op, *timeout_list);
fprintf(stderr,"Unlist %i\n",timeout->interval_id);
if (async_p)
event_stream_remove_async_timeout (timeout->interval_id);
else
event_stream_remove_timeout (timeout->interval_id);
free_managed_opaque (Vtimeout_free_list, op);
(Note: For me it safer to delete the timer first and then delete it
from the list).
Now look at the trace
Unlist 73
Removed: 4377440
Allocated: 82
InList 82
Completed: 82
Looking up: 82 (0)
Allocated: 83
Unlist 83
Removed: 4377440
Up to here evey "UnList" if followed by an Removed call
Allocated: 84
InList 84
Unlist 84
Here it isn't!
Allocated: 85
InList 85
Unlist 85
Removed: 4377440
Allocated: 86
InList 86
Completed: 84
Looking up: 84 (0)
Fatal error: assertion failed, file event-stream.c, line 1214, !NILP (rest)
And now "84" comes in and BOOM!
Now you tell me what this has to do with drag and drop...
Jan
Show replies by date