diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/alloc.c | 5 |
1 files changed, 4 insertions, 1 deletions
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) | |||
| 5346 | /* Consider OBJ if it is (font-spec . [font-entity font-entity ...]). */ | 5346 | /* Consider OBJ if it is (font-spec . [font-entity font-entity ...]). */ |
| 5347 | if (CONSP (obj) && GC_FONT_SPEC_P (XCAR (obj)) | 5347 | if (CONSP (obj) && GC_FONT_SPEC_P (XCAR (obj)) |
| 5348 | && !VECTOR_MARKED_P (GC_XFONT_SPEC (XCAR (obj))) | 5348 | && !VECTOR_MARKED_P (GC_XFONT_SPEC (XCAR (obj))) |
| 5349 | && VECTORP (XCDR (obj))) | 5349 | /* Don't use VECTORP here, as that calls ASIZE, which could |
| 5350 | hit assertion violation during GC. */ | ||
| 5351 | && (VECTORLIKEP (XCDR (obj)) | ||
| 5352 | && ! (gc_asize (XCDR (obj)) & PSEUDOVECTOR_FLAG))) | ||
| 5350 | { | 5353 | { |
| 5351 | ptrdiff_t i, size = gc_asize (XCDR (obj)); | 5354 | ptrdiff_t i, size = gc_asize (XCDR (obj)); |
| 5352 | Lisp_Object obj_cdr = XCDR (obj); | 5355 | Lisp_Object obj_cdr = XCDR (obj); |