From f036834aebdaefe79c7fb916a84eda2743a02135 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Tue, 4 Jan 2000 21:22:24 +0000 Subject: [PATCH] (current_gif_memory_src): New variable. (gif_load): Record the address of the current memory source in current_gif_memory_src. (gif_read_from_memory): Use current_gif_memory_src. --- src/xfns.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/xfns.c b/src/xfns.c index 12503851005..c10e08e1eb8 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -9155,7 +9155,6 @@ static struct image_type gif_type = NULL }; - /* Return non-zero if OBJECT is a valid GIF image specification. */ static int @@ -9185,13 +9184,18 @@ typedef struct } gif_memory_source; +/* Make the current memory source available to gif_read_from_memory. + It's done this way because not all versions of libungif support + a UserData field in the GifFileType structure. */ +static gif_memory_source *current_gif_memory_src; + static int gif_read_from_memory (file, buf, len) GifFileType *file; GifByteType *buf; int len; { - gif_memory_source *src = (gif_memory_source *) file->UserData; + gif_memory_source *src = current_gif_memory_src; if (len > src->len - src->index) return -1; @@ -9250,6 +9254,7 @@ gif_load (f, img) else { /* Read from memory! */ + current_gif_memory_src = &memsrc; memsrc.bytes = XSTRING (specified_data)->data; memsrc.len = STRING_BYTES (XSTRING (specified_data)); memsrc.index = 0; -- 2.39.5