diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-07-12 22:29:02 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-07-12 22:29:57 -0700 |
commit | 04cbdde94d256d9b3fbfcc67981374a55d339fcd (patch) | |
tree | f7489fb823bf1301a9cb13d247fc521b197bf572 /src/.gdbinit | |
parent | 13eaf8621390687b32d964e4821584c1bb629c2c (diff) | |
download | emacs-04cbdde94d256d9b3fbfcc67981374a55d339fcd.tar.gz emacs-04cbdde94d256d9b3fbfcc67981374a55d339fcd.tar.bz2 emacs-04cbdde94d256d9b3fbfcc67981374a55d339fcd.zip |
Replace Vdead with tagged pointer
This speeds up ‘make compile-always’ by 0.1% on my platform.
Suggested by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00257.html
* src/.gdbinit (pwinx, pgx, xbuffer, xprintstr):
Output dead_object () as "DEAD".
* src/alloc.c (Vdead, DEADP): Remove.
All uses replaced by dead_object () / deadp.
(deadp): New function.
(init_alloc_once_for_pdumper): Remove no-longer-needed
initialization.
* src/lisp.h (dead_object): New function.
Diffstat (limited to 'src/.gdbinit')
-rw-r--r-- | src/.gdbinit | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/.gdbinit b/src/.gdbinit index c0cf6393594..e9ba5267ece 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -382,7 +382,7 @@ define pwinx xgetptr $w->contents set $tem = (struct buffer *) $ptr xgetptr $tem->name_ - printf "%s", ((struct Lisp_String *) $ptr)->u.s.data + printf "%s", $ptr ? (char *) ((struct Lisp_String *) $ptr)->u.s.data : "DEAD" printf "\n" xgetptr $w->start set $tem = (struct Lisp_Marker *) $ptr @@ -508,7 +508,12 @@ define pgx xgettype ($g.object) if ($type == Lisp_String) xgetptr $g.object - printf " str=0x%x[%d]", ((struct Lisp_String *)$ptr)->u.s.data, $g.charpos + if ($ptr) + printf " str=0x%x", ((struct Lisp_String *)$ptr)->u.s.data + else + printf " str=DEAD" + end + printf "[%d]", $g.charpos else printf " pos=%d", $g.charpos end @@ -879,7 +884,7 @@ define xbuffer xgetptr $ print (struct buffer *) $ptr xgetptr $->name_ - output ((struct Lisp_String *) $ptr)->u.s.data + output $ptr ? (char *) ((struct Lisp_String *) $ptr)->u.s.data : "DEAD" echo \n end document xbuffer @@ -1046,13 +1051,17 @@ Print $ as a lisp object of any type. end define xprintstr - set $data = (char *) $arg0->u.s.data - set $strsize = ($arg0->u.s.size_byte < 0) ? ($arg0->u.s.size & ~ARRAY_MARK_FLAG) : $arg0->u.s.size_byte - # GDB doesn't like zero repetition counts - if $strsize == 0 - output "" + if (! $arg0) + output "DEAD" else - output ($arg0->u.s.size > 1000) ? 0 : ($data[0])@($strsize) + set $data = (char *) $arg0->u.s.data + set $strsize = ($arg0->u.s.size_byte < 0) ? ($arg0->u.s.size & ~ARRAY_MARK_FLAG) : $arg0->u.s.size_byte + # GDB doesn't like zero repetition counts + if $strsize == 0 + output "" + else + output ($arg0->u.s.size > 1000) ? 0 : ($data[0])@($strsize) + end end end |