* bug#14412: 24.3.50; emacs_backtrace.txt @ 2013-05-16 21:21 Drew Adams 2013-05-17 9:59 ` Eli Zaretskii 2015-12-26 17:43 ` Paul Eggert 0 siblings, 2 replies; 6+ messages in thread From: Drew Adams @ 2013-05-16 21:21 UTC (permalink / raw) To: 14412 Backtrace: 0x01159525 0x01159597 0x01001459 0x01021A5E 0x0101675C 0x010D82B4 0x010D938E 0x010D8F02 0x010116DA 0x010118DF 0x0101120C 0x01011326 0x01011365 0x01006765 0x010E4AC8 0x0101596C 0x01014E87 0x010E5146 0x01015511 0x01014E87 0x010E5146 0x0101596C 0x01014E87 0x010E5146 0x0101596C 0x01014E87 0x01013C70 0x010141D4 0x010E8FBA 0x01014B45 0x010E5146 0x01015511 0x01014E87 0x01014229 0x01024826 0x01010C39 0x01023814 0x01010696 0x010237CE 0x01022D88 0x010230B5 0x010029C4 0x010010F9 0x7C81776B In GNU Emacs 24.3.50.1 (i386-mingw-nt5.1.2600) of 2013-05-14 on ODIEONE Bzr revision: 112586 juri@jurta.org-20130514233814-nnkh1ymiqgoq2fk6 Windowing system distributor `Microsoft Corp.', version 5.1.2600 Configured using: `configure --with-gcc (4.7) --no-opt --enable-checking --cflags -IC:/Devel/emacs/build/include --ldflags -LC:/Devel/emacs/build/lib' ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14412: 24.3.50; emacs_backtrace.txt 2013-05-16 21:21 bug#14412: 24.3.50; emacs_backtrace.txt Drew Adams @ 2013-05-17 9:59 ` Eli Zaretskii 2015-12-26 0:47 ` Lars Ingebrigtsen 2015-12-26 17:43 ` Paul Eggert 1 sibling, 1 reply; 6+ messages in thread From: Eli Zaretskii @ 2013-05-17 9:59 UTC (permalink / raw) To: Drew Adams; +Cc: 14412 > From: "Drew Adams" <drew.adams@oracle.com> > Date: Thu, 16 May 2013 14:21:05 -0700 > > Backtrace: > 0x01159525 > 0x01159597 > 0x01001459 > 0x01021A5E > 0x0101675C > 0x010D82B4 > 0x010D938E > 0x010D8F02 > 0x010116DA > 0x010118DF > 0x0101120C > 0x01011326 > 0x01011365 > 0x01006765 > 0x010E4AC8 > 0x0101596C > 0x01014E87 > 0x010E5146 > 0x01015511 > 0x01014E87 > 0x010E5146 > 0x0101596C > 0x01014E87 > 0x010E5146 > 0x0101596C > 0x01014E87 > 0x01013C70 > 0x010141D4 > 0x010E8FBA > 0x01014B45 > 0x010E5146 > 0x01015511 > 0x01014E87 > 0x01014229 > 0x01024826 > 0x01010C39 > 0x01023814 > 0x01010696 > 0x010237CE > 0x01022D88 > 0x010230B5 > 0x010029C4 > 0x010010F9 > 0x7C81776B w32_backtrace at C:\Devel\emacs\repo\build\src/w32fns.c:7740 emacs_abort at C:\Devel\emacs\repo\build\src/w32fns.c:7772 terminate_due_to_signal at C:\Devel\emacs\repo\build\src/emacs.c:343 die at C:\Devel\emacs\repo\build\src/alloc.c:6522 unbind_to at C:\Devel\emacs\repo\build\src/eval.c:3124 Fprinc at C:\Devel\emacs\repo\build\src/print.c:658 print_error_message at C:\Devel\emacs\repo\build\src/print.c:901 Ferror_message_string at C:\Devel\emacs\repo\build\src/print.c:826 skip_debugger at C:\Devel\emacs\repo\build\src/eval.c:1566 maybe_call_debugger at C:\Devel\emacs\repo\build\src/eval.c:1607 Fsignal at C:\Devel\emacs\repo\build\src/eval.c:1431 xsignal at C:\Devel\emacs\repo\build\src/eval.c:1466 xsignal1 at C:\Devel\emacs\repo\build\src/eval.c:1481 Fsymbol_value at C:\Devel\emacs\repo\build\src/data.c:1061 exec_byte_code at C:\Devel\emacs\repo\build\src/bytecode.c:717 funcall_lambda at C:\Devel\emacs\repo\build\src/eval.c:2906 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2723 exec_byte_code at C:\Devel\emacs\repo\build\src/bytecode.c:900 funcall_lambda at C:\Devel\emacs\repo\build\src/eval.c:2840 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2723 exec_byte_code at C:\Devel\emacs\repo\build\src/bytecode.c:900 funcall_lambda at C:\Devel\emacs\repo\build\src/eval.c:2906 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2723 exec_byte_code at C:\Devel\emacs\repo\build\src/bytecode.c:900 funcall_lambda at C:\Devel\emacs\repo\build\src/eval.c:2906 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2723 Fapply at C:\Devel\emacs\repo\build\src/eval.c:2208 apply1 at C:\Devel\emacs\repo\build\src/eval.c:2442 Fcall_interactively at C:\Devel\emacs\repo\build\src/callint.c:381 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2681 exec_byte_code at C:\Devel\emacs\repo\build\src/bytecode.c:900 funcall_lambda at C:\Devel\emacs\repo\build\src/eval.c:2840 Ffuncall at C:\Devel\emacs\repo\build\src/eval.c:2723 call1 at C:\Devel\emacs\repo\build\src/eval.c:2468 command_loop_1 at C:\Devel\emacs\repo\build\src/keyboard.c:1578 internal_condition_case at C:\Devel\emacs\repo\build\src/eval.c:1193 command_loop_2 at C:\Devel\emacs\repo\build\src/keyboard.c:1167 internal_catch at C:\Devel\emacs\repo\build\src/eval.c:964 command_loop at C:\Devel\emacs\repo\build\src/keyboard.c:1146 recursive_edit_1 at C:\Devel\emacs\repo\build\src/keyboard.c:779 Frecursive_edit at C:\Devel\emacs\repo\build\src/keyboard.c:843 main at C:\Devel\emacs\repo\build\src/emacs.c:1531 ?? at crt1.c:0 It aborts here: /* If variable has a trivial value (no forwarding), we can just set it. No need to check for constant symbols here, since that was already done by specbind. */ >>> else if (XSYMBOL (this_binding.symbol)->redirect == SYMBOL_PLAINVAL) SET_SYMBOL_VAL (XSYMBOL (this_binding.symbol), this_binding.old_value); Should we explicitly test for SYMBOLP before calling XSYMBOL? ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14412: 24.3.50; emacs_backtrace.txt 2013-05-17 9:59 ` Eli Zaretskii @ 2015-12-26 0:47 ` Lars Ingebrigtsen 2015-12-26 10:07 ` Eli Zaretskii 0 siblings, 1 reply; 6+ messages in thread From: Lars Ingebrigtsen @ 2015-12-26 0:47 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14412 Eli Zaretskii <eliz@gnu.org> writes: > It aborts here: > > /* If variable has a trivial value (no forwarding), we can > just set it. No need to check for constant symbols here, > since that was already done by specbind. */ > >>> else if (XSYMBOL (this_binding.symbol)->redirect == SYMBOL_PLAINVAL) > SET_SYMBOL_VAL (XSYMBOL (this_binding.symbol), > this_binding.old_value); > > Should we explicitly test for SYMBOLP before calling XSYMBOL? Was this resolved, by any chance? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14412: 24.3.50; emacs_backtrace.txt 2015-12-26 0:47 ` Lars Ingebrigtsen @ 2015-12-26 10:07 ` Eli Zaretskii 2015-12-26 10:44 ` Eli Zaretskii 0 siblings, 1 reply; 6+ messages in thread From: Eli Zaretskii @ 2015-12-26 10:07 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 14412 > From: Lars Ingebrigtsen <larsi@gnus.org> > Cc: Drew Adams <drew.adams@oracle.com>, 14412@debbugs.gnu.org > Date: Sat, 26 Dec 2015 01:47:50 +0100 > > Eli Zaretskii <eliz@gnu.org> writes: > > > It aborts here: > > > > /* If variable has a trivial value (no forwarding), we can > > just set it. No need to check for constant symbols here, > > since that was already done by specbind. */ > > >>> else if (XSYMBOL (this_binding.symbol)->redirect == SYMBOL_PLAINVAL) > > SET_SYMBOL_VAL (XSYMBOL (this_binding.symbol), > > this_binding.old_value); > > > > Should we explicitly test for SYMBOLP before calling XSYMBOL? > > Was this resolved, by any chance? Not that I could see, but adding the test is trivial, so I will do it soon. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14412: 24.3.50; emacs_backtrace.txt 2015-12-26 10:07 ` Eli Zaretskii @ 2015-12-26 10:44 ` Eli Zaretskii 0 siblings, 0 replies; 6+ messages in thread From: Eli Zaretskii @ 2015-12-26 10:44 UTC (permalink / raw) To: larsi; +Cc: 14412-done > Date: Sat, 26 Dec 2015 12:07:19 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: 14412@debbugs.gnu.org > > > From: Lars Ingebrigtsen <larsi@gnus.org> > > Cc: Drew Adams <drew.adams@oracle.com>, 14412@debbugs.gnu.org > > Date: Sat, 26 Dec 2015 01:47:50 +0100 > > > > Eli Zaretskii <eliz@gnu.org> writes: > > > > > It aborts here: > > > > > > /* If variable has a trivial value (no forwarding), we can > > > just set it. No need to check for constant symbols here, > > > since that was already done by specbind. */ > > > >>> else if (XSYMBOL (this_binding.symbol)->redirect == SYMBOL_PLAINVAL) > > > SET_SYMBOL_VAL (XSYMBOL (this_binding.symbol), > > > this_binding.old_value); > > > > > > Should we explicitly test for SYMBOLP before calling XSYMBOL? > > > > Was this resolved, by any chance? > > Not that I could see, but adding the test is trivial, so I will do it > soon. Done. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14412: 24.3.50; emacs_backtrace.txt 2013-05-16 21:21 bug#14412: 24.3.50; emacs_backtrace.txt Drew Adams 2013-05-17 9:59 ` Eli Zaretskii @ 2015-12-26 17:43 ` Paul Eggert 1 sibling, 0 replies; 6+ messages in thread From: Paul Eggert @ 2015-12-26 17:43 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, 14412 [-- Attachment #1: Type: text/plain, Size: 291 bytes --] Eli, thanks for fixing that. There's parallel code in backtrace_eval_unrewind that presumably should be fixed in a similar way. Also, it's clearer to keep the FALLTHROUGH!! comment at the actual fallthrough point. I installed the attached additional patch to try to address these issues. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Propagate-Bug-14412-fix-to-backtrace_eval_unrewind.patch --] [-- Type: text/x-diff; name="0001-Propagate-Bug-14412-fix-to-backtrace_eval_unrewind.patch", Size: 2310 bytes --] From 60764d06b76ce39c2c902c302c29954945ed0e9c Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Sat, 26 Dec 2015 09:30:22 -0800 Subject: [PATCH] Propagate Bug#14412 fix to backtrace_eval_unrewind MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * src/eval.c (unbind_to): Redo so that the FALLTHROUGH!! comment becomes accurate again. This shouldn’t affect behavior. (backtrace_eval_unrewind): Apply the recent unbind_to fix here, too. --- src/eval.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/eval.c b/src/eval.c index 571681c..bd0cf68 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3196,15 +3196,12 @@ unbind_to (ptrdiff_t count, Lisp_Object value) { /* If variable has a trivial value (no forwarding), we can just set it. No need to check for constant symbols here, since that was already done by specbind. */ - Lisp_Object symbol = specpdl_symbol (specpdl_ptr); - if (SYMBOLP (symbol)) + Lisp_Object sym = specpdl_symbol (specpdl_ptr); + if (SYMBOLP (sym) && XSYMBOL (sym)->redirect == SYMBOL_PLAINVAL) { - struct Lisp_Symbol *sym = XSYMBOL (symbol); - if (sym->redirect == SYMBOL_PLAINVAL) - { - SET_SYMBOL_VAL (sym, specpdl_old_value (specpdl_ptr)); - break; - } + SET_SYMBOL_VAL (XSYMBOL (sym), + specpdl_old_value (specpdl_ptr)); + break; } else { /* FALLTHROUGH!! @@ -3412,12 +3409,12 @@ backtrace_eval_unrewind (int distance) { /* If variable has a trivial value (no forwarding), we can just set it. No need to check for constant symbols here, since that was already done by specbind. */ - struct Lisp_Symbol *sym = XSYMBOL (specpdl_symbol (tmp)); - if (sym->redirect == SYMBOL_PLAINVAL) + Lisp_Object sym = specpdl_symbol (tmp); + if (SYMBOLP (sym) && XSYMBOL (sym)->redirect == SYMBOL_PLAINVAL) { Lisp_Object old_value = specpdl_old_value (tmp); - set_specpdl_old_value (tmp, SYMBOL_VAL (sym)); - SET_SYMBOL_VAL (sym, old_value); + set_specpdl_old_value (tmp, SYMBOL_VAL (XSYMBOL (sym))); + SET_SYMBOL_VAL (XSYMBOL (sym), old_value); break; } else -- 2.5.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-12-26 17:43 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-05-16 21:21 bug#14412: 24.3.50; emacs_backtrace.txt Drew Adams 2013-05-17 9:59 ` Eli Zaretskii 2015-12-26 0:47 ` Lars Ingebrigtsen 2015-12-26 10:07 ` Eli Zaretskii 2015-12-26 10:44 ` Eli Zaretskii 2015-12-26 17:43 ` Paul Eggert
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).