diff options
| author | Stefan Monnier | 2008-02-24 13:36:39 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-02-24 13:36:39 +0000 |
| commit | a2bc5bdd7db3f708b7489d91919336e775c3e6ca (patch) | |
| tree | ca7e9efac023071ffcbeb514ab66fc4c0d76a8b9 /src/dispextern.h | |
| parent | 01dcf28448dab12ad7160942323144836467dd65 (diff) | |
| download | emacs-a2bc5bdd7db3f708b7489d91919336e775c3e6ca.tar.gz emacs-a2bc5bdd7db3f708b7489d91919336e775c3e6ca.zip | |
Allow fine-grained image-cache flushing.
* dispextern.h (struct image): Add `dependencies' field.
(clear_image_caches): Change arg to Lisp_Object.
* image.c (make_image): Initialize `dependencies' field.
(clear_image_cache): Change arg to allow fine-grained flushing.
Perform the flush even if image-cache-eviction-delay is nil.
(clear_image_caches): Change arg to Lisp_Object.
(Fclear_image_cache): Expand meaning of the argument.
(mark_image): Mark `dependencies' field.
* xfaces.c (clear_face_cache): Adapt arg to call to clear_image_caches.
(lface_hash): Use XHASH rather than XFASTINT.
(face_at_buffer_position): Fix int -> EMACS_INT position.
* xdisp.c (next_overlay_change): Fix int -> EMACS_INT position.
(select_frame_for_redisplay): Remove code duplication.
(redisplay_internal): Adapt arg to call to clear_image_caches.
Diffstat (limited to 'src/dispextern.h')
| -rw-r--r-- | src/dispextern.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dispextern.h b/src/dispextern.h index 9e0e160c5bb..ea5a077d7b2 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -2487,6 +2487,11 @@ struct image | |||
| 2487 | /* Lisp specification of this image. */ | 2487 | /* Lisp specification of this image. */ |
| 2488 | Lisp_Object spec; | 2488 | Lisp_Object spec; |
| 2489 | 2489 | ||
| 2490 | /* List of "references" followed to build the image. | ||
| 2491 | Typically will just contain the name of the image file. | ||
| 2492 | Used to allow fine-grained cache flushing. */ | ||
| 2493 | Lisp_Object dependencies; | ||
| 2494 | |||
| 2490 | /* Relief to draw around the image. */ | 2495 | /* Relief to draw around the image. */ |
| 2491 | int relief; | 2496 | int relief; |
| 2492 | 2497 | ||
| @@ -2818,7 +2823,7 @@ extern Lisp_Object x_find_image_file P_ ((Lisp_Object)); | |||
| 2818 | void x_kill_gs_process P_ ((Pixmap, struct frame *)); | 2823 | void x_kill_gs_process P_ ((Pixmap, struct frame *)); |
| 2819 | struct image_cache *make_image_cache P_ ((void)); | 2824 | struct image_cache *make_image_cache P_ ((void)); |
| 2820 | void free_image_cache P_ ((struct frame *)); | 2825 | void free_image_cache P_ ((struct frame *)); |
| 2821 | void clear_image_caches P_ ((int)); | 2826 | void clear_image_caches P_ ((Lisp_Object)); |
| 2822 | void mark_image_cache P_ ((struct image_cache *)); | 2827 | void mark_image_cache P_ ((struct image_cache *)); |
| 2823 | int valid_image_p P_ ((Lisp_Object)); | 2828 | int valid_image_p P_ ((Lisp_Object)); |
| 2824 | void prepare_image_for_display P_ ((struct frame *, struct image *)); | 2829 | void prepare_image_for_display P_ ((struct frame *, struct image *)); |