From 57bd9a35efafd37a6888e69be28f54d49affcd30 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 29 Dec 2015 20:07:23 +0200 Subject: [PATCH] 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) --- src/alloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); -- 2.39.5