Re: Crash in redisplay_internal - note_mode_line_or_margin_highlight

2007-04-10 Thread Chong Yidong
[EMAIL PROTECTED] (Kim F. Storm) writes:

 Chong Yidong [EMAIL PROTECTED] writes:

 Kim, could you study this patch and tell me what you think?

 Looks alright to me.

I've checked it in.



___
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug


Crash in redisplay_internal - note_mode_line_or_margin_highlight

2007-04-09 Thread David Reitter
This crash occurred with a (slightly modified) CVS version  
(2007-04-04), Carbon build.


I was trying out tabbar.el (providing tabbar-mode) using PNG files  
for `tabbar-home-button-enabled-image' and the other tabbar buttons.
I think I clicked on the mode (leftmost) button before this  
happened, but I'm not sure.


Unfortunately I cannot reproduce this crash. I can provide the tabbar  
code used if necessary - but it's not a recipe for a crash.


The stack trace is below.




Date/Time:  2007-04-09 08:42:13.677 +0100
OS Version: 10.4.9 (Build 8P135)
Report Version: 4

Command: Aquamacs Emacs
Path:/Applications/Aquamacs Emacs.app/Contents/MacOS/Aquamacs Emacs
Parent:  WindowServer [67]

Version: Aquamacs 1.0rc2, GNU Emacs 22 (1.2a)

PID:882
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:  KERN_INVALID_ADDRESS (0x0001) at 0x027f5fe0

Thread 0 Crashed:
0   org.gnu.AquamacsEmacs	0x000418d8  
note_mode_line_or_margin_highlight + 1364 (xdisp.c:22582)
1   org.gnu.AquamacsEmacs	0x00041c58 note_mouse_highlight + 424  
(xdisp.c:22731)
2   org.gnu.AquamacsEmacs	0x00140860 XTframe_up_to_date + 120  
(macterm.c:2120)
3   org.gnu.AquamacsEmacs	0x0002d490 redisplay_internal + 4000  
(xdisp.c:11372)
4   org.gnu.AquamacsEmacs	0x0002d8c8 redisplay_preserve_echo_area  
+ 100 (xdisp.c:11576)
5   org.gnu.AquamacsEmacs	0x00081fc0 read_char + 1204 (keyboard.c: 
2671)
6   org.gnu.AquamacsEmacs	0x0008b048 read_key_sequence + 1888  
(keyboard.c:9154)
7   org.gnu.AquamacsEmacs	0x0007fb0c command_loop_1 + 1048  
(keyboard.c:1625)
8   org.gnu.AquamacsEmacs	0x000eba1c internal_condition_case +  
336 (eval.c:1482)
9   org.gnu.AquamacsEmacs	0x0007f308 command_loop_2 + 64  
(keyboard.c:1332)
10  org.gnu.AquamacsEmacs	0x000eb3cc internal_catch + 264 (eval.c: 
1222)
11  org.gnu.AquamacsEmacs	0x0007f2a4 command_loop + 216  
(keyboard.c:1300)
12  org.gnu.AquamacsEmacs	0x0007ebf8 recursive_edit_1 + 172  
(keyboard.c:1010)
13  org.gnu.AquamacsEmacs	0x0007ed94 Frecursive_edit + 224  
(keyboard.c:1071)

14  org.gnu.AquamacsEmacs   0x000edec0 Ffuncall + 852 (eval.c:2995)
15  org.gnu.AquamacsEmacs	0x0011ba9c Fbyte_code + 2324  
(bytecode.c:680)

16  org.gnu.AquamacsEmacs   0x000ed110 Feval + 1128 (eval.c:2336)
17  org.gnu.AquamacsEmacs   0x000e9de4 Fprogn + 60 (eval.c:447)
18  org.gnu.AquamacsEmacs	0x000503dc Fsave_window_excursion + 100  
(window.c:6664)
19  org.gnu.AquamacsEmacs	0x0011c3dc Fbyte_code + 4692  
(bytecode.c:841)
20  org.gnu.AquamacsEmacs	0x000ee4d8 funcall_lambda + 632 (eval.c: 
3189)

21  org.gnu.AquamacsEmacs   0x000ee05c Ffuncall + 1264 (eval.c:3054)
22  org.gnu.AquamacsEmacs   0x000ed574 Fapply + 588 (eval.c:2486)
23  org.gnu.AquamacsEmacs   0x000ed9a0 apply1 + 104 (eval.c:2751)
24  org.gnu.AquamacsEmacs	0x000e9b28 call_debugger + 372 (eval.c: 
304)
25  org.gnu.AquamacsEmacs	0x000ec54c find_handler_clause + 468  
(eval.c:1920)

26  org.gnu.AquamacsEmacs   0x000ebf54 Fsignal + 532 (eval.c:1675)
27  org.gnu.AquamacsEmacs   0x000ec094 xsignal + 16 (eval.c:1723)
28  org.gnu.AquamacsEmacs   0x000ec0e8 xsignal2 + 0 (eval.c:1745)
29  org.gnu.AquamacsEmacs   0x000ec730 Fcommandp + 0 (eval.c:2024)
30  org.gnu.AquamacsEmacs   0x000f8a7c Frequire + 732 (fns.c:3602)
31  org.gnu.AquamacsEmacs   0x000ed110 Feval + 1128 (eval.c:2336)
32  org.gnu.AquamacsEmacs   0x000eded4 Ffuncall + 872 (eval.c:2998)
33  org.gnu.AquamacsEmacs	0x0011ba9c Fbyte_code + 2324  
(bytecode.c:680)
34  org.gnu.AquamacsEmacs	0x000ee4d8 funcall_lambda + 632 (eval.c: 
3189)

35  org.gnu.AquamacsEmacs   0x000ee05c Ffuncall + 1264 (eval.c:3054)
36  org.gnu.AquamacsEmacs	0x0011ba9c Fbyte_code + 2324  
(bytecode.c:680)
37  org.gnu.AquamacsEmacs	0x000ee4d8 funcall_lambda + 632 (eval.c: 
3189)

38  org.gnu.AquamacsEmacs   0x000ee05c Ffuncall + 1264 (eval.c:3054)
39  org.gnu.AquamacsEmacs	0x000e9448 Fcall_interactively + 4928  
(callint.c:860)
40  org.gnu.AquamacsEmacs	0x0008ca0c Fcommand_execute + 644  
(keyboard.c:10050)
41  org.gnu.AquamacsEmacs	0x00080838 command_loop_1 + 4420  
(keyboard.c:1894)
42  org.gnu.AquamacsEmacs	0x000eba1c internal_condition_case +  
336 (eval.c:1482)
43  org.gnu.AquamacsEmacs	0x0007f308 command_loop_2 + 64  
(keyboard.c:1332)
44  org.gnu.AquamacsEmacs	0x000eb3cc internal_catch + 264 (eval.c: 
1222)
45  org.gnu.AquamacsEmacs	0x0007f260 command_loop + 148  
(keyboard.c:1315)
46  org.gnu.AquamacsEmacs	0x0007ebf8 recursive_edit_1 + 172  
(keyboard.c:1010)
47  org.gnu.AquamacsEmacs	0x0007ed94 Frecursive_edit + 224  
(keyboard.c:1071)

48  org.gnu.AquamacsEmacs   0x0007d864 main + 3232 (emacs.c:1765)
49  org.gnu.AquamacsEmacs   0xa060 _start + 392 (crt.c:267)
50  dyld0x8fe01048 _dyld_start + 60

Thread 1:
0   libSystem.B.dylib   0x9001fa0c select + 12
1   com.apple.CoreFoundation

Re: Crash in redisplay_internal - note_mode_line_or_margin_highlight

2007-04-09 Thread Chong Yidong
David Reitter [EMAIL PROTECTED] writes:

 This crash occurred with a (slightly modified) CVS version
 (2007-04-04), Carbon build.

 I was trying out tabbar.el (providing tabbar-mode) using PNG files
 for `tabbar-home-button-enabled-image' and the other tabbar buttons.
 I think I clicked on the mode (leftmost) button before this
 happened, but I'm not sure.

I can't reproduce this patch, but I can see how it could conceivably
happen.

Kim, could you study this patch and tell me what you think?

*** emacs/src/xdisp.c.~1.1145.~ 2007-04-09 11:36:15.0 -0400
--- emacs/src/xdisp.c   2007-04-09 12:23:04.0 -0400
***
*** 22437,22443 
  
Lisp_Object mouse_face;
int original_x_pixel = x;
!   struct glyph * glyph = NULL;
struct glyph_row *row;
  
if (area == ON_MODE_LINE || area == ON_HEADER_LINE)
--- 22437,22443 
  
Lisp_Object mouse_face;
int original_x_pixel = x;
!   struct glyph * glyph = NULL, * row_start_glyph = NULL;
struct glyph_row *row;
  
if (area == ON_MODE_LINE || area == ON_HEADER_LINE)
***
*** 22455,22461 
/* Find glyph */
if (row-mode_line_p  row-enabled_p)
{
! glyph = row-glyphs[TEXT_AREA];
  end = glyph + row-used[TEXT_AREA];
  
  for (x0 = original_x_pixel;
--- 22455,22461 
/* Find glyph */
if (row-mode_line_p  row-enabled_p)
{
! glyph = row_start_glyph = row-glyphs[TEXT_AREA];
  end = glyph + row-used[TEXT_AREA];
  
  for (x0 = original_x_pixel;
***
*** 22579,22590 
 is converted to a flatten by emacs lisp interpreter.
 The internal string is an element of the structures.
 The displayed string is the flatten string. */
! for (tmp_glyph = glyph - 1, gpos = 0;
!  tmp_glyph-charpos = XINT (b);
!  tmp_glyph--, gpos++)
{
! if (!EQ (tmp_glyph-object, glyph-object))
!   break;
}
  
  /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of
--- 22579,22594 
 is converted to a flatten by emacs lisp interpreter.
 The internal string is an element of the structures.
 The displayed string is the flatten string. */
! gpos = 0;
! if (glyph != row_start_glyph)
{
! for (tmp_glyph = glyph - 1;
!  tmp_glyph-charpos = XINT (b);
!  tmp_glyph--, gpos++)
!   {
! if (!EQ (tmp_glyph-object, glyph-object))
!   break;
!   }
}
  
  /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of



___
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug