emacs-devel
[Top][All Lists]
Advanced

[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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]