Mercurial > hg > xemacs-beta
diff src/data.c @ 159:3bb7ccffb0c0 r20-3b6
Import from CVS: tag r20-3b6
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:41:43 +0200 |
parents | 25f70ba0133c |
children | 28f395d8dc7a |
line wrap: on
line diff
--- a/src/data.c Mon Aug 13 09:40:48 2007 +0200 +++ b/src/data.c Mon Aug 13 09:41:43 2007 +0200 @@ -77,6 +77,8 @@ int debug_ebola_backtrace_length; +#include "backtrace.h" + int eq_with_ebola_notice (Lisp_Object obj1, Lisp_Object obj2) { @@ -84,9 +86,23 @@ && (debug_issue_ebola_notices >= 2 || XREALINT (obj1) == XREALINT (obj2))) { + struct backtrace *bt = backtrace_list; + char *p; /* Continuing the joke by printing `Ebola warning!!!' confuses */ /* too many people. The message must be printed because Emacs used */ /* to work differently for two decades. */ +#ifndef LRECORD_SYMBOL + /* temporary hack that will probably be around too long -slb */ + if (XTYPE(*bt->function) == Lisp_Symbol) + { + p = (XSYMBOL(*bt->function)->name)->_data; + if (!strcmp(p, "byte-compile-constant") || + !strcmp(p, "byte-compile-constants-vector") || + !strcmp(p, "byte-optimize-minus") || + !strcmp(p, "byte-optimize-plus") || + !strcmp(p, "byte-decompile-bytecode-1")) goto sc; + } +#endif stderr_out("Comparison between integer and character is constant nil ("); Fprinc (obj1, Qexternal_debugging_output); stderr_out (" and "); @@ -94,7 +110,7 @@ stderr_out (")\n"); debug_short_backtrace (debug_ebola_backtrace_length); } - +sc: return EQ (obj1, obj2); } @@ -2323,7 +2339,7 @@ Length (in stack frames) of short backtrace printed out in Ebola notices. See `debug-issue-ebola-notices'. */ ); - debug_ebola_backtrace_length = 8; + debug_ebola_backtrace_length = 32; #endif /* DEBUG_XEMACS */ }