diff options
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/alloc.c b/src/alloc.c index e5116acaefd..e2213db853d 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -2974,9 +2974,16 @@ cleanup_vector (struct Lisp_Vector *vector) | |||
| 2974 | && ((vector->header.size & PSEUDOVECTOR_SIZE_MASK) | 2974 | && ((vector->header.size & PSEUDOVECTOR_SIZE_MASK) |
| 2975 | == FONT_OBJECT_MAX)) | 2975 | == FONT_OBJECT_MAX)) |
| 2976 | { | 2976 | { |
| 2977 | /* Attempt to catch subtle bugs like Bug#16140. */ | 2977 | struct font_driver *drv = ((struct font *) vector)->driver; |
| 2978 | eassert (valid_font_driver (((struct font *) vector)->driver)); | 2978 | |
| 2979 | ((struct font *) vector)->driver->close ((struct font *) vector); | 2979 | /* The font driver might sometimes be NULL, e.g. if Emacs was |
| 2980 | interrupted before it had time to set it up. */ | ||
| 2981 | if (drv) | ||
| 2982 | { | ||
| 2983 | /* Attempt to catch subtle bugs like Bug#16140. */ | ||
| 2984 | eassert (valid_font_driver (drv)); | ||
| 2985 | drv->close ((struct font *) vector); | ||
| 2986 | } | ||
| 2980 | } | 2987 | } |
| 2981 | } | 2988 | } |
| 2982 | 2989 | ||