> 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 <[EMAIL PROTECTED]> 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; > _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit