bugGnash - The GNU Flash player - Bugs: bug #38382, gui/gtk/gtk.cpp: Do not divide by...

 
 

bug #38382: gui/gtk/gtk.cpp: Do not divide by 0 in debug output of `GtkGui::startAdvanceTimer()`

Submitter:  Paul Menzel <paulepanter>
Submitted:  Sat 23 Feb 2013 08:54:41 AM UTC
   
 
Category:  None Severity:  3 - Normal
Release:  master Status:  Ready For Test
Privacy:  Public Assigned to:  rsavoye
Open/Closed:  Open
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 24 Feb 2013 08:27:57 PM UTC, comment #3: 

This patch didn't apply, so I wound up doing it by hand. It's now committed to master.

Rob Savoye <rsavoye>
Group administrator
Sun 24 Feb 2013 01:31:05 AM UTC, comment #2: 

Are you sure about the patch?  It looks to me as if the two expressions for the lambda are exactly in the wrong order.

Andreas Köhler <andi5>
Sat 23 Feb 2013 09:00:18 AM UTC, comment #1: 

Please apply that patch with `git am path/to/attachment`.

(file #27507)

Paul Menzel <paulepanter>
Sat 23 Feb 2013 08:54:41 AM UTC, original submission:  

With Debian Sid/unstable and Gnash 0.8.11~git20120629-1 using Iceweasel browsing some Gerrit site using Flash with the Gnash plugin it crashed and I see the following in the `dmesg` output.

        $ dmesg
        […]
        [ 3088.440498] pool[4054]: segfault at 434b1ca38 ip 00007f2162c6806a sp 00007f213b11b1a0 error 4 in libc-2.13.so[7f2162bf1000+180000]

Not sure what caused this, as the core dump file was unfortunately overriden by the following.

        [ 3757.467692] gtk-gnash[4422] trap divide error ip:7fd05df4d8bb sp:7fff02d30cd0 error:0 in gtk-gnash[7fd05deec000+88000]
        [ 3757.472275] gtk-gnash[4420] trap divide error ip:7f96b22a48bb sp:7fffef8b0b00 error:0 in gtk-gnash[7f96b2243000+88000]
        [ 3757.474168] gtk-gnash[4421] trap divide error ip:7f7d243628bb sp:7fffe4d5a760 error:0 in gtk-gnash[7f7d24301000+88000]
        [ 3759.119862] gtk-gnash[4432] trap divide error ip:7f7f41fbb8bb sp:7ffff0823ea0 error:0 in gtk-gnash[7f7f41f5a000+88000]
        [ 3759.166424] gtk-gnash[4433] trap divide error ip:7ff789e2f8bb sp:7fffe6982760 error:0 in gtk-gnash[7ff789dce000+88000]
        [ 3759.576140] gtk-gnash[4434] trap divide error ip:7f0bd46568bb sp:7fff02929eb0 error:0 in gtk-gnash[7f0bd45f5000+88000]
        [ 3762.169373] gtk-gnash[4444] trap divide error ip:7fd52c2628bb sp:7fff5e7dba20 error:0 in gtk-gnash[7fd52c201000+88000]
        [ 3762.233929] gtk-gnash[4445] trap divide error ip:7fa0361328bb sp:7fffecabf4f0 error:0 in gtk-gnash[7fa0360d1000+88000]
        [ 3762.238106] gtk-gnash[4446] trap divide error ip:7f5bfcf0b8bb sp:7fffa92019a0 error:0 in gtk-gnash[7f5bfceaa000+88000]
        [ 3765.136958] gtk-gnash[4456] trap divide error ip:7f189b63e8bb sp:7fff6d76f650 error:0 in gtk-gnash[7f189b5dd000+88000]
        [ 3765.197563] gtk-gnash[4457] trap divide error ip:7f81a63008bb sp:7ffff915aee0 error:0 in gtk-gnash[7f81a629f000+88000]
        [ 3765.202593] gtk-gnash[4458] trap divide error ip:7fc2d57138bb sp:7fff6960b690 error:0 in gtk-gnash[7fc2d56b2000+88000]
        [ 3766.740796] gtk-gnash[4468] trap divide error ip:7fc7d07728bb sp:7fff68e8cf70 error:0 in gtk-gnash[7fc7d0711000+88000]
        [ 3766.766993] gtk-gnash[4470] trap divide error ip:7f3b3719a8bb sp:7fffb41a7db0 error:0 in gtk-gnash[7f3b37139000+88000]
        [ 3766.797072] gtk-gnash[4469] trap divide error ip:7f95192358bb sp:7fff92a73a50 error:0 in gtk-gnash[7f95191d4000+88000]
        [ 3768.892972] gtk-gnash[4480] trap divide error ip:7fe13eae38bb sp:7fff5d8f15c0 error:0 in gtk-gnash[7fe13ea82000+88000]
        [ 3768.912113] gtk-gnash[4481] trap divide error ip:7fc8dd50c8bb sp:7fff91e75050 error:0 in gtk-gnash[7fc8dd4ab000+88000]
        [ 3768.918188] gtk-gnash[4482] trap divide error ip:7fe78a85c8bb sp:7fff7d9b8510 error:0 in gtk-gnash[7fe78a7fb000+88000]
        [ 3839.040938] gtk-gnash[4493] trap divide error ip:7f70f21da8bb sp:7fffc719ca20 error:0 in gtk-gnash[7f70f2179000+88000]
        [ 3842.244648] gtk-gnash[4497] trap divide error ip:7fb383fd78bb sp:7fff5e6b0040 error:0 in gtk-gnash[7fb383f76000+88000]
        […]

This error can also be seen in the `dmesg` output of a different person pasted to the Debian bug report #661734 [1].

The core dump file is from the latter and loading it with GDB the following backtrace is created.

        (gdb) t a a bt f
        Cannot find new threads: generic error
        (gdb) bt f
        #0  0x00007f5cb05ba8bb in gnash::GtkGui::startAdvanceTimer (this=0x7f5c9c794020) at ../../gui/gtk/gtk.cpp:600
        No locals.
        #1  0x00007f5cb05a787b in gnash::Player::run (this=0x7fffddd4c8c0, argc=26, argv=0x7fffddd4dcc8, infile=..., url=...)
            at ../../gui/Player.cpp:558
                root = {<gnash::GcRoot> = {_vptr.GcRoot = 0x7f5cb032b5f0}, <boost::noncopyable_::noncopyable> = {<No data fields>},
                  _buttonListeners = {<std::_List_base<gnash::Button*, std::allocator<gnash::Button*> >> = {
                      _M_impl = {<std::allocator<std::_List_node<gnash::Button*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::Button*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7fffddd4bc08, _M_prev = 0x7fffddd4bc08}}}, <No data fields>}, _gc = {
                    _maxNewCollectablesCount = 64,
                    _resList = {<std::_List_base<gnash::GcResource const*, std::allocator<gnash::GcResource const*> >> = {
                        _M_impl = {<std::allocator<std::_List_node<gnash::GcResource const*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::GcResource const*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7f5c9ba1bf80,
                            _M_prev = 0x7f5c9ba3c960}}}, <No data fields>}, _resListSize = 104, _root = @0x7fffddd4bc00, _lastResCount = 0},
                  runResources = @0x7f5c9c768040, _vm = {<boost::noncopyable::noncopyable> = {<No data fields>}, _rootMovie = @0x7fffddd4bc00,
                    _global = 0x7f5c9c75f870, _swfversion = 6, _asNativeTable = {_M_t = {
                        _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::map<unsigned int, gnash::as_value ()(gnash::fn_call const&), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, gnash::as_value ()(gnash::fn_call const&)> > > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::map<unsigned int, gnash::as_value ()(gnash::fn_call const&), std::less<unsigned int>, std::allocator<std::pair<unsigned int const, gnash::as_value ()(gnash::fn_call const&)> > > > > >> = {<No data fields>}, <No data fields>},
                          _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>},
                          _M_header = {_M_color = std::_S_red, _M_parent = 0x7f5c9ba1ea60, _M_left = 0x7f5c9ba1e880, _M_right = 0x7f5c9ba43580},
                          _M_node_count = 44}}}, _stringTable = {
                      _table = {<boost::base_from_member<std::allocator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<gnash::string_table::svt, std::allocator<gnash::string_table::svt> > > > >, 0>> = {
                          member = {<__gnu_cxx::new_allocator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<gnash::string_table::svt, std::allocator<gnash::string_table::svt> > > > >> = {<No data fields>}, <No data fields>}}, <boost::multi_index::detail::header_holder<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<gnash::string_table::svt, std::allocator<gnash::string_table::svt> > > >*, boost::multi_index::multi_index_container<gnash::string_table::svt, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringValue, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>, mpl_::na, mpl_::na>, boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringID, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<gnash::string_table::svt> > >> = {<boost::noncopyable_::noncopyable> = {<No data fields>},
                          member = 0x7f5c9c7dafe0}, <boost::multi_index::detail::hashed_index<boost::multi_index::member<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>, boost::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::multi_index::detail::nth_layer<1, gnash::string_table::svt, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringValue, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>, mpl_::na, mpl_::na>, boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringID, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<gnash::string_table::svt> >, boost::mpl::v_item<gnash::string_table::StringValue, boost::mpl::vector0<mpl_::na>, 0>, boost::multi_index::detail::hashed_unique_tag>> = {<boost::multi_index::detail::hashed_index<boost::multi_index::member<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>, boost::hash<unsigned long>, std::equal_to<unsigned long>, boost::multi_index::detail::nth_layer<2, gnash::string_table::svt, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringValue, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>, mpl_::na, mpl_::na>, boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringID, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<gnash::string_table::svt> >, boost::mpl::v_item<gnash::string_table::StringID, boost::mpl::vector0<mpl_::na>, 0>, boost::multi_index::detail::hashed_unique_tag>> = {<boost::multi_index::detail::index_base<gnash::string_table::svt, boost::multi_index::indexed_by<boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringValue, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>, mpl_::na, mpl_::na>, boost::multi_index::hashed_unique<boost::multi_index::tag<gnash::string_table::StringID, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::multi_index::member<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, std::allocator<gnash::string_table::svt> >> = {<No data fields>},
                            key = {<boost::multi_index::detail::non_const_member_base<gnash::string_table::svt, unsigned long, &gnash::string_table::svt::id>> = {<No data fields>}, <No data fields>},
                            hash = {<std::unary_function<unsigned long, unsigned long>> = {<No data fields>}, <No data fields>},
                            eq = {<std::binary_function<unsigned long, unsigned long, bool>> = {<No data fields>}, <No data fields>},
                            buckets = {<boost::multi_index::detail::bucket_array_base> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, <No data fields>}, size_ = 769, spc = {<boost::noncopyable_::noncopyable> = {<No data fields>},
                                al_ = {<__gnu_cxx::new_allocator<boost::multi_index::detail::hashed_index_node_impl<std::allocator<char> > >> = {<No data fields>}, <No data fields>}, n_ = 770, data_ = 0x7f5c9ba57000}}, mlf = 1, max_load = 769, first_bucket = 1},
                          key = {<boost::multi_index::detail::non_const_member_base<gnash::string_table::svt, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, &gnash::string_table::svt::value>> = {<No data fields>}, <No data fields>},
                          hash = {<std::unary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long>> = {<No data fields>}, <No data fields>},
                          eq = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>},
                          buckets = {<boost::multi_index::detail::bucket_array_base> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, <No data fields>}, size_ = 769, spc = {<boost::noncopyable_::noncopyable> = {<No data fields>},
                              al_ = {<__gnu_cxx::new_allocator<boost::multi_index::detail::hashed_index_node_impl<std::allocator<char> > >> = {<No data fields>}, <No data fields>}, n_ = 770, data_ = 0x7f5c9ba55000}}, mlf = 1, max_load = 769, first_bucket = 0}, node_count = 426},
                      static _empty = {static npos = <optimized out>,
                        _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                          _M_p = 0x7f5cadc5e498 ""}}, _lock = {m = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0,
                            __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}},
                      _highestKey = 469, _caseTable = {_M_t = {
                          _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > >> = {<No data fields>}, <No data fields>},
                            _M_key_compare = {<std::binary_function<unsigned long, unsigned long, bool>> = {<No data fields>}, <No data fields>},
                            _M_header = {_M_color = std::_S_red, _M_parent = 0x7f5c9ba3e8b0, _M_left = 0x7f5c9ba19670,
                              _M_right = 0x7f5c9ba52a60}, _M_node_count = 159}}}, _highestKnownLowercase = 76}, _clock = @0x7f5c9c794128,
                    _stack = {_data = {<std::_Vector_base<gnash::as_value*, std::allocator<gnash::as_value*> >> = {
                          _M_impl = {<std::allocator<gnash::as_value*>> = {<__gnu_cxx::new_allocator<gnash::as_value*>> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, _downstop = 0, _end = 1,
                      static _chunkShift = <optimized out>, static _chunkMod = <optimized out>}, _globalRegisters = {elems = {{
                          type = gnash::as_value::UNDEFINED, _value = {which = 0,
                            storage_ = {<boost::detail::aligned_storage::aligned_storage_imp<24ul, 8ul>> = {data_ = {
                                  buf = "\350\004M\260\\\177\000\000\000\360L\260\\\177\000\000\310\tM\260\\\177\000",
                                  align_ = {<No data fields>}}}, static size = <optimized out>, static alignment = <optimized out>}}}, {
                          type = gnash::as_value::UNDEFINED, _value = {which = 0,
                            storage_ = {<boost::detail::aligned_storage::aligned_storage_imp<24ul, 8ul>> = {data_ = {
                                  buf = "`\332\324\335\377\177\000\000p\252}\256\\\177\000\000\000\000@\265\251\273\377\377",
                                  align_ = {<No data fields>}}}, static size = <optimized out>, static alignment = <optimized out>}}}, {
                          type = gnash::as_value::UNDEFINED, _value = {which = 0,
                            storage_ = {<boost::detail::aligned_storage::aligned_storage_imp<24ul, 8ul>> = {data_ = {
                                  buf = "\274TY\256\\\177\000\000 \277\324\335\377\177\000\000\000\000\200{\251\273\377\377",
                                  align_ = {<No data fields>}}}, static size = <optimized out>, static alignment = <optimized out>}}}, {
                          type = gnash::as_value::UNDEFINED, _value = {which = 0,
                            storage_ = {<boost::detail::aligned_storage::aligned_storage_imp<24ul, 8ul>> = {data_ = {
                                  buf = "\000\305\324\335\377\177\000\000\001\000\000\000\000\000\000\000 \277\324\335\377\177\000",
                                  align_ = {<No data fields>}}}, static size = <optimized out>, static alignment = <optimized out>}}}}},
                    _callStack = {<std::_Vector_base<gnash::CallFrame, std::allocator<gnash::CallFrame> >> = {
                        _M_impl = {<std::allocator<gnash::CallFrame>> = {<__gnu_cxx::new_allocator<gnash::CallFrame>> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, _shLib = {_M_ptr = 0x7f5c9ba29ce0}, _rng = {
                      static word_size = <optimized out>, static state_size = <optimized out>, static shift_size = <optimized out>,
                      static mask_bits = <optimized out>, static xor_mask = <optimized out>, static tempering_u = <optimized out>,
                      static tempering_d = <optimized out>, static tempering_s = <optimized out>, static tempering_b = <optimized out>,
                      static tempering_t = <optimized out>, static tempering_c = <optimized out>, static tempering_l = <optimized out>,
                      static initialization_multiplier = <optimized out>, static default_seed = <optimized out>,
                      static parameter_a = <optimized out>, static output_u = <optimized out>, static output_s = <optimized out>,
                      static output_b = <optimized out>, static output_t = <optimized out>, static output_c = <optimized out>,
                      static output_l = <optimized out>, static has_fixed_range = <optimized out>, x = {0, 1, 1812433255, 1900727105, 1208447044,
                        2481403966, 4042607538, 337614300, 3232553940, 1018809052, 3202401494, 1775180719, 3192392114, 594215549, 184016991,
                        829906058, 610491522, 3879932251, 3139825610, 297902587, 4075895579, 2943625357, 3530655617, 1423771745, 2135928312,
                        2891506774, 1066338622, 135451537, 933040465, 2759011858, 2273819758, 3545703099, 2516396728, 1272276355, 3172048492,
                        3267256201, 2332199830, 1975469449, 392443598, 1132453229, 2900699076, 1998300999, 3847713992, 512669506, 1227792182,
                        1629110240, 112303347, 2142631694, 3647635483, 1715036585, 2508091258, 1355887243, 1884998310, 3906360088, 952450269,
                        3647883368, 3962623343, 3077504981, 2023096077, 3791588343, 3937487744, 3455116780, 1218485897, 1374508007, 2815569918,
                        1367263917, 472908318, 2263147545, 1461547499, 4126813079, 2383504810, 64750479, 2963140275, 1709368606, 4143643781,
                        835933993, 1881494649, 674663333, 2076403047, 858036109, 1667579889, 1706666497, 607785554, 1995775149, 1941986352,
                        3448871082, 2109910019, 1474883361, 1623095288, 1831376534, 2612738285, 81681830, 2204289242, 1365038485, 251164610,
                        4268495337, 1805601714, 1262528768, 1442526919, 1675006593, 965627108, 646339161, 499795587, 840887574, 380522518,
                        3023789847, 1457635507, 1947093157, 2600365344, 2729853143, 1550618999, 1390905853, 3021294812, 882647559, 838872117,
                        1663880796, 4222103589, 2754172275, 3844026123, 3199260319, 4176064873, 3591027019, 2690294242, 2978135515, 3172796441,
                        3263669796, 1451257057, 1427035359, 4174826006, 2171992010, 1537002090, 3122405306, 4162452508, 3271954368, 3794310005,
                        3240514581, 1270412086, 3030475836, 2281945856, 2644171349, 3109139423, 4253563838, 1289926431, 1396919653, 733220100,
                        2753316645, 1196225013, 3699575255, 3569440056, 2675979228, 2624079148, 3463113149, 863430286, 623703199, 2113837653,
                        2656425919, 175981357, 4271478366, 4238022735, 1665483419, 86880610, 2963435083, 1830392943, 847801865, 3237296945,
                        332143967, 3973606945, 2671879697, 2236330279, 2360127810, 3283955434, 203240344, 4048139172, 13189264, 2263058814,
                        247241371, 1566765783, 3084408095, 3719371299, 1958375251, 1985924622, 1712739232, 1861691451, 2644502937, 2337807839,
                        784993770, 2962208780, 2190810177, 1523122731, 714888527, 578678761, 3698481324, 1801168075, 534650483, 3390213921,
                        3923356461, 3586009066, 2059432114, 52511333, 1969897376...}, i = 351}, _constantPool = 0x0},
                  _interfaceHandler = 0x7f5c9ba3ca80, _fsCommandHandler = 0x7f5c9ba3ca88,
                  _liveChars = {<std::_List_base<gnash::MovieClip*, std::allocator<gnash::MovieClip*> >> = {
                      _M_impl = {<std::allocator<std::_List_node<gnash::MovieClip*> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::MovieClip*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7fffddd4c428, _M_prev = 0x7fffddd4c428}}}, <No data fields>},
                  _actionQueue = {elems = {
                      {<boost::ptr_sequence_adapter<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> >, boost::heap_clone_allocator>> = {<boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> > >, boost::heap_clone_allocator>> = {static allow_null = false,
                            c_ = {<std::_Deque_base<void*, std::allocator<void*> >> = {
                                _M_impl = {<std::allocator<void*>> = {<__gnu_cxx::new_allocator<void*>> = {<No data fields>}, <No data fields>},
                                  _M_map = 0x7f5c9ba1ccc0, _M_map_size = 8, _M_start = {_M_cur = 0x7f5c9c77c800, _M_first = 0x7f5c9c77c800,
                                    _M_last = 0x7f5c9c77ca00, _M_node = 0x7f5c9ba1ccd8}, _M_finish = {_M_cur = 0x7f5c9c77c800,
                                    _M_first = 0x7f5c9c77c800, _M_last = 0x7f5c9c77ca00,
                                    _M_node = 0x7f5c9ba1ccd8}}}, <No data fields>}}, <No data fields>}, <No data fields>},
                      {<boost::ptr_sequence_adapter<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> >, boost::heap_clone_allocator>> = {<boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> > >, boost::heap_clone_allocator>> = {static allow_null = false,
                            c_ = {<std::_Deque_base<void*, std::allocator<void*> >> = {
                                _M_impl = {<std::allocator<void*>> = {<__gnu_cxx::new_allocator<void*>> = {<No data fields>}, <No data fields>},
                                  _M_map = 0x7f5c9ba1cd00, _M_map_size = 8, _M_start = {_M_cur = 0x7f5c9c77ca00, _M_first = 0x7f5c9c77ca00,
                                    _M_last = 0x7f5c9c77cc00, _M_node = 0x7f5c9ba1cd18}, _M_finish = {_M_cur = 0x7f5c9c77ca00,
                                    _M_first = 0x7f5c9c77ca00, _M_last = 0x7f5c9c77cc00,
                                    _M_node = 0x7f5c9ba1cd18}}}, <No data fields>}}, <No data fields>}, <No data fields>},
                      {<boost::ptr_sequence_adapter<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> >, boost::heap_clone_allocator>> = {<boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<gnash::ExecutableCode, std::deque<void*, std::allocator<void*> > >, boost::heap_clone_allocator>> = {static allow_null = false,
                            c_ = {<std::_Deque_base<void*, std::allocator<void*> >> = {
                                _M_impl = {<std::allocator<void*>> = {<__gnu_cxx::new_allocator<void*>> = {<No data fields>}, <No data fields>},
                                  _M_map = 0x7f5c9ba1cd40, _M_map_size = 8, _M_start = {_M_cur = 0x7f5c9c77cc00, _M_first = 0x7f5c9c77cc00,
                                    _M_last = 0x7f5c9c77ce00, _M_node = 0x7f5c9ba1cd58}, _M_finish = {_M_cur = 0x7f5c9c77cc00,
                                    _M_first = 0x7f5c9c77cc00, _M_last = 0x7f5c9c77ce00,
                                    _M_node = 0x7f5c9ba1cd58}}}, <No data fields>}}, <No data fields>}, <No data fields>}}}, _stageWidth = 1,
                  _stageHeight = 1, m_background_color = {m_r = 255 '\377', m_g = 255 '\377', m_b = 255 '\377', m_a = 255 '\377'},
                  m_background_color_set = false, _mouseX = 0, _mouseY = 0, _mouseButtonState = {activeEntity = 0x0, topmostEntity = 0x0,
                    wasDown = false, isDown = false, wasInsideActiveEntity = false}, _objectCallbacks = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<gnash::ActiveRelay*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<gnash::ActiveRelay*> >> = {<No data fields>}, <No data fields>},
                        _M_key_compare = {<std::binary_function<gnash::ActiveRelay*, gnash::ActiveRelay*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x7fffddd4c568, _M_right = 0x7fffddd4c568}, _M_node_count = 0}}},
                  _loadCallbacks = {<std::_List_base<gnash::movie_root::LoadCallback, std::allocator<gnash::movie_root::LoadCallback> >> = {
                      _M_impl = {<std::allocator<std::_List_node<gnash::movie_root::LoadCallback> >> = {<__gnu_cxx::new_allocator<std::_List_node<gnash::movie_root::LoadCallback> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7fffddd4c590,
                          _M_prev = 0x7fffddd4c590}}}, <No data fields>}, _intervalTimers = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, boost::shared_ptr<gnash::Timer> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, boost::shared_ptr<gnash::Timer> > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {
                          _M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x7fffddd4c5a8, _M_right = 0x7fffddd4c5a8}, _M_node_count = 0}}},
                  _lastTimerId = 0, _unreleasedKeys = {<std::_Base_bitset<5ul>> = {_M_w = {0, 0, 0, 0, 0}}, <No data fields>},
                  _lastKeyEvent = gnash::key::INVALID, _currentFocus = 0x0,
                  dragState = {<boost::optional_detail::optional_base<gnash::DragState>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy = {
                          data = " \306\324\335\377\177\000\000 \315ŭ\\\177\000\000\006\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000m\000\000\000\000\000\000\000\275pv\234\\\177\000", aligner_ = {<No data fields>}}}}, <No data fields>}, _movies = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<int const, gnash::MovieClip*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, gnash::MovieClip*> > >> = {<No data fields>}, <No data fields>},
                        _M_key_compare = {<std::binary_function<int, int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {
                          _M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x7fffddd4c650, _M_right = 0x7fffddd4c650}, _M_node_count = 0}}},
                  _registeredClasses = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<gnash::SWF::DefinitionTag const* const, gnash::as_function*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gnash::SWF::DefinitionTag const* const, gnash::as_function*> > >> = {<No data fields>}, <No data fields>},
                        _M_key_compare = {<std::binary_function<gnash::SWF::DefinitionTag const*, gnash::SWF::DefinitionTag const*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0x7fffddd4c680,
                          _M_right = 0x7fffddd4c680}, _M_node_count = 0}}}, _rootMovie = 0x0, _invalidated = true, _disableScripts = false,
                  _processingActionLevel = 3, _hostfd = 39, _controlfd = 40, _quality = gnash::QUALITY_HIGH,
                  _alignMode = {<std::_Base_bitset<1ul>> = {_M_w = 0}, <No data fields>},
                  _allowScriptAccess = gnash::movie_root::SCRIPT_ACCESS_SAME_DOMAIN, _showMenu = true,
                  _scaleMode = gnash::movie_root::SCALEMODE_SHOWALL, _displayState = gnash::movie_root::DISPLAYSTATE_NORMAL,
                  _recursionLimit = 256, _timeoutLimit = 15, _movieAdvancementDelay = 83, _lastMovieAdvancement = 0, _unnamedInstance = 0,
                  movieLoader = {<boost::noncopyable::noncopyable> = {<No data fields>},
                    _requests = {<boost::ptr_sequence_adapter<gnash::MovieLoader::Request, std::list<void*, std::allocator<void*> >, boost::heap_clone_allocator>> = {<boost::ptr_container_detail::reversible_ptr_container<boost::ptr_container_detail::sequence_config<gnash::MovieLoader::Request, std::list<void*, std::allocator<void*> > >, boost::heap_clone_allocator>> = {static allow_null = false,
                          c_ = {<std::_List_base<void*, std::allocator<void*> >> = {
                              _M_impl = {<std::allocator<std::_List_node<void*> >> = {<__gnu_cxx::new_allocator<std::_List_node<void*> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x7fffddd4c700,
                                  _M_prev = 0x7fffddd4c700}}}, <No data fields>}}, <No data fields>}, <No data fields>}, _requestsMutex = {m = {
                        __data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0,
                            __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}}, _killed = 176, _killMutex = {m = {__data = {
                          __lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
                        __size = '\000' <repeats 39 times>, __align = 0}}, _wakeup = {internal_mutex = {__data = {__lock = 0, __count = 0,
                          __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
                        __size = '\000' <repeats 39 times>, __align = 0}, cond = {__data = {__lock = 0, __futex = 0, __total_seq = 0,
                          __wakeup_seq = 0, __woken_seq = 0, __mutex = 0x0, __nwaiters = 0, __broadcast_seq = 0},
                        __size = '\000' <repeats 47 times>, __align = 0}}, _movieRoot = @0x7fffddd4bc00, _thread = {_M_ptr = 0x0}, _barrier = {
                      m_mutex = {m = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {
                              __prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}}, m_cond = {internal_mutex = {
                          __data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0,
                              __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, cond = {__data = {__lock = 0, __futex = 0,
                            __total_seq = 0, __wakeup_seq = 0, __woken_seq = 0, __mutex = 0x0, __nwaiters = 0, __broadcast_seq = 0},
                          __size = '\000' <repeats 47 times>, __align = 0}}, m_threshold = 2, m_count = 2, m_generation = 0}},
                  timelineSound = {<boost::optional_detail::optional_base<gnash::movie_root::SoundStream>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy = {data = "\377\177\000\000\240\311\324", <incomplete sequence \335>,
                          aligner_ = {<No data fields>}}}}, <No data fields>}}
                rcfile = <optimized out>
                _PRETTY_FUNCTION_ = "void gnash::Player::run(int, char**, const string&, const string&)"
                np = {_M_ptr = 0x0}
                fv = <optimized out>
                movie_width = <optimized out>
                movie_height = <optimized out>
                it = <optimized out>
                baseURL = {_proto = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c767138 "http"}}, _host = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c774928 "review.coreboot.org"}}, _port = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _path = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c774958 "/"}}, _anchor = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c774988 "/c/2469/"}}, _querystring = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}}
                loaders = {px = 0x7f5c9c7749a0, pn = {pi_ = 0x7f5c9c767140}}
                sp = {px = 0x7f5c9c752a20, pn = {pi_ = 0x7f5c9c767220}}
        #2  0x00007f5cb0585300 in playFile (player=..., argc=argc@entry=26, argv=argv@entry=0x7fffddd4dcc8, filename=...)
            at ../../gui/gnash.cpp:90
                newPlayer = {_hwaccel = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c769238 "none"}}, _renderer = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c719cf8 "agg"}}, _callbacksHandler = {_M_ptr = 0x7f5c9ba3ca80}, _params = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red,
                          _M_parent = 0x7f5c9c7747f0, _M_left = 0x7f5c9c7748e0, _M_right = 0x7f5c9c774880}, _M_node_count = 6}}}, _scale = 1,
                  _delay = 0, _width = 110, _height = 14, _xPosition = -1, _yPosition = -1, _windowID = 21003679, _doLoop = true,
                  _doRender = true, _doSound = true, _exitTimeout = 0, _baseurl = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c727318 "http://review.coreboot.org/#/c/2469/"}}, _soundHandler = {px = 0x7f5c9c76d040, pn = {
                      pi_ = 0x7f5c9c767260}}, mediaHandler = {px = 0x7f5c9c763088, pn = {pi = 0x7f5c9c767240}}, _runResources = {
                    _M_ptr = 0x7f5c9c768040}, _gui = {_M_ptr = 0x7f5c9c794020}, _url = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c75def8 "http://review.coreboot.org/gerrit/gwtexpui_clippy1.cache.swf"}}, _infile = {
                    static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c7671b8 "-"}}, _movieDef = {px = 0x7f5c9ba24800}, _maxAdvances = 0, _hostfd = 39, _controlfd = 40,
                  _startFullscreen = false, _hideMenu = false, _audioDump = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshots = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshotFile = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshotQuality = 100, _media = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c719c58 "ffmpeg"}}}
        #3  0x00007f5cb0583c9a in operator()<void ()(gnash::Player&, int, char*, const std::basic_string<char>&), boost::_bi::list1<std::basic_string<char>&> > (a=<synthetic pointer>, this=<synthetic pointer>, f=<optimized out>) at /usr/include/boost/bind/bind.hpp:457
        No locals.
        #4  operator()<std::basic_string<char> > (a1=..., this=<synthetic pointer>) at /usr/include/boost/bind/bind_template.hpp:32
        No locals.
        #5  for_each<__gnu_cxx::__normal_iterator<std::basic_string<char>*, std::vector<std::basic_string<char> > >, boost::_bi::bind_t<void, void ()(gnash::Player&, int, char*, std::basic_string<char> const&), boost::_bi::list4<boost::reference_wrapper<gnash::Player>, boost::_bi::value<int>, boost::_bi::value<char**>, boost::arg<1> > > > (__f=..., __last=..., __first=...) at /usr/include/c++/4.7/bits/stl_algo.h:4442
        No locals.
        #6  main (argc=26, argv=0x7fffddd4dcc8) at ../../gui/gnash.cpp:174
                opts = {static m_default_line_length = 80, m_caption = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c728ad8 "Optionen"}}, m_line_length = 80, m_min_description_length = 40,
                  m_options = {<std::_Vector_base<boost::shared_ptr<boost::program_options::option_description>, std::allocator<boost::shared_ptr<boost::program_options::option_description> > >> = {
                      _M_impl = {<std::allocator<boost::shared_ptr<boost::program_options::option_description> >> = {<__gnu_cxx::new_allocator<boost::shared_ptr<boost::program_options::option_description> >> = {<No data fields>}, <No data fields>}, _M_start = 0x7f5c9c775200,
                        _M_finish = 0x7f5c9c7753f0, _M_end_of_storage = 0x7f5c9c775400}}, <No data fields>},
                  belong_to_group = {<std::_Bvector_base<std::allocator<bool> >> = {
                      _M_impl = {<std::allocator<unsigned long>> = {<__gnu_cxx::new_allocator<unsigned long>> = {<No data fields>}, <No data fields>},
                        _M_start = {<std::_Bit_iterator_base> = {<std::iterator<std::random_access_iterator_tag, bool, long, bool*, bool&>> = {<No data fields>}, _M_p = 0x7f5c9c763068, _M_offset = 0}, <No data fields>},
                        _M_finish = {<std::_Bit_iterator_base> = {<std::iterator<std::random_access_iterator_tag, bool, long, bool*, bool&>> = {<No data fields>}, _M_p = 0x7f5c9c763068, _M_offset = 31}, <No data fields>}, _M_end_of_storage = 0x7f5c9c763070}}, <No data fields>},
                  groups = {<std::_Vector_base<boost::shared_ptr<boost::program_options::options_description>, std::allocator<boost::shared_ptr<boost::program_options::options_description> > >> = {
                      _M_impl = {<std::allocator<boost::shared_ptr<boost::program_options::options_description> >> = {<__gnu_cxx::new_allocator<boost::shared_ptr<boost::program_options::options_description> >> = {<No data fields>}, <No data fields>}, _M_start = 0x7f5c9c7491f0,
                        _M_finish = 0x7f5c9c749200, _M_end_of_storage = 0x7f5c9c749200}}, <No data fields>}}
                files = {
                  m_names = {<std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {
                      _M_impl = {<std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<__gnu_cxx::new_allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<No data fields>}, <No data fields>}, _M_start = 0x0,
                        _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}, m_trailing = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c774448 "input-file"}}}
                player = {_hwaccel = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c769238 "none"}}, _renderer = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c719cf8 "agg"}}, _callbacksHandler = {_M_ptr = 0x0}, _params = {_M_t = {
                      _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red,
                          _M_parent = 0x7f5c9c774580, _M_left = 0x7f5c9c774550, _M_right = 0x7f5c9c774670}, _M_node_count = 6}}}, _scale = 1,
                  _delay = 0, _width = 110, _height = 14, _xPosition = -1, _yPosition = -1, _windowID = 21003679, _doLoop = true,
                  _doRender = true, _doSound = true, _exitTimeout = 0, _baseurl = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      M_p = 0x7f5c9c727318 "http://review.coreboot.org/#/c/2469/"}}, _soundHandler = {px = 0x0, pn = {pi = 0x0}},
                  mediaHandler = {px = 0x0, pn = {pi = 0x0}}, _runResources = {_M_ptr = 0x0}, _gui = {_M_ptr = 0x0}, _url = {
                    static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _infile = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _movieDef = {px = 0x0}, _maxAdvances = 0, _hostfd = 39, _controlfd = 40,
                  _startFullscreen = false, _hideMenu = false, _audioDump = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshots = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshotFile = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5cadc5e498 ""}}, _screenshotQuality = 100, _media = {static npos = <optimized out>,
                    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
                      _M_p = 0x7f5c9c719c58 "ffmpeg"}}}
                vm = <incomplete type>
                plugin = <optimized out>

This is due to

        $ more gui/gtk/gtk.cpp
        […]
        @@ -597,7 +597,7 @@ GtkGui::startAdvanceTimer()
                     (GSourceFunc)advance_movie, this, NULL);
        
             log_debug(_("Advance interval timer set to %d ms (~ %d FPS)"),
                   _interval, 1000/_interval);

when _interval is zero. I will attach a patch fixing this.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661734

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages gnash depends on:
ii  gnash-common                    0.8.11~git20120629-1
ii  libboost-program-options1.49.0  1.49.0-3.2
ii  libc6                           2.13-38
ii  libcairo2                       1.12.2-3
ii  libgcc1                         1:4.7.2-5
ii  libgdk-pixbuf2.0-0              2.26.1-1
ii  libglib2.0-0                    2.33.12+really2.32.4-5
ii  libgtk2.0-0                     2.24.10-2
ii  libstdc++6                      4.7.2-5
ii  libx11-6                        2:1.5.0-1

gnash recommends no packages.

gnash suggests no packages.

-- no debconf information

Paul Menzel <paulepanter>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #27507:  0001-gui-gtk-gtk.cpp-GtkGui-startAdvanceTimer-Do-not-divi.patch added by paulepanter (3KiB - text/x-patch - [PATCH] gui/gtk/gtk.cpp: `GtkGui::startAdvanceTimer()`: Do not divide by zero)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rsavoye (Updated the item)
  • -email is unavailable- added by andi5 (Posted a comment)
  • -email is unavailable- added by paulepanter (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-02-24 rsavoye StatusNone Ready For Test
    2013-02-24 rsavoye ReleaseNone master
        Assigned toNone rsavoye
    2013-02-23 paulepanter Attached File- Added 0001-gui-gtk-gtk.cpp-GtkGui-startAdvanceTimer-Do-not-divi.patch, #27507

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code