From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Abrahams Newsgroups: gmane.emacs.devel Subject: Who's maintaining the Win32 display code? Date: Tue, 16 Sep 2003 20:30:53 -0400 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1063759047 16442 80.91.224.253 (17 Sep 2003 00:37:27 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 17 Sep 2003 00:37:27 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Wed Sep 17 02:37:25 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19zQJx-00070x-00 for ; Wed, 17 Sep 2003 02:37:25 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 19zQNH-0000TK-00 for ; Wed, 17 Sep 2003 02:40:51 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.22) id 19zQF7-0005Ue-N1 for emacs-devel@quimby.gnus.org; Tue, 16 Sep 2003 20:32:25 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.22) id 19zQEu-0005RN-Ah for emacs-devel@gnu.org; Tue, 16 Sep 2003 20:32:12 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.22) id 19zQEs-0005Op-H6 for emacs-devel@gnu.org; Tue, 16 Sep 2003 20:32:11 -0400 Original-Received: from [80.91.224.249] (helo=main.gmane.org) by monty-python.gnu.org with esmtp (Exim 4.22) id 19zQEs-0005Ni-0X for emacs-devel@gnu.org; Tue, 16 Sep 2003 20:32:10 -0400 Original-Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 19zQEc-0008AK-00 for ; Wed, 17 Sep 2003 02:31:54 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-To: emacs-devel@gnu.org Original-Received: from sea.gmane.org ([80.91.224.252]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19zQEb-0008AC-00 for ; Wed, 17 Sep 2003 02:31:53 +0200 Original-Received: from news by sea.gmane.org with local (Exim 3.35 #1 (Debian)) id 19zQEq-0004AX-00 for ; Wed, 17 Sep 2003 02:32:08 +0200 Original-Lines: 54 Original-X-Complaints-To: usenet@sea.gmane.org User-Agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (windows-nt) Cancel-Lock: sha1:sJsUCdwXe8FEACy6c6AcmFagBaE= X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:16428 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:16428 I've been reporting these crashes for several months; is anyone going to try to track this down or at least give me some pointers? If not, maybe as I suggested earlier Win32 should be dropped as a target platform. I've done my best to debug the code, but without some guidance as to what's supposed to be happening, I'm lost. I can say that it appears to be trying to draw my cursor. In w32_text_out(), s->gc->font appears to be garbage and s->font appears to be valid. There appear to be many ways to get to a W32FontStruct from a glyph_string*; I have no idea whether any or all of them are supposed to match up, but I am guessing that there's a lot of redundancy here and the invariant is too complicated to be easily maintained. Anyway, that's about all I can contribute: stack traces and speculation. I'm very discouraged :( emacs.exe!get_cached_font_char(bdffont * fontp=0x31003935, int strchr=0x00000020) Line 343 + 0x16 C emacs.exe!get_bitmap_with_cache(bdffont * fontp=0x31003935, int strchr=0x00000020) Line 541 + 0xd C emacs.exe!w32_BDF_TextOut(bdffont * fontp=0x31003935, HDC__ * hdc=0x1f010988, int left=0x00000313, int top=0x000000b1, unsigned char * text=0x0082ec70, int dim=0x00000001, int bytelen=0x00000000, int fixed_pitch_size=0x00000000) Line 672 + 0xd C emacs.exe!w32_text_out() Line 1130 + 0x33 C emacs.exe!x_draw_glyph_string_foreground(glyph_string * s=0x0082ec74) Line 1505 + 0x25 C emacs.exe!x_draw_glyph_string(glyph_string * s=0x0082ec74) Line 2381 + 0x9 C emacs.exe!draw_glyphs() Line 17421 + 0xf C emacs.exe!draw_phys_cursor_glyph(window * w=0x01c74000, glyph_row * row=0x02080658, draw_glyphs_face hl=DRAW_CURSOR) Line 18853 + 0x36 C emacs.exe!w32_draw_window_cursor() Line 5135 + 0xf C > emacs.exe!display_and_set_cursor(window * w=0x01c74000, int on=0x00000001, int hpos=0x00000000, int vpos=0x0000000e, int x=0x00000000, int y=0x000000a8) Line 19049 + 0x2a C emacs.exe!x_update_window_end(window * w=0x01c74000, int cursor_on_p=0x00000001, int mouse_face_overwritten_p=0x00000000) Line 542 + 0x25 C emacs.exe!update_window(window * w=0x01c74000, int force_p=0x00000000) Line 4199 + 0x1d C emacs.exe!update_window_tree(window * w=0x01c74000, int force_p=0x00000000) Line 3885 + 0xd C emacs.exe!update_window_tree(window * w=0x024eb400, int force_p=0x00000000) Line 3881 + 0x16 C emacs.exe!update_frame(frame * f=0x01676a00, int force_p=0x00000000, int inhibit_hairy_id_p=0x00000000) Line 3822 + 0xd C emacs.exe!redisplay_internal(int preserve_echo_area=0x00000001) Line 10114 + 0xd C emacs.exe!redisplay_preserve_echo_area(int from_where=0x00000008) Line 10253 + 0x7 C emacs.exe!detect_input_pending_run_timers(int do_display=0x00000001) Line 9913 + 0x7 C emacs.exe!wait_reading_process_input(int time_limit=0x0000001e, int microsecs=0x00000000, int read_kbd=0x0fffffff, int do_display=0x00000001) Line 4116 + 0x9 C emacs.exe!sit_for(int sec=0x0000001e, int usec=0x00000000, int reading=0x00000001, int display=0x00000001, int initial_display=0x00000000) Line 6251 + 0x15 C emacs.exe!read_char(int commandflag=0x00000001, int nmaps=0x00000003, int * maps=0x0082f8ec, int prev_event=0x113a8404, int * used_mouse_menu=0x0082fab0) Line 2721 + 0x24 C emacs.exe!read_key_sequence(int * keybuf=0x0082fc44, int bufsize=0x0000001e, int prompt=0x113a8404, int dont_downcase_last=0x00000000, int can_return_switch_frame=0x00000001, int fix_current_buffer=0x00000001) Line 8827 + 0x2a C emacs.exe!command_loop_1() Line 1505 + 0x1b C emacs.exe!internal_condition_case(int (void)* bfun=0x010176f0, int handlers=0x113c7e44, int (void)* hfun=0x010171c0) Line 1333 + 0x5 C emacs.exe!command_loop_2() Line 1292 + 0x15 C emacs.exe!internal_catch(int tag=0x113bd404, int (void)* func=0x01017540, int arg=0x113a8404) Line 1094 + 0x9 C emacs.exe!command_loop() Line 1271 + 0x17 C emacs.exe!recursive_edit_1() Line 987 + 0x5 C emacs.exe!Frecursive_edit() Line 1044 C emacs.exe!main() Line 1668 C emacs.exe!mainCRTStartup() Line 259 + 0x12 C emacs.exe!_start() Line 131 C kernel32.dll!77e814c7() -- Dave Abrahams Boost Consulting www.boost-consulting.com