lmi
[Top][All Lists]
Advanced

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

Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling


From: Greg Chicares
Subject: Re: [lmi] wxmsw-2.9.0 regression: messagebox doubling
Date: Tue, 24 Feb 2009 20:54:33 +0000
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

On 2009-02-24 19:33Z, Vadim Zeitlin wrote:
> 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 
[...]
> Table 57 in file './qx_cso': offset -1 is invalid.
> [file .\actuarial_table.cpp, line 275]

The directory that '--data_path' points to must contain
  qx_cso.dat
  qx_cso.ndx
among other files; I would speculate that it does not.

The following command:
  http://lists.nongnu.org/archive/html/lmi/2009-02/msg00058.html
| cd /opt/lmi/data; ../bin/product_files
won't generate those files; you have to get them here:

http://download.savannah.gnu.org/releases-noredirect/lmi/lmi-data-20050618T1440Z.tar.bz2

>  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      

I tried adding some diagnostic code slightly upstream from there,
but forgot that I can't see diagnostic messageboxes.

> 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

Yes, please. I tried the patch below, after moving my 'qx_cso.*'
files aside to simulate an error, but it still crashed--so I'm
not sure safe_message_alert() is the cause after all, because
AIUI the (patched) code cannot fail without displaying a message.

Index: alert_wx.cpp
===================================================================
RCS file: /sources/lmi/lmi/alert_wx.cpp,v
retrieving revision 1.20
diff -U 3 -r1.20 alert_wx.cpp
--- alert_wx.cpp        31 Dec 2008 21:54:11 -0000      1.20
+++ alert_wx.cpp        24 Feb 2009 20:49:01 -0000
@@ -158,6 +158,7 @@
     std::fflush(stderr);
 #else  // defined LMI_MSW
     HWND handle = 0;
+    ::MessageBoxA(handle, message, "Error", MB_OK | MB_ICONSTOP | 
MB_TASKMODAL);
     if(wxTheApp)
         {
         wxWindow* top_window = wxTheApp->GetTopWindow();




reply via email to

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