summaryrefslogtreecommitdiff
path: root/src/.gdbinit
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-07-12 22:29:02 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2019-07-12 22:29:57 -0700
commit04cbdde94d256d9b3fbfcc67981374a55d339fcd (patch)
treef7489fb823bf1301a9cb13d247fc521b197bf572 /src/.gdbinit
parent13eaf8621390687b32d964e4821584c1bb629c2c (diff)
downloademacs-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/.gdbinit27
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