2000-09-17 Miles Bader * xfns.c (clear_image_cache): Compare timestamp correctly. Only do anything if the image cache has a refcount of 1, since we don't properly invalidate frames that may be sharing it with F. * xterm.c (x_draw_image_glyph_string): Call `prepare_face_for_display' on S's image. (x_fill_glyph_string): Assert that S's first glyph is a CHAR_GLYPH. diff -u -r1.423 xfns.c --- src/xfns.c 2000/09/14 20:20:34 1.423 +++ src/xfns.c 2000/09/17 05:00:52 @@ -5648,7 +5687,7 @@ { struct image_cache *c = FRAME_X_IMAGE_CACHE (f); - if (c && INTEGERP (Vimage_cache_eviction_delay)) + if (c && (c->refcount <= 1) && INTEGERP (Vimage_cache_eviction_delay)) { EMACS_TIME t; unsigned long old; @@ -5662,7 +5701,7 @@ struct image *img = c->images[i]; if (img != NULL && (force_p - || (img->timestamp > old))) + || (img->timestamp < old))) { free_image (f, img); any_freed_p = 1; diff -u -r1.538 xterm.c --- src/xterm.c 2000/09/14 20:20:34 1.538 +++ src/xterm.c 2000/09/17 05:00:52 @@ -3941,10 +3954,12 @@ { int x, y; int box_line_width = s->face->box_line_width; - int margin = s->img->margin; - int height; + int margin, height; Pixmap pixmap = None; + prepare_image_for_display (s->f, s->img); + + margin = s->img->margin; height = s->height - 2 * box_line_width; /* Fill background with face under the image. Do it only if row is