From 25e32bd861cdf405e74f8025116625b2f6d6607b Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Sat, 7 Nov 2015 03:06:32 -0500 Subject: [PATCH] Use color cache for creating bitmap * src/image.c (x_create_bitmap_from_xpm_data) [ALLOC_XPM_COLORS]: Set attributes to use the caching color allocator. Initialize and free the cache. --- src/image.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/image.c b/src/image.c index 41687eb885c..544435eac0b 100644 --- a/src/image.c +++ b/src/image.c @@ -3508,6 +3508,14 @@ x_create_bitmap_from_xpm_data (struct frame *f, const char **bits) attrs.valuemask |= XpmVisual; attrs.valuemask |= XpmColormap; +#ifdef ALLOC_XPM_COLORS + attrs.color_closure = f; + attrs.alloc_color = xpm_alloc_color; + attrs.free_colors = xpm_free_colors; + attrs.valuemask |= XpmAllocColor | XpmFreeColors | XpmColorClosure; + xpm_init_color_cache (f, &attrs); +#endif + rc = XpmCreatePixmapFromData (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), (char **) bits, &bitmap, &mask, &attrs); if (rc != XpmSuccess) @@ -3526,6 +3534,9 @@ x_create_bitmap_from_xpm_data (struct frame *f, const char **bits) dpyinfo->bitmaps[id - 1].depth = attrs.depth; dpyinfo->bitmaps[id - 1].refcount = 1; +#ifdef ALLOC_XPM_COLORS + xpm_free_color_cache (); +#endif XpmFreeAttributes (&attrs); return id; } -- 2.39.2