Bug 678269 - NULL cairo surface in draw event
Summary: NULL cairo surface in draw event
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: firefox
Version: 15
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Gecko Maintainer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-02-17 11:01 UTC by Martin Stransky
Modified: 2011-04-15 04:25 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-04-15 04:25:04 UTC
Type: ---


Attachments (Terms of Use)

Description Martin Stransky 2011-02-17 11:01:04 UTC
Description of problem:

cairo_t in gtk3 draw event does not have a valid target. cairo_get_target(cr) returns null.

Version-Release number of selected component (if applicable):
gtk3-3.0.0-1.fc15.i686
cairo-1.10.2-3.fc15.i686

How reproducible:
Not sure. I work on firefox4 gtk3 port and it happens here.

Additional info:
gboolean
expose_event_cb(GtkWidget *widget, cairo_t *cr)
{
    cairo_surface_t* target = cairo_get_target(cr);
    assert(target);

- the code asserts here. But if I stop it in gdb, then:

(gdb) p	target
$1 = (cairo_surface_t *) 0x0
(gdb) p	/x cairo_get_target(cr)
$3 = 0xb3574680

It looks like the cairo surface is somehow created when the code is evaluated in gdb.

Comment 1 Martin Stransky 2011-02-17 15:04:22 UTC
FYI. cairo_status(cr) returns CAIRO_STATUS_SUCCESS before cairo_get_target() call.

Comment 2 Martin Stransky 2011-02-17 15:32:21 UTC
Seems to be caused by internal/system cairo mix inside firefox. But it's still strange somehow ...

Comment 3 Matthias Clasen 2011-04-14 23:29:57 UTC
I don't see how this is a gtk3 problem, really.

Comment 4 Christopher Aillon 2011-04-15 04:25:04 UTC
Our package doesn't even have support for gtk3 in the sources, let alone built.  It's still somewhat experimental code that has yet to be merged upstream, so closing this out I guess.  Martin, reopen if you disagree.


Note You need to log in before you can comment on or make changes to this bug.