diff src/faces.c @ 217:d44af0c54775 r20-4b7

Import from CVS: tag r20-4b7
author cvs
date Mon, 13 Aug 2007 10:08:34 +0200
parents 78f53ef88e17
children 262b8bb4a523
line wrap: on
line diff
--- a/src/faces.c	Mon Aug 13 10:07:42 2007 +0200
+++ b/src/faces.c	Mon Aug 13 10:08:34 2007 +0200
@@ -1724,7 +1724,24 @@
 	MARK_DEVICE_FRAMES_FACES_CHANGED (XDEVICE (XCAR (devcons)));
     }
 
-  update_faces_inheritance (face, property);
+  /*
+   * This call to update_faces_inheritance isn't needed and makes
+   * creating and modifying faces _very_ slow.  The point of
+   * update_face_inheritances is to find all faces that inherit
+   * directly from this face property and set the specifier "dirty"
+   * flag on the corresponding specifier.  This forces recaching of
+   * cached specifier values in frame and window struct slots.  But
+   * currently no face properties are cached in frame and window
+   * struct slots, so calling this function does nothing useful!
+   *
+   * Further, since update_faces_inheritance maps over the whole
+   * face table every time it is called, it gets terribly slow when
+   * there are many faces.  Creating 500 faces on a 50Mhz 486 took
+   * 433 seconds when update_faces_inheritance was called.  With the
+   * call commented out, creating those same 500 faces took 0.72
+   * seconds.
+   */
+  /* update_faces_inheritance (face, property);*/
   XFACE (face)->dirty = 1;
 }