Subject: bug#31996: 27.0.50; [w32] while dumping: assertion failed: specpdl_ptr->kind == SPECPDL_UNWIND_PTR && specpdl_ptr->unwind_ptr.func == xfree

From: Noam Postavsky <[email-masked]>
Date: Thu, 28 Jun 2018 15:10:30 -0400

X-Debbugs-CC: Paul Eggert <[email-masked]>

gdb --args ./temacs --batch  --load loadup bootstrap

(gdb) p specpdl_ptr->kind
$1 = SPECPDL_UNWIND_ARRAY
(gdb) p specpdl_ptr->unwind_ptr.func
$2 = (void (*)(void *)) 0x53898
(gdb) p specpdl_ptr->unwind_array.func
$3 = (void (*)(Lisp_Object)) 0x53898

I guess it's related to the #31750 changes. The problem doesn't seem
especially platform-specific, but I've haven't seen this on my
GNU/Linux box.
The attached patch fixes it, though I'm not sure if it's
entirely correct.