Closed Bug 216752 Opened 21 years ago Closed 21 years ago

[gtk2]tooltip make mozilla crash on Solaris

Categories

(Core Graveyard :: GFX: Gtk, defect)

Sun
Solaris
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: iamawalrus, Assigned: iamawalrus)

References

Details

(Keywords: crash)

Attachments

(1 file, 1 obsolete file)

When using classic theme, mozilla init the tooltips widget in gtk2drawing.c like:

static gint
ensure_tooltip_widget()
{
    if (!gTooltipWidget) {
        gTooltipWidget = gtk_tooltips_new();
        gtk_tooltips_force_window(gTooltipWidget);
        gtk_widget_set_rc_style(gTooltipWidget->tip_window);
        gtk_widget_realize(gTooltipWidget->tip_window);
    }
    return MOZ_GTK_SUCCESS;
}
This causes crashes of mozilla on solaris as same as bug 140698 .
Summary: tooltip make mozilla crash on Solaris → [gtk2]tooltip make mozilla crash on Solaris
Attached patch patch (obsolete) — Splinter Review
Attachment #130113 - Flags: review?(blizzard)
Attachment #130113 - Attachment is obsolete: true
Attachment #130113 - Flags: review?(blizzard)
Attachment #130151 - Flags: review?(blizzard)
Severity: normal → critical
Attachment #130151 - Flags: review?(blizzard) → review?(bryner)
Comment on attachment 130151 [details] [diff] [review]
patch sync with current trunk

looks ok to me.
Attachment #130151 - Flags: review?(bryner) → review+
Comment on attachment 130151 [details] [diff] [review]
patch sync with current trunk

Thanks, bryner!
Attachment #130151 - Flags: superreview?(blizzard)
Comment on attachment 130151 [details] [diff] [review]
patch sync with current trunk


>-        g_object_unref(gTooltipWidget);
>+        gtk_widget_destroy(gTooltipWidget);

I think this leaves a floating tooltip widget.	If I remember correctly,
gtk_widget_destroy() does not unref, it merely destroys the representation of
it.
Attachment #130151 - Flags: superreview?(blizzard) → superreview-
> I think this leaves a floating tooltip widget.	If I remember correctly,
> gtk_widget_destroy() does not unref, it merely destroys the representation of
> it.

The gTooltipWidget is not a GtkTooltip any longer. It is a GtkWindow instead.
Only used for tooltip style.
The same thing applies, though.
GtkWindow is a toplevel window and no one owns it. It calls the gtk_object_sink
in its init ( see gtk_window_init in gtkwindow.c ). I think we can just call
gtk_widget_destroy as we do the same thing to gProtoWindow. Currect me if I am
wrong.
Attachment #130151 - Flags: superreview- → superreview+
checked in trunk.
bryner and blizzard, thanks!
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: