Re: [g-a-devel]Crash in at-spi-registryd
- From: Bill Haneman <bill haneman sun com>
- To: "Padraig O'Briain" <Padraig Obriain sun com>
- Cc: gnome-accessibility-devel gnome org
- Subject: Re: [g-a-devel]Crash in at-spi-registryd
- Date: 16 Sep 2002 11:54:02 +0100
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]