[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Crash of CVS emacs on MacOSX
From: |
YAMAMOTO Mitsuharu |
Subject: |
Re: Crash of CVS emacs on MacOSX |
Date: |
Thu, 01 Apr 2004 14:56:12 +0900 |
User-agent: |
Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.3.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
>>>>> On 17 Mar 2004 12:04:46 +0100, Piet van Oostrum <address@hidden> said:
> The latest one was when I did 'g' in *Groups* and it just seemed to
> hang. So after fetching tea I hit C-g a couple of times and got the
> following info from gdb. I hope this gives some clue. I had similar
> crashes with slightly older versions.
Could you try this patch? These changes are for making compilation
with -DUSE_LISP_UNION_TYPE successful. Most of the modifications do
not change the behavior in the default configuration, but the one in
macmenu.c does.
YAMAMOTO Mitsuharu
address@hidden
Index: src/lisp.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/lisp.h,v
retrieving revision 1.483
diff -c -r1.483 lisp.h
*** src/lisp.h 11 Mar 2004 00:27:33 -0000 1.483
--- src/lisp.h 1 Apr 2004 05:46:03 -0000
***************
*** 2850,2855 ****
--- 2850,2857 ----
extern void syms_of_indent P_ ((void));
/* defined in frame.c */
+ extern Lisp_Object Vx_resource_name;
+ extern Lisp_Object Vx_resource_class;
extern Lisp_Object Qvisible;
extern void store_frame_param P_ ((struct frame *, Lisp_Object, Lisp_Object));
extern void store_in_alist P_ ((Lisp_Object *, Lisp_Object, Lisp_Object));
***************
*** 3070,3080 ****
#ifdef HAVE_X_WINDOWS
/* Defined in xfns.c */
extern void syms_of_xfns P_ ((void));
! extern Lisp_Object Vx_resource_name;
! extern Lisp_Object Vx_resource_class;
EXFUN (Fxw_display_color_p, 1);
EXFUN (Fx_file_dialog, 4);
! #endif /* HAVE_X_WINDOWS */
/* Defined in xsmfns.c */
extern void syms_of_xsmfns P_ ((void));
--- 3072,3083 ----
#ifdef HAVE_X_WINDOWS
/* Defined in xfns.c */
extern void syms_of_xfns P_ ((void));
! #endif /* HAVE_X_WINDOWS */
! #ifdef HAVE_WINDOW_SYSTEM
! /* Defined in xfns.c, w32fns.c, or macfns.c */
EXFUN (Fxw_display_color_p, 1);
EXFUN (Fx_file_dialog, 4);
! #endif /* HAVE_WINDOW_SYSTEM */
/* Defined in xsmfns.c */
extern void syms_of_xsmfns P_ ((void));
Index: src/macfns.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macfns.c,v
retrieving revision 1.31
diff -c -r1.31 macfns.c
*** src/macfns.c 11 Mar 2004 22:43:18 -0000 1.31
--- src/macfns.c 1 Apr 2004 05:46:03 -0000
***************
*** 2598,2604 ****
if (!NILP (parent))
{
! f->output_data.mac->parent_desc = (Window) parent;
f->output_data.mac->explicit_parent = 1;
}
else
--- 2598,2604 ----
if (!NILP (parent))
{
! f->output_data.mac->parent_desc = (Window) XFASTINT (parent);
f->output_data.mac->explicit_parent = 1;
}
else
Index: src/macmenu.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macmenu.c,v
retrieving revision 1.13
diff -c -r1.13 macmenu.c
*** src/macmenu.c 26 Feb 2004 17:46:47 -0000 1.13
--- src/macmenu.c 1 Apr 2004 05:46:03 -0000
***************
*** 1424,1430 ****
for (i = 0; i < previous_menu_items_used; i++)
if (menu_items_used == i
! || (!Fequal (previous_items[i], XVECTOR (menu_items)->contents[i])))
break;
if (i == menu_items_used && i == previous_menu_items_used && i != 0)
{
--- 1424,1430 ----
for (i = 0; i < previous_menu_items_used; i++)
if (menu_items_used == i
! || (NILP (Fequal (previous_items[i], XVECTOR
(menu_items)->contents[i]))))
break;
if (i == menu_items_used && i == previous_menu_items_used && i != 0)
{
Index: src/macterm.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macterm.c,v
retrieving revision 1.64
diff -c -r1.64 macterm.c
*** src/macterm.c 11 Mar 2004 22:43:32 -0000 1.64
--- src/macterm.c 1 Apr 2004 05:46:03 -0000
***************
*** 6982,6989 ****
mac_get_emulated_btn ( UInt32 modifiers )
{
int result = 0;
! if (Vmac_emulate_three_button_mouse != Qnil) {
! int cmdIs3 = (Vmac_emulate_three_button_mouse != Qreverse);
if (modifiers & controlKey)
result = cmdIs3 ? 2 : 1;
else if (modifiers & optionKey)
--- 6982,6989 ----
mac_get_emulated_btn ( UInt32 modifiers )
{
int result = 0;
! if (!NILP (Vmac_emulate_three_button_mouse)) {
! int cmdIs3 = !EQ (Vmac_emulate_three_button_mouse, Qreverse);
if (modifiers & controlKey)
result = cmdIs3 ? 2 : 1;
else if (modifiers & optionKey)
***************
*** 7001,7007 ****
UInt32 mods = 0;
GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
sizeof (UInt32), NULL, &mods);
! if (Vmac_emulate_three_button_mouse != Qnil &&
GetEventClass(eventRef) == kEventClassMouse)
{
mods &= ~(optionKey & cmdKey);
--- 7001,7007 ----
UInt32 mods = 0;
GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
sizeof (UInt32), NULL, &mods);
! if (!NILP (Vmac_emulate_three_button_mouse) &&
GetEventClass(eventRef) == kEventClassMouse)
{
mods &= ~(optionKey & cmdKey);
***************
*** 7020,7026 ****
switch (result)
{
case kEventMouseButtonPrimary:
! if (Vmac_emulate_three_button_mouse == Qnil)
return 0;
else {
UInt32 mods = 0;
--- 7020,7026 ----
switch (result)
{
case kEventMouseButtonPrimary:
! if (NILP (Vmac_emulate_three_button_mouse))
return 0;
else {
UInt32 mods = 0;
***************
*** 8176,8182 ****
inev.timestamp = er.when * (1000 / 60);
/* ticks to milliseconds */
! XSETINT (inev.x, tracked_scroll_bar->left + 2);
XSETINT (inev.y, mouse_loc.v - 24);
tracked_scroll_bar->dragging = Qnil;
mouse_tracking_in_progress = mouse_tracking_none;
--- 8176,8182 ----
inev.timestamp = er.when * (1000 / 60);
/* ticks to milliseconds */
! XSETINT (inev.x, XFASTINT (tracked_scroll_bar->left) + 2);
XSETINT (inev.y, mouse_loc.v - 24);
tracked_scroll_bar->dragging = Qnil;
mouse_tracking_in_progress = mouse_tracking_none;
***************
*** 8268,8281 ****
= mouse_tracking_mouse_movement;
else
mouse_tracking_in_progress = mouse_tracking_none;
! window = window_from_coordinates (mwp->mFP, inev.x,
inev.y, 0, 0, 0, 1);
if (EQ (window, mwp->mFP->tool_bar_window))
{
if (er.what == mouseDown)
! handle_tool_bar_click (mwp->mFP, inev.x, inev.y, 1,
0);
else
! handle_tool_bar_click (mwp->mFP, inev.x, inev.y, 0,
#if USE_CARBON_EVENTS
mac_event_to_emacs_modifiers
(eventRef)
#else
--- 8268,8286 ----
= mouse_tracking_mouse_movement;
else
mouse_tracking_in_progress = mouse_tracking_none;
! window = window_from_coordinates (mwp->mFP,
! mouse_loc.h,
! mouse_loc.v,
! 0, 0, 0, 1);
if (EQ (window, mwp->mFP->tool_bar_window))
{
if (er.what == mouseDown)
! handle_tool_bar_click (mwp->mFP, mouse_loc.h,
! mouse_loc.v, 1, 0);
else
! handle_tool_bar_click (mwp->mFP, mouse_loc.h,
! mouse_loc.v, 0,
#if USE_CARBON_EVENTS
mac_event_to_emacs_modifiers
(eventRef)
#else
***************
*** 8971,8977 ****
EVENT_INIT (e);
e.kind = ASCII_KEYSTROKE_EVENT;
e.code = quit_char;
! e.arg = NULL;
e.modifiers = NULL;
e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
XSETFRAME (e.frame_or_window, mwp->mFP);
--- 8976,8982 ----
EVENT_INIT (e);
e.kind = ASCII_KEYSTROKE_EVENT;
e.code = quit_char;
! e.arg = Qnil;
e.modifiers = NULL;
e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
XSETFRAME (e.frame_or_window, mwp->mFP);
Index: src/macterm.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macterm.h,v
retrieving revision 1.13
diff -c -r1.13 macterm.h
*** src/macterm.h 11 Mar 2004 22:43:49 -0000 1.13
--- src/macterm.h 1 Apr 2004 05:46:03 -0000
***************
*** 566,572 ****
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
! struct frame * check_x_frame (Lisp_Object);
void activate_scroll_bars (FRAME_PTR);
void deactivate_scroll_bars (FRAME_PTR);
--- 566,583 ----
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
! struct frame;
! struct face;
! struct image;
!
! Lisp_Object display_x_get_resource P_ ((struct x_display_info *,
! Lisp_Object, Lisp_Object,
! Lisp_Object, Lisp_Object));
! struct frame *check_x_frame P_ ((Lisp_Object));
! EXFUN (Fx_display_color_p, 1);
! EXFUN (Fx_display_grayscale_p, 1);
! int image_ascent P_ ((struct image *, struct face *));
! extern void x_free_gcs P_ ((struct frame *));
void activate_scroll_bars (FRAME_PTR);
void deactivate_scroll_bars (FRAME_PTR);
- Re: Crash of CVS emacs on MacOSX,
YAMAMOTO Mitsuharu <=