gnash-dev
[Top][All Lists]
Advanced

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

Re: [Gnash-dev] Cairo backend cleanup


From: Thomas Coppi
Subject: Re: [Gnash-dev] Cairo backend cleanup
Date: Mon, 11 Dec 2006 20:10:54 -0700



On 12/11/06, Thomas Coppi <address@hidden> wrote:
On 12/11/06, Timothy Lee < address@hidden> wrote:
Dear Thomas,

Is it a compilation problem, or incorrect output?

Regards,
Timothy

Thomas Coppi wrote:
> I would just like to mention that these changes in gnash HEAD break
> the cairo renderer for me.  I have confirmed that it works in
> gnash-0.7.2 pre-patch.
> I'm using cairo-1.3.4 and gtk+-2.10.6

 

It compiles fine, but upon further inspection, I believe it may be a bug in cairo that the new code is exposing.  Here is output when running the car_smash.swf file provided in the testsuite:

gnash: cairo-bentley-ottmann.c:754: _cairo_bo_event_queue_init: Assertion `_cairo_bo_point32_compare (&edges[i].top, &edges[i].bottom) < 0' failed.
Aborted

Unfortunatly, that output is not consistent.  Sometimes it crashes with that output, and others it runs but nothing is displayed, such as with test.swf.

Also, here is a backtrace of the crash:

(gdb) run ./car_smash.swf
Starting program: /usr/bin/gnash ./car_smash.swf
[Thread debugging using libthread_db enabled]
[New Thread 47131925121040 (LWP 24034)]
[New Thread 1082132816 (LWP 24525)]
gnash: cairo-bentley-ottmann.c:754: _cairo_bo_event_queue_init: Assertion `_cairo_bo_point32_compare (&edges[i].top, &edges[i].bottom) < 0' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 47131925121040 (LWP 24034)]
0x00002addc14823a3 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00002addc14823a3 in raise () from /lib/libc.so.6
#1  0x00002addc1483356 in abort () from /lib/libc.so.6
#2  0x00002addc147ce65 in __assert_fail () from /lib/libc.so.6
#3  0x00002addbf700153 in _cairo_bentley_ottmann_tessellate_polygon () from /usr/lib/../lib64/libcairo.so.2
#4  0x00002addbf70823e in _cairo_path_fixed_fill_to_traps () from /usr/lib/../lib64/libcairo.so.2
#5  0x00002addbf700ba0 in _cairo_clip_clip () from /usr/lib/../lib64/libcairo.so.2
#6  0x00002addbf6fd87d in cairo_clip_preserve () from /usr/lib/../lib64/libcairo.so.2
#7  0x00002addbf6fd899 in cairo_clip () from /usr/lib/../lib64/libcairo.so.2
#8  0x00002addbcc7ae29 in gnash::renderer::cairo::render_handler_cairo::begin_display (this=0x59bf60, background_color=<value optimized out>, viewport_width=800,
    viewport_height=600, x0=0, x1=<value optimized out>, y0=0, y1=<value optimized out>) at render_handler_cairo.cpp:317
#9  0x00002addbcdf5fa0 in gnash::movie_root::display (this=0x5afe10) at movie_root.cpp:494
#10 0x00002addbca61337 in gnash::Gui::display (this=0x50cb70, m=0x5afe10) at gui.cpp:295
#11 0x00002addbca613b1 in gnash::Gui::advance_movie (gui=0x50cb70) at gui.cpp:357
#12 0x00002addc031c8eb in g_timeout_dispatch () from /usr/lib/../lib64/libglib-2.0.so.0
#13 0x00002addc031aa3e in g_main_context_dispatch () from /usr/lib/../lib64/libglib-2.0.so.0
#14 0x00002addc031dd15 in g_main_context_iterate () from /usr/lib/../lib64/libglib-2.0.so.0
#15 0x00002addc031dfda in g_main_loop_run () from /usr/lib/../lib64/libglib-2.0.so.0
#16 0x00002addbec57882 in gtk_main () from /usr/lib/../lib64/libgtk-x11-2.0.so.0
#17 0x00002addbca5f51b in gnash::GtkGui::run (this=<value optimized out>) at gtk.cpp:276
#18 0x00002addbd2784e9 in gnash::Player::run (this=0x7fffee166660, argc=<value optimized out>, argv=0x7fffee1667f8, infile=<value optimized out>,
    url="" optimized out>) at Player.cpp:347
#19 0x00000000004031f5 in main (argc=2, argv=0x7fffee1667f8) at gnash.cpp:333


--
Thomas Coppi

...and upon even further investigation, it seems that this is a known bug in cairo and is fixed in the latest snapshot.  So the cairo renderer now works for me.

--
Thomas Coppi
reply via email to

[Prev in Thread] Current Thread [Next in Thread]