echo \n
output (($size & PSEUDOVECTOR_REST_MASK) >> PSEUDOVECTOR_SIZE_BITS)
else
- output ($size & ~ARRAY_MARK_FLAG)
+ output $size
end
echo \n
end
define xvector
xgetptr $
print (struct Lisp_Vector *) $ptr
- output ($->header.size > 50) ? 0 : ($->contents[0])@($->header.size & ~ARRAY_MARK_FLAG)
+ output ($->header.size > 50) ? 0 : ($->contents[0])@($->header.size)
echo \n
end
document xvector
define xprintstr
set $data = (char *) $arg0->data
- set $strsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
+ set $strsize = ($arg0->size_byte < 0) ? $arg0->size : $arg0->size_byte
# GDB doesn't like zero repetition counts
if $strsize == 0
output ""
if ($size & PSEUDOVECTOR_FLAG)
output (enum pvec_type) (($size & PVEC_TYPE_MASK) >> PSEUDOVECTOR_AREA_BITS)
else
- output $size & ~ARRAY_MARK_FLAG
+ output $size
end
else
printf "Lisp type %d", $type
define xprintbytestr
set $data = (char *) $arg0->data
- set $bstrsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
+ set $bstrsize = ($arg0->size_byte < 0) ? $arg0->size : $arg0->size_byte
printf "Bytecode: "
if $bstrsize > 0
output/u ($arg0->size > 1000) ? 0 : ($data[0])@($bvsize)
LISP_MACRO_DEFUN (XLI, EMACS_INT, (Lisp_Object o), (o))
LISP_MACRO_DEFUN (XIL, Lisp_Object, (EMACS_INT i), (i))
-/* In the size word of a vector, this bit means the vector has been marked. */
-
-#define ARRAY_MARK_FLAG_val PTRDIFF_MIN
-#if ENUMABLE (ARRAY_MARK_FLAG_val)
-DEFINE_GDB_SYMBOL_ENUM (ARRAY_MARK_FLAG)
-#else
-DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, ARRAY_MARK_FLAG)
-# define ARRAY_MARK_FLAG ARRAY_MARK_FLAG_val
-DEFINE_GDB_SYMBOL_END (ARRAY_MARK_FLAG)
-#endif
-
/* In the size word of a struct Lisp_Vector, this bit means it's really
some other vector-like object. */
#define PSEUDOVECTOR_FLAG_val (PTRDIFF_MAX - PTRDIFF_MAX / 2)
{
/* Like ASET, but also can be used in the garbage collector:
sweep_weak_table calls set_hash_key etc. while the table is marked. */
- eassert (0 <= idx && idx < (ASIZE (array) & ~ARRAY_MARK_FLAG));
+ eassert (0 <= idx && idx < (ASIZE (array)));
XVECTOR (array)->contents[idx] = val;
}
obarray = check_obarray (obarray);
obsize = ASIZE (obarray);
-
- /* This is sometimes needed in the middle of GC. */
- obsize &= ~ARRAY_MARK_FLAG;
hash = hash_string (ptr, size_byte) % obsize;
bucket = AREF (obarray, hash);
oblookup_last_bucket_number = hash;