aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/font.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/font.c b/src/font.c
index 653db011039..4f75615d8ed 100644
--- a/src/font.c
+++ b/src/font.c
@@ -2352,7 +2352,7 @@ font_list_entities (frame, spec)
2352 size = 0; 2352 size = 0;
2353 2353
2354 ftype = AREF (spec, FONT_TYPE_INDEX); 2354 ftype = AREF (spec, FONT_TYPE_INDEX);
2355 for (i = 0; i <= FONT_REGISTRY_INDEX; i++) 2355 for (i = 1; i <= FONT_REGISTRY_INDEX; i++)
2356 ASET (scratch_font_spec, i, AREF (spec, i)); 2356 ASET (scratch_font_spec, i, AREF (spec, i));
2357 for (; i < FONT_EXTRA_INDEX; i++) 2357 for (; i < FONT_EXTRA_INDEX; i++)
2358 { 2358 {
@@ -2377,7 +2377,7 @@ font_list_entities (frame, spec)
2377 { 2377 {
2378 Lisp_Object val = assoc_no_quit (scratch_font_spec, XCDR (cache)); 2378 Lisp_Object val = assoc_no_quit (scratch_font_spec, XCDR (cache));
2379 2379
2380 if (CONSP (val) && VECTORP (XCDR (val))) 2380 if (CONSP (val))
2381 val = XCDR (val); 2381 val = XCDR (val);
2382 else 2382 else
2383 { 2383 {
@@ -2430,16 +2430,18 @@ font_matching_entity (f, attrs, spec)
2430 && (NILP (ftype) || EQ (driver_list->driver->type, ftype))) 2430 && (NILP (ftype) || EQ (driver_list->driver->type, ftype)))
2431 { 2431 {
2432 Lisp_Object cache = font_get_cache (f, driver_list->driver); 2432 Lisp_Object cache = font_get_cache (f, driver_list->driver);
2433 Lisp_Object copy;
2433 2434
2434 ASET (spec, FONT_TYPE_INDEX, driver_list->driver->type); 2435 ASET (spec, FONT_TYPE_INDEX, driver_list->driver->type);
2435 entity = assoc_no_quit (spec, XCDR (cache)); 2436 entity = assoc_no_quit (spec, XCDR (cache));
2436 if (CONSP (entity) && ! VECTORP (XCDR (entity))) 2437 if (CONSP (entity))
2437 entity = XCDR (entity); 2438 entity = XCDR (entity);
2438 else 2439 else
2439 { 2440 {
2440 entity = driver_list->driver->match (frame, spec); 2441 entity = driver_list->driver->match (frame, spec);
2441 XSETCDR (cache, Fcons (Fcons (Fcopy_font_spec (spec), entity), 2442 copy = Fcopy_font_spec (spec);
2442 XCDR (cache))); 2443 ASET (copy, FONT_TYPE_INDEX, driver_list->driver->type);
2444 XSETCDR (cache, Fcons (Fcons (copy, entity), XCDR (cache)));
2443 } 2445 }
2444 if (! NILP (entity)) 2446 if (! NILP (entity))
2445 break; 2447 break;