wxObjectList bug in wxWidgets 2.7

If you are using the main C++ distribution of wxWidgets, Feel free to ask any question related to wxWidgets development here. This means questions regarding to C++ and wxWidgets, not compile problems.
Post Reply
cpp
I live to help wx-kind
I live to help wx-kind
Posts: 195
Joined: Wed Sep 28, 2005 9:42 pm

wxObjectList bug in wxWidgets 2.7

Post by cpp »

i downloaded, configured & built the new ""stable"" 2.7 version of wxWidgets, and i went to recompile my latest app with it. It compiled fine, but when i tried to run it, right away i got an assert saying: "list iterators incompatible"
coming from the wxDbTable destructor. (im pasting the call stack below)
i defined wxUSE_STL 1 when i built the library (wich explains why is the assert coming from std::list)

im using wxWidgets 2.7, VC2005 express, WinXP
i wonder if its a bug in wxWidgets, or in the stl implementation of VC
i guess i better go back to 2.63 and *NO* wxUSE_STL (there were bugs in 2.63 when wxUSE_STL also) :(

heres the call stack:
Ive.exe!std::_Debug_message(const wchar_t * message=0x00aa8024, const wchar_t * file=0x00aaadd0, unsigned int line=309) Line 23 C++
> Ive.exe!std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1>::_Compat(const std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1> & _Right=0xcdcdcdcd {m_refData=??? }) Line 309 + 0x14 bytes C++
Ive.exe!std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1>::operator==(const std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1> & _Right=0xcdcdcdcd {m_refData=??? }) Line 290 C++
Ive.exe!std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1>::operator!=(const std::list<wxObject *,std::allocator<wxObject *> >::_Const_iterator<1> & _Right=0xcdcdcdcd {m_refData=??? }) Line 295 + 0xc bytes C++
Ive.exe!wxObjectList::compatibility_iterator::operator bool() Line 1174 + 0x8c bytes C++
Ive.exe!wxDbTable::cleanup() Line 325 + 0x8 bytes C++
Ive.exe!wxDbTable::~wxDbTable() Line 127 C++
Ive.exe!TablaUsuarios::~TablaUsuarios() Line 84 + 0xf bytes C++
Hier Kommt die Sonne...
cpp
I live to help wx-kind
I live to help wx-kind
Posts: 195
Joined: Wed Sep 28, 2005 9:42 pm

Post by cpp »

mhh, "interesting"...
i recompiled 2.7 with no wxUSE_STL, and now the program wont even start.
i get an access violation in wxStringBase

yep, im absolutely going back to 2.63
> Ive.exe!wxStringBase::Alloc(unsigned int nLen=1024) Line 359 + 0x3 bytes C++
Ive.exe!wxStringBase::reserve(unsigned int sz=1024) Line 418 + 0x1a bytes C++
Ive.exe!wxCmdLineParser::ConvertStringToArgs(const char * p=0x00151ee0) Line 1164 C++
Ive.exe!wxEntry(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000, int nCmdShow=1) Line 363 + 0xd bytes C++
Ive.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f15, int nCmdShow=1) Line 20 + 0x33 bytes C++
Ive.exe!__tmainCRTStartup() Line 315 + 0x35 bytes C
Ive.exe!WinMainCRTStartup() Line 187 C
Hier Kommt die Sonne...
Game_Ender
Knows some wx things
Knows some wx things
Posts: 45
Joined: Wed Jun 15, 2005 5:47 pm

Post by Game_Ender »

I think 2.7 is the bleeding edge development release. Unless you are beta testing it would probably be best to stay with 2.6.3. 2.8.1 or 2.8.2, should be the next good release that has these new goodies in it. (maybe wxUSE_STL on by default?)
cpp
I live to help wx-kind
I live to help wx-kind
Posts: 195
Joined: Wed Sep 28, 2005 9:42 pm

Post by cpp »

thanks for your reply,
I think 2.7 is the bleeding edge development release
after trying it, it completely agree with you, what i dont understand is why does it say:
"Please notice that this series is called "development" and not "stable" solely because compatibility is not assured among between different 2.7 series versions but there are no known issues with the stability of the programs using this version. "
on the download page, if it is in fact an unstable development version
i wasted about 4 hours with it.
NE way, im happily back to 263 now.
Hier Kommt die Sonne...
Post Reply