diff options
| author | Eli Zaretskii | 2015-12-29 20:07:23 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2015-12-29 20:07:23 +0200 |
| commit | 57bd9a35efafd37a6888e69be28f54d49affcd30 (patch) | |
| tree | 1ec9ef32c1fb1d95678b154c3bf5bc8613545782 /src | |
| parent | 88e2de2381a61445c20f8d35857ad57d581eafe1 (diff) | |
| download | emacs-57bd9a35efafd37a6888e69be28f54d49affcd30.tar.gz emacs-57bd9a35efafd37a6888e69be28f54d49affcd30.zip | |
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)
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); |