emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116641: * font.c (toplevel): Adjust comment about f


From: Dmitry Antipov
Subject: [Emacs-diffs] trunk r116641: * font.c (toplevel): Adjust comment about font cache layout.
Date: Mon, 03 Mar 2014 07:46:49 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116641
revision-id: address@hidden
parent: address@hidden
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Mon 2014-03-03 11:46:08 +0400
message:
  * font.c (toplevel): Adjust comment about font cache layout.
  (font_clear_cache): Fix to match real font cache layout.
  Suggested by <address@hidden> in Bug#16069.
  (Fframe_font_cache) [FONT_DEBUG]: New function.
  (syms_of_font) [FONT_DEBUG]: Defsubr it.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/font.c                     font.c-20091113204419-o5vbwnq5f7feedwu-8540
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-03-03 04:57:26 +0000
+++ b/src/ChangeLog     2014-03-03 07:46:08 +0000
@@ -1,3 +1,11 @@
+2014-03-03  Dmitry Antipov  <address@hidden>
+
+       * font.c (toplevel): Adjust comment about font cache layout.
+       (font_clear_cache): Fix to match real font cache layout.
+       Suggested by <address@hidden> in Bug#16069.
+       (Fframe_font_cache) [FONT_DEBUG]: New function.
+       (syms_of_font) [FONT_DEBUG]: Defsubr it.
+
 2014-03-01  Martin Rudalics  <address@hidden>
 
        Consider Vother_window_scroll_buffer valid iff it's a live buffer.

=== modified file 'src/font.c'
--- a/src/font.c        2014-02-10 22:15:54 +0000
+++ b/src/font.c        2014-03-03 07:46:08 +0000
@@ -2515,7 +2515,7 @@
 
    where DRIVER-TYPE is a symbol such as `x', `xft', etc., NUM-FRAMES
    is a number frames sharing this cache, and FONT-CACHE-DATA is a
-   cons (FONT-SPEC FONT-ENTITY ...).  */
+   cons (FONT-SPEC . [FONT-ENTITY ...]).  */
 
 static void font_prepare_cache (struct frame *, struct font_driver *);
 static void font_finish_cache (struct frame *, struct font_driver *);
@@ -2585,18 +2585,21 @@
 font_clear_cache (struct frame *f, Lisp_Object cache, struct font_driver 
*driver)
 {
   Lisp_Object tail, elt;
-  Lisp_Object tail2, entity;
+  Lisp_Object entity;
+  ptrdiff_t i;
 
   /* CACHE = (DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) */
   for (tail = XCDR (XCDR (cache)); CONSP (tail); tail = XCDR (tail))
     {
       elt = XCAR (tail);
-      /* elt should have the form (FONT-SPEC FONT-ENTITY ...) */
+      /* elt should have the form (FONT-SPEC . [FONT-ENTITY ...]) */
       if (CONSP (elt) && FONT_SPEC_P (XCAR (elt)))
        {
-         for (tail2 = XCDR (elt); CONSP (tail2); tail2 = XCDR (tail2))
+         elt = XCDR (elt);
+         eassert (VECTORP (elt));
+         for (i = 0; i < ASIZE (elt); i++)
            {
-             entity = XCAR (tail2);
+             entity = AREF (elt, i);
 
              if (FONT_ENTITY_P (entity)
                  && EQ (driver->type, AREF (entity, FONT_TYPE_INDEX)))
@@ -4842,6 +4845,14 @@
 }
 #endif
 
+DEFUN ("frame-font-cache", Fframe_font_cache, Sframe_font_cache, 0, 1, 0,
+       doc: /* Return FRAME's font cache.  Mainly used for debugging.
+If FRAME is omitted or nil, use the selected frame.  */)
+  (Lisp_Object frame)
+{
+  return FRAME_DISPLAY_INFO (decode_live_frame (frame))->name_list_element;
+}
+
 #endif /* FONT_DEBUG */
 
 #ifdef HAVE_WINDOW_SYSTEM
@@ -5134,6 +5145,7 @@
 #if 0
   defsubr (&Sdraw_string);
 #endif
+  defsubr (&Sframe_font_cache);
 #endif /* FONT_DEBUG */
 #ifdef HAVE_WINDOW_SYSTEM
   defsubr (&Sfont_info);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]