gnash-commit
[Top][All Lists]
Advanced

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

Re: [Gnash-commit] gnash ChangeLog server/as_object.cpp server/as_...


From: zou lunkai
Subject: Re: [Gnash-commit] gnash ChangeLog server/as_object.cpp server/as_...
Date: Mon, 19 Nov 2007 09:34:05 +0800

> I belive since this commit I get this result runnign key_event_testrunner 
> with a debugging-build of Gnash cvs:

Not sure, I tried again with local source(not updated) here, couldn't
catch the bug.  has it been fixed now?

> The message means something invalidated your iterator.
> Hint: don't execute arbitrary code while scannig a container, unless you can 
> make sure
> no code ever will invalidate the iterators you're using (usually this means 
> making
> a copy of them).

>From your core dump:  the violation happened in
key_as_object::notify_listeners.  I did assume the iterators couldn't
be invalidated during the execution.  The container was a linked list
of smart pointers,  I thought no arbitrary code could invalidate the
iterators or pointers in that execution context with respecting the GC
mechanism(collect only once per frame).

--zou


On Nov 16, 2007 8:20 PM, strk <address@hidden> wrote:
>
> On Fri, Nov 16, 2007 at 07:43:54AM +0000, Zou Lunkai wrote:
> > CVSROOT:      /sources/gnash
> > Module name:  gnash
> > Changes by:   Zou Lunkai <zoulunkai>  07/11/16 07:43:54
> >
> > Modified files:
> >       .              : ChangeLog
> >       server         : as_object.cpp as_object.h
> >                        button_character_instance.cpp character.h
> >                        edit_text_character.cpp movie_root.cpp
> >                        movie_root.h sprite_instance.cpp
> >       server/asobj   : Key.cpp Key.h
> >       testsuite/misc-ming.all: key_event_test.c
> >                                key_event_testrunner.cpp
> >
> > Log message:
> >       * server/as_object.{h,cpp}, server/asobj/Key.{h,cpp},
> >         server/character.h,
> >         server/button_character_instance.cpp,
> >         server/edit_text_character.cpp,
> >         server/movie_root.{h,cpp},
> >         server/sprite_instance.cpp: drop new key listeners design and fix 
> > the
> >         old design with caring about listeners invoking order.
> >       * testsuite/key_event_test.c, key_event_testrunner.cpp: xcheck->check.
> >
> > CVSWeb URLs:
> > http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4874&r2=1.4875
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.79&r2=1.80
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.82&r2=1.83
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&r1=1.64&r2=1.65
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.h?cvsroot=gnash&r1=1.108&r2=1.109
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.130&r2=1.131
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.122&r2=1.123
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.h?cvsroot=gnash&r1=1.87&r2=1.88
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.387&r2=1.388
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Key.cpp?cvsroot=gnash&r1=1.43&r2=1.44
> > http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Key.h?cvsroot=gnash&r1=1.29&r2=1.30
> > http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/key_event_test.c?cvsroot=gnash&r1=1.6&r2=1.7
> > http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/key_event_testrunner.cpp?cvsroot=gnash&r1=1.14&r2=1.15
>
> I belive since this commit I get this result runnign key_event_testrunner 
> with a debugging-build of Gnash cvs:
>
> 17163] 13:17:05: TRACE: PASSED: _root.test4  ==  1 
> [/home/strk/src/gnash/gnash-head/testsuite/misc-ming.all/key_event_test.c:231]
> /usr/include/c++/4.1.3/debug/safe_iterator.h:210:error: attempt to
>     increment a singular iterator.
>
> Objects involved in the operation:
> iterator "this" @ 0x0xbf9803d8 {
> type = 
> N11__gnu_debug14_Safe_iteratorIN10__gnu_norm14_List_iteratorIN5boost13intrusive_ptrIN5gnash9as_objectEEEEEN15__gnu_debug_def4listIS7_SaIS7_EEEEE
>  (mutable iterator);
>   state = singular;
>   references sequence with type 
> `N15__gnu_debug_def4listIN5boost13intrusive_ptrIN5gnash9as_objectEEESaIS5_EEE'
>  @ 0x0xbf9803d8
> }
> Aborted (core dumped)
>
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0xb7791875 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0xb7793201 in abort () from /lib/tls/i686/cmov/libc.so.6
> #3  0xb792f9e6 in __gnu_debug::_Error_formatter::_M_error () from 
> /usr/lib/libstdc++.so.6
> #4  0xb7d8546e in gnash::key_as_object::notify_listeners (this=0x8177588, 
> key_event={m_id = gnash::event_id::KEY_DOWN, m_key_code = 0 '\0'})
>     at /usr/include/c++/4.1.3/debug/safe_iterator.h:208
> #5  0xb7c042e2 in gnash::movie_root::notify_key_event (this=0x8122f80, 
> k=gnash::key::I, down=true)
>     at /home/strk/src/gnash/gnash-head/server/movie_root.cpp:385
> #6  0x08061c33 in gnash::MovieTester::pressKey (this=0xbfc948e0, 
> code=gnash::key::I) at 
> /home/strk/src/gnash/gnash-head/testsuite/MovieTester.cpp:342
> #7  0x08054f86 in main () at 
> /home/strk/src/gnash/gnash-head/testsuite/misc-ming.all/key_event_testrunner.cpp:155
>
>
> The message means something invalidated your iterator.
> Hint: don't execute arbitrary code while scannig a container, unless you can 
> make sure
> no code ever will invalidate the iterators you're using (usually this means 
> making
> a copy of them).
>
> --strk;
>




reply via email to

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