Package: emacs;
Reported by: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
Date: Fri, 7 Jan 2011 04:58:02 UTC
Severity: normal
Found in version 24.0.50
Done: Chong Yidong <cyd <at> gnu.org>
Bug is archived. No further changes may be made.
Message #18 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Andy Moreton <andrewjmoreton <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: Re: bug#7799: 24.0.50; Animated images display strangely Date: Wed, 10 Aug 2011 00:11:20 +0100
On Tue 09 Aug 2011, Lars Magne Ingebrigtsen wrote: > Chong Yidong <cyd <at> stupidchicken.com> writes: > >> This was fixed a while ago, so I'm closing the bug. > > It's much better than it used to be, but I'm still seeing some glitches. > > With emacs -Q and the latest bzr, eval the following: > > (url-retrieve > "http://icanhascheezburger.files.wordpress.com/2011/08/0848b876-a808-4614-ac26-9285d46cc5f7.gif" > (lambda (status) > (goto-char (point-min)) > (search-forward "\n\n") > (let ((data (buffer-substring (point) (point-max)))) > (pop-to-buffer "*animate*") > (let ((image (create-image data 'gif t))) > (insert-image image) > (image-animate image nil 60))))) > > One single frame in the animation looks broken. That seems to be the > case with all my test cases where the image displays buggily. (But most > animated gifs display properly now.) Could it be a off-by-one error of > some kind? I see the same glitchy behaviour in a win32 build of today's trunk, using the GnuWin32 build of libungif4.dll (v4.1.4.2616). With http://upload.wikimedia.org/wikipedia/commons/3/37/Clock.gif (580×580 pixels, 143 frames) I get a segfault. I'm happy to help debug if somebody more familar with GIFs and image display can make suggestions as to where to look next: Program received signal SIGSEGV, Segmentation fault. 0x01295e7c in gif_load (f=0x3703000, img=0x479d480) at image.c:7360 7360 int c = raster[y * image_width + x]; (gdb) info locals c = 0xfe subimage = 0xa496f8 raster = 0x724537d8 "\002\002\002\002" transparency_color_index = 0x2 disposal = 0x0 file = 0x103928d rc = 0x1 width = 0x244 height = 0x244 x = 0x9c y = 0xb7 i = 0x4 j = 0x1 ximg = 0x362bdc0 gif_color_map = 0xa47960 pixel_colors = {0x2ffffff, 0x2000000, 0x2d9d9d9, 0x2000000, 0x0 <repeats 252 times>} gif = 0xa47908 image_height = 0xc9 image_width = 0xd4 memsrc = { bytes = 0x47a300c "GIF89aD\002D\002\221", len = 0x27d93, index = 0x27d93 } specified_bg = 0x341c81a specified_file = 0x341c81a specified_data = 0x47a2e61 bgcolor = 0x0 idx = 0x5 (gdb) bt #0 0x01295e7c in gif_load (f=0x3703000, img=0x479d480) at image.c:7360 #1 0x0128d5f5 in lookup_image (f=0x3703000, spec=0x47948fe) at image.c:1741 #2 0x0128be90 in Fimage_metadata (spec=0x47948fe, frame=0x341c81a) at image.c:975 #3 0x010368af in Ffuncall (nargs=0x2, args=0x82e780) at eval.c:3012 #4 0x010ddcbc in exec_byte_code (bytestr=0x13ec8f9, vector=0x13ec945, maxdepth=0xc, args_template=0x341c81a, nargs=0x0, args=0x0) at bytecode.c:785 #5 0x0103779c in funcall_lambda (fun=0x13ec8d5, nargs=0x1, arg_vector=0x341c81a) at eval.c:3240 #6 0x01036c48 in Ffuncall (nargs=0x2, args=0x82ea80) at eval.c:3058 #7 0x010ddcbc in exec_byte_code (bytestr=0x13ecb51, vector=0x13ecbc5, maxdepth=0x24, args_template=0x341c81a, nargs=0x0, args=0x0) at bytecode.c:785 #8 0x0103779c in funcall_lambda (fun=0x13ecb15, nargs=0x5, arg_vector=0x341c81a) at eval.c:3240 #9 0x01036c48 in Ffuncall (nargs=0x6, args=0x82eda0) at eval.c:3058 #10 0x010357e3 in Fapply (nargs=0x2, args=0x82eed4) at eval.c:2514 #11 0x010365d5 in Ffuncall (nargs=0x3, args=0x82eed0) at eval.c:2991 #12 0x010ddcbc in exec_byte_code (bytestr=0x13cc269, vector=0x13cc29d, maxdepth=0x10, args_template=0x341c81a, nargs=0x0, args=0x0) at bytecode.c:785 #13 0x010dd278 in Fbyte_code (bytestr=0x13cc269, vector=0x13cc29d, maxdepth=0x10) at bytecode.c:423 #14 0x01034a82 in eval_sub (form=0x13cc25e) at eval.c:2363 #15 0x010327c0 in internal_lisp_condition_case (var=0x341c81a, bodyform=0x13cc25e, handlers=0x1311746) at eval.c:1440 #16 0x010de6dc in exec_byte_code (bytestr=0x13cc169, vector=0x13cc1ed, maxdepth=0x14, args_template=0x341c81a, nargs=0x0, args=0x0) at bytecode.c:981 #17 0x0103779c in funcall_lambda (fun=0x13cc14d, nargs=0x1, arg_vector=0x341c81a) at eval.c:3240 #18 0x01036c48 in Ffuncall (nargs=0x2, args=0x82f5a8) at eval.c:3058 #19 0x01035d89 in call1 (fn=0x342790a, arg1=0x362be85) at eval.c:2778 #20 0x0100e1f8 in timer_check_2 () at keyboard.c:4428 #21 0x0100e272 in timer_check () at keyboard.c:4474 #22 0x0104a966 in wait_reading_process_output (time_limit=0x43, microsecs=0x0, read_kbd=0xffffffff, do_display=0x1, wait_for_cell=0x341c81a, wait_proc=0x0, just_wait_proc=0x0) at process.c:4308 #23 0x010f75da in sit_for (timeout=0x10c, reading=0x1, do_display=0x1) at dispnew.c:5958 #24 0x010091bf in read_char (commandflag=0x1, nmaps=0x2, maps=0x82f9a0, prev_event=0x341c81a, used_mouse_menu=0x82fa68, end_time=0x0) at keyboard.c:2688 #25 0x0101bf4d in read_key_sequence (keybuf=0x82fbec, bufsize=0x1e, prompt=0x341c81a, dont_downcase_last=0x0, can_return_switch_frame=0x1, fix_current_buffer=0x1) at keyboard.c:9283 #26 0x01005bb1 in command_loop_1 () at keyboard.c:1445 #27 0x010328a2 in internal_condition_case (bfun=0x10055b6 <command_loop_1>, handlers=0x342a99a, hfun=0x1004dda <cmd_error>) at eval.c:1493 #28 0x01005212 in command_loop_2 (ignore=0x341c81a) at keyboard.c:1156 #29 0x010322c5 in internal_catch (tag=0x342a1e2, func=0x10051ee <command_loop_2>, arg=0x341c81a) at eval.c:1247 #30 0x010051ce in command_loop () at keyboard.c:1135 #31 0x010047af in recursive_edit_1 () at keyboard.c:756 #32 0x01004aca in Frecursive_edit () at keyboard.c:820 #33 0x010028c5 in main (argc=0x1, argv=0xa44480) at emacs.c:1705 Lisp Backtrace: "image-metadata" (0x82e784) "image-animated-p" (0x82ea84) "image-animate-timeout" (0x82eda4) "apply" (0x82eed4) "byte-code" (0x82f120) "timer-event-handler" (0x82f5ac) (gdb)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.