From: Eli Zaretskii Date: Tue, 29 Dec 2015 18:07:23 +0000 (+0200) Subject: Avoid assertion violations in compact_font_cache_entry X-Git-Tag: emacs-25.0.90~323 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=57bd9a35efafd37a6888e69be28f54d49affcd30;p=emacs.git Avoid assertion violations in compact_font_cache_entry * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to avoid assertion violation in ASIZE. (Bug#22263) --- diff --git a/src/alloc.c b/src/alloc.c index 23ddd83d7d6..fe55cde49c9 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -5346,7 +5346,10 @@ compact_font_cache_entry (Lisp_Object entry) /* Consider OBJ if it is (font-spec . [font-entity font-entity ...]). */ if (CONSP (obj) && GC_FONT_SPEC_P (XCAR (obj)) && !VECTOR_MARKED_P (GC_XFONT_SPEC (XCAR (obj))) - && VECTORP (XCDR (obj))) + /* Don't use VECTORP here, as that calls ASIZE, which could + hit assertion violation during GC. */ + && (VECTORLIKEP (XCDR (obj)) + && ! (gc_asize (XCDR (obj)) & PSEUDOVECTOR_FLAG))) { ptrdiff_t i, size = gc_asize (XCDR (obj)); Lisp_Object obj_cdr = XCDR (obj);