Re: [g-a-devel]Crash in at-spi-registryd



On Mon, 2002-09-16 at 11:37, Padraig O'Briain wrote:
> I have found at-spi-registryd crashing on me when I do a buttob click.
> 
> The crash was in g_free() call on line 204 of deviceeventcontroller.c.
> 
> This was the file that Bill changed recently but I do not see how that change 
> could have caused this problem.
> 
> In any event, I would like permission to apply the attached patch.

Please do; 

I see that you found the 'real' culprit, a misuse of CORBA_string_dup
(line 195).  But you are right, the g_strdup()/g_free() pairs are
unnecessary in this method as well.

-Bill

> Padraig
> ----
> 

> ? Accessibility_Registry.server.in
> ? at-spi-registryd
> ? deviceeventcontroller.c.NEW
> cvs server: Diffing .
> Index: deviceeventcontroller.c
> ===================================================================
> RCS file: /cvs/gnome/at-spi/registryd/deviceeventcontroller.c,v
> retrieving revision 1.45
> diff -u -p -r1.45 deviceeventcontroller.c
> --- deviceeventcontroller.c	13 Sep 2002 13:13:40 -0000	1.45
> +++ deviceeventcontroller.c	16 Sep 2002 10:36:57 -0000
> @@ -193,7 +193,7 @@ spi_dec_poll_mouse_moved (gpointer data)
>  			   button_number);
>  #endif
>  		  snprintf (event_name, 22, "mouse:button:%dr", button_number);
> -		  e.type = CORBA_string_dup (event_name);
> +		  e.type = event_name;
>  		  e.source = BONOBO_OBJREF (registry->desktop);
>  		  e.detail1 = last_mouse_pos->x;
>  		  e.detail2 = last_mouse_pos->y;
> @@ -201,7 +201,6 @@ spi_dec_poll_mouse_moved (gpointer data)
>  		  Accessibility_Registry_notifyEvent (BONOBO_OBJREF (registry),
>  						      &e,
>  						      &ev);
> -		  g_free (e.type);
>  	  }
>  	  mouse_button_state = mask_return & mouse_button_mask;
>    }
> @@ -209,9 +208,9 @@ spi_dec_poll_mouse_moved (gpointer data)
>  	  last_mouse_pos = g_new0 (GdkPoint, 1);
>  	  last_mouse_pos->x = 0;
>  	  last_mouse_pos->y = 0;
> -	  e.type = g_strdup ("mouse:abs");
> +	  e.type = "mouse:abs";
>    } else {
> -	  e.type = g_strdup ("mouse:rel");  
> +	  e.type = "mouse:rel";  
>    }
>    if (x != last_mouse_pos->x || y != last_mouse_pos->y) {
>  	  e.source = BONOBO_OBJREF (registry->desktop);
> @@ -223,10 +222,8 @@ spi_dec_poll_mouse_moved (gpointer data)
>  	  Accessibility_Registry_notifyEvent (BONOBO_OBJREF (registry),
>  					      &e,
>  					      &ev);
> -	  g_free (e.type);
>  	  return TRUE;
>    }
> -  g_free (e.type);
>    return FALSE;
>  }
>  





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]