(In reply to Alejandro Piñeiro from comment #4)
> (In reply to alexander :surkov from comment #3)
> > Oh, I see. We do lazy name setting so we do atk_object_set_name whenever we
> > were asked for accessible name (atk_object_get_name). I'm not sure whether
> > we have another option to do this lazily.
>
> So AFAIU, your implementation of _get_name is calling _set_name, and ATK
> implementation of _set_name is calling _get_name, right?
yes
> > In general I think ATK code shouldn't allow the crash even if the server
> > does something wrong. So simple reentrance guard on atk side should help.
> > Alejandro?
>
> What kind of reentrance guard? Do you have any example on Firefox code?
sorry for terms. I meant something like this
1015,7 +1015,7 @@ atk_object_set_name (AtkObject *accessible,
if (klass->set_name)
{
static bool isReentrance = false;
if (!isReentrance) {
/* Do not notify for initial name setting. See bug 665870 */
isReentrance = true;
notify = (atk_object_get_name (accessible) != NULL);
isReentrance = false;
}
}
> Anyway, as this week is a GNOME release week, I think that it would be safer
> to just revert that change, and make a new release, and we could think on
> solve this issue later (probably after GNOME 3.4).
unfortunately that will discover Thunderbird crash
(In reply to Alejandro Piñeiro from comment #4) get_name) . I'm not sure whether
> (In reply to alexander :surkov from comment #3)
> > Oh, I see. We do lazy name setting so we do atk_object_set_name whenever we
> > were asked for accessible name (atk_object_
> > we have another option to do this lazily.
>
> So AFAIU, your implementation of _get_name is calling _set_name, and ATK
> implementation of _set_name is calling _get_name, right?
yes
> > In general I think ATK code shouldn't allow the crash even if the server
> > does something wrong. So simple reentrance guard on atk side should help.
> > Alejandro?
>
> What kind of reentrance guard? Do you have any example on Firefox code?
sorry for terms. I meant something like this
1015,7 +1015,7 @@ atk_object_set_name (AtkObject *accessible, get_name (accessible) != NULL);
if (klass->set_name)
{
static bool isReentrance = false;
if (!isReentrance) {
/* Do not notify for initial name setting. See bug 665870 */
isReentrance = true;
notify = (atk_object_
isReentrance = false;
}
}
> Anyway, as this week is a GNOME release week, I think that it would be safer
> to just revert that change, and make a new release, and we could think on
> solve this issue later (probably after GNOME 3.4).
unfortunately that will discover Thunderbird crash