summaryrefslogtreecommitdiff
path: root/src/bytecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 8e0f3d3e4b2..75f1a6b43e5 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1564,15 +1564,17 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
exit:
- eassert (SDATA (bytestr) == bytestr_data);
-
- /* Binds and unbinds are supposed to be compiled balanced. */
+#if BYTE_CODE_SAFE || !defined NDEBUG
if (SPECPDL_INDEX () != count)
{
+ /* Binds and unbinds are supposed to be compiled balanced. */
if (SPECPDL_INDEX () > count)
unbind_to (count, Qnil);
error ("binding stack not balanced (serious byte compiler bug)");
}
+#endif
+ /* The byte code should have been properly pinned. */
+ eassert (SDATA (bytestr) == bytestr_data);
Lisp_Object result = TOP;
SAFE_FREE ();