summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2008-12-16 03:33:00 +0000
committerChong Yidong <cyd@stupidchicken.com>2008-12-16 03:33:00 +0000
commit6136b72f0b69b6289987768bb88fa2ed9925ead1 (patch)
tree865055020b70d454819a431ae7e9d2027d14a0c4 /src
parentb5356c3948cabb45f4206fa13876b8c87152297c (diff)
downloademacs-6136b72f0b69b6289987768bb88fa2ed9925ead1.tar.gz
emacs-6136b72f0b69b6289987768bb88fa2ed9925ead1.tar.bz2
emacs-6136b72f0b69b6289987768bb88fa2ed9925ead1.zip
(font_update_drivers): Fix mistake in reconstructing the driver list.
(font_clear_cache): Fix format of font cache data.
Diffstat (limited to 'src')
-rw-r--r--src/font.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/font.c b/src/font.c
index fbfcf4b2496..d428b9e830c 100644
--- a/src/font.c
+++ b/src/font.c
@@ -2651,21 +2651,21 @@ font_clear_cache (f, cache, driver)
struct font_driver *driver;
{
Lisp_Object tail, elt;
+ Lisp_Object tail2, entity;
/* CACHE = (DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) */
for (tail = XCDR (XCDR (cache)); CONSP (tail); tail = XCDR (tail))
{
elt = XCAR (tail);
- if (CONSP (elt) && FONT_SPEC_P (XCAR (elt)) && VECTORP (XCDR (elt)))
+ /* elt should have the form (FONT-SPEC FONT-ENTITY ...) */
+ if (CONSP (elt) && FONT_SPEC_P (XCAR (elt)))
{
- Lisp_Object vec = XCDR (elt);
- int i;
-
- for (i = 0; i < ASIZE (vec); i++)
+ for (tail2 = XCDR (elt); CONSP (tail2); tail2 = XCDR (tail2))
{
- Lisp_Object entity = AREF (vec, i);
+ entity = XCAR (tail2);
- if (EQ (driver->type, AREF (entity, FONT_TYPE_INDEX)))
+ if (FONT_ENTITY_P (entity)
+ && EQ (driver->type, AREF (entity, FONT_TYPE_INDEX)))
{
Lisp_Object objlist = AREF (entity, FONT_OBJLIST_INDEX);
@@ -3586,7 +3586,7 @@ font_update_drivers (f, new_drivers)
}
for (list = f->font_driver_list; list; list = list->next)
if (! list->on)
- list_table[i] = list;
+ list_table[i++] = list;
list_table[i] = NULL;
next = &f->font_driver_list;