[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling
From: |
Vadim Zeitlin |
Subject: |
Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling |
Date: |
Tue, 24 Feb 2009 20:33:22 +0100 |
On Tue, 24 Feb 2009 15:25:22 +0000 Greg Chicares <address@hidden> wrote:
GC> Run lmi with the argument that we never write in public, in order
GC> to enable the "Test" menu. Then:
GC>
GC> alt-F N I Enter alt-T A F
GC>
GC> or, if you please,
GC>
GC> File | New | Illustration
GC> OK
Unfortunately I can't follow the instructions any further because after
this step I get
---------------------------
Error
---------------------------
Table 57 in file './qx_cso': offset -1 is invalid.
[file .\actuarial_table.cpp, line 275]
---------------------------
OK
---------------------------
infinitely many (well, maybe not, but I stopped counting and killed it
after a dozen or so) times.
Would you already know by chance what is this about? I didn't [try to]
debug it yet, all I can see is the stack trace which is
> lmi_wx.exe!actuarial_table::find_table() Line 276 + 0x199
lmi_wx.exe!actuarial_table::actuarial_table() Line 110
lmi_wx.exe!actuarial_table_rates() Line 569 + 0x12
lmi_wx.exe!BasicValues::GetActuarialTable(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
TableFile={...}, long TableID=0x00000024, long TableNumber=0x00000039) Line
1594 + 0x23 C++
lmi_wx.exe!BasicValues::GetUnblendedTable(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
TableFile={...}, long TableID=0x00000024) Line 1608 + 0x33 C++
lmi_wx.exe!BasicValues::GetTable(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
TableFile={...}, const long & TableID=0x00000024, bool IsTableValid=true, const
EBlend & CanBlendSmoking=CannotBlend, const EBlend &
CanBlendGender=CannotBlend) Line 1743 + 0x16 C++
lmi_wx.exe!BasicValues::GetGuarCOIRates() Line 2001 + 0x45 C++
lmi_wx.exe!MortalityRates::fetch_parameters(const BasicValues &
basic_values={...}) Line 87 + 0xc C++
lmi_wx.exe!MortalityRates::MortalityRates(const BasicValues &
basic_values={...}) Line 45 C++
lmi_wx.exe!BasicValues::Init() Line 261 + 0x32 C++
lmi_wx.exe!BasicValues::BasicValues(const Input & input={...}) Line 98
C++
lmi_wx.exe!AccountValue::AccountValue(const Input & input={...}) Line
113 + 0xb7 C++
lmi_wx.exe!IllusVal::run() Line 52 + 0x11
lmi_wx.exe!illustrator::operator()() Line 125 + 0xc
lmi_wx.exe!IllustrationView::Run(Input * overriding_input=0x00000000)
Line 302 + 0x84 C++
lmi_wx.exe!IllustrationView::OnCreate(wxDocument * doc=0x01e987c8, long
flags=0x00000001) Line 211 C++
lmi_wx.exe!wxDocTemplate::CreateView(wxDocument * doc=0x01e987c8, long
flags=0x00000001) Line 845 + 0x20 C++
lmi_wx.exe!wxDocument::OnCreate(const wxString & __formal={...}, long
flags=0x00000001) Line 583 + 0x2f C++
lmi_wx.exe!IllustrationDocument::OnCreate(const wxString &
filename={...}, long flags=0x00000001) Line 116 C++
lmi_wx.exe!wxDocTemplate::InitDocument(wxDocument * doc=0x01e987c8,
const wxString & path={...}, long flags=0x00000001) Line 830 + 0x15 C++
lmi_wx.exe!wxDocTemplate::CreateDocument(const wxString & path={...},
long flags=0x00000001) Line 819 + 0x1f C++
lmi_wx.exe!wxDocManager::CreateDocument(const wxString &
pathOrig={...}, long flags=0x00000001) Line 1340 + 0x15 C++
lmi_wx.exe!wxDocManager::CreateNewDocument() Line 396 + 0x5c C++
lmi_wx.exe!wxDocManager::OnFileNew(wxCommandEvent & __formal={...})
Line 1041 C++
...
lmi_wx.exe!wxEventLoopManual::Run() Line 238 + 0xd C++
lmi_wx.exe!wxAppConsoleBase::MainLoop() Line 285 + 0x25 C++
lmi_wx.exe!wxAppConsoleBase::OnRun() Line 226 + 0x10 C++
lmi_wx.exe!wxAppBase::OnRun() Line 298 C++
lmi_wx.exe!wxEntryReal(int & argc=0x00000002, unsigned short * *
argv=0x01b42530) Line 495 + 0x1b C++
lmi_wx.exe!wxEntry(int & argc=0x00000002, unsigned short * *
argv=0x01b42530) Line 210 + 0xd C++
lmi_wx.exe!wxEntry(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ *
__formal=0x00000000, HINSTANCE__ * __formal=0x00000000, int
nCmdShow=0x00000001) Line 411 + 0x10 C++
lmi_wx.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ *
hPrevInstance=0x00000000, char * lpCmdLine=0x001520d0, int nCmdShow=0x00000001)
Line 211 + 0x15 C++
lmi_wx.exe!WinMainCRTStartup() Line 390 + 0x39 C
address@hidden() + 0x23
for the first error and then it crashes in wx code called from inside
safe_message_alert() because wxDocMDIChildFrame::m_childView is a dangling
pointer.
There are obviously many bugs in (inter)play here, I see at least:
0. initial error is probably a bug, although whether it's in lmi_wx or
in product_files which I used to generate the files is unclear
1. safe_message_alert() doesn't seem to be safe
2. m_childView shouldn't be left dangling
I'm going to fix (2) and I might look at (1) if you wish but I'd welcome
any help with (0) especially because it would allow me to test the bug
which you had originally reported -- something that I'm just unable to do
right now.
Thanks in advance,
VZ
- [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/24
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling,
Vadim Zeitlin <=
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/24
- Re[2]: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Vadim Zeitlin, 2009/02/24
- Message not available
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/24
- Re[2]: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Vadim Zeitlin, 2009/02/25
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/26
- Re[2]: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Vadim Zeitlin, 2009/02/26
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/26
- Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Greg Chicares, 2009/02/26
- Re[2]: [lmi] wxmsw-2.9.0 regression: messagebox doubling, Vadim Zeitlin, 2009/02/26
- Re[2]: Input copy ctor (was: [lmi] wxmsw-2.9.0 regression: messagebox doubling), Vadim Zeitlin, 2009/02/26