Author Topic: Alert message box jumps if I open the compiler setting dialog  (Read 11497 times)

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Alert message box jumps if I open the compiler setting dialog
« on: November 16, 2019, 04:41:06 am »
Hi, I just build the rev11911 under 32bit mingw-w64 8.1 with the wx3.1.3.
When I click the Menu->Settings->Compiler, it jumps a alert message box, see the image shot below, any ideas?
Thanks.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #1 on: November 16, 2019, 05:44:52 am »
I see another issue, I can't change the font in the "Settings->Editor".

I see when I change the font, an alert message box pop up, see the image shot below.

If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #2 on: November 16, 2019, 11:46:07 am »
The first is fixed in svn.
The second is not reproducible on Linux... Can you give more details about it?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #3 on: November 16, 2019, 01:43:33 pm »
The first is fixed in svn.
Thanks! It works fine now.

Quote
The second is not reproducible on Linux... Can you give more details about it?
Some backtrack like below
Code
[debug]#23 0x02207a6a in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#24 0x02207cb6 in wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#25 0x02204866 in wxOnAssert(char const*, int, char const*, char const*, char const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#26 0x025b3c7b in wxFontBase::GetWeight() const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#27 0x695b425a in wxScintilla::StyleSetFont (this=0x1d249608, styleNum=32, font=...) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\wxscintilla\src\wxscintilla.cpp:4896
[debug]#28 0x6948fea6 in cbEditor::InternalSetEditorStyleBeforeFileOpen (control=0x1d249608) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1566
[debug]#29 0x6948ed31 in cbEditor::SetEditorStyleBeforeFileOpen (this=0x1d2b8ac8) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1391

In the code snippet:
Code
void cbEditor::InternalSetEditorStyleBeforeFileOpen(cbStyledTextCtrl* control)
{
    if (!control)
        return;

    ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("editor"));

    // setting the default editor font size to 10 point
    wxFont font(10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);

    wxString fontstring = mgr->Read(_T("/font"), wxEmptyString);

    if (!fontstring.IsEmpty())
    {
        wxNativeFontInfo nfi;
        nfi.FromString(fontstring);
        font.SetNativeFontInfo(nfi);
    }

    control->SetMouseDwellTime(1000);

    int caretStyle = mgr->ReadInt(_T("/caret/style"), wxSCI_CARETSTYLE_LINE);
    control->SetCaretStyle(caretStyle);
    if (caretStyle == wxSCI_CARETSTYLE_LINE)
        control->SetCaretWidth(mgr->ReadInt(_T("/caret/width"), 1));
    else
        control->SetCaretWidth(1);

    ColourManager *colours = Manager::Get()->GetColourManager();

    control->SetCaretForeground(colours->GetColour(wxT("editor_caret")));
    control->SetCaretPeriod(mgr->ReadInt(_T("/caret/period"), 500));
    control->SetCaretLineVisible(mgr->ReadBool(_T("/highlight_caret_line"), false));
    control->SetFoldMarginColour(true, colours->GetColour(wxT("editor_margin_chrome")));
    control->SetFoldMarginHiColour(true, colours->GetColour(wxT("editor_margin_chrome_highlight")));

    control->SetWhitespaceForeground(true, colours->GetColour(wxT("editor_whitespace")));

    // setup for "CamelCase selection"
    if (mgr->ReadBool(_T("/camel_case"), false))
    {
        // consider CamelCase for both: cursor movement with CTRL and selection with CTRL+SHIFT:
        control->CmdKeyAssign(wxSCI_KEY_LEFT,  wxSCI_KEYMOD_CTRL,                   wxSCI_CMD_WORDPARTLEFT);
        control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL,                   wxSCI_CMD_WORDPARTRIGHT);
        control->CmdKeyAssign(wxSCI_KEY_LEFT,  wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDPARTLEFTEXTEND);
        control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDPARTRIGHTEXTEND);
    }
    else // else set default "none CamelCase" key behavior (also default scintilla behaviour, see scintilla docs)
    {
        control->CmdKeyAssign(wxSCI_KEY_LEFT,  wxSCI_KEYMOD_CTRL,                   wxSCI_CMD_WORDLEFT);
        control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL,                   wxSCI_CMD_WORDRIGHT);
        control->CmdKeyAssign(wxSCI_KEY_LEFT,  wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDLEFTEXTEND);
        control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDRIGHTEXTEND);
    }

    control->SetUseTabs(mgr->ReadBool(_T("/use_tab"), false));
    control->SetIndentationGuides(mgr->ReadBool(_T("/show_indent_guides"), false)?wxSCI_IV_LOOKBOTH:wxSCI_IV_NONE);
    control->SetTabIndents(mgr->ReadBool(_T("/tab_indents"), true));
    control->SetBackSpaceUnIndents(mgr->ReadBool(_T("/backspace_unindents"), true));
    control->SetWrapMode(mgr->ReadBool(_T("/word_wrap"), false));
    if (mgr->ReadBool(_T("/word_wrap_style_home_end"), true))
    {
        // in word wrap mode, home/end keys goto the wrap point if not already there,
        // otherwise to the start/end of the entire line.
        // alt+home/end go to start/end of the entire line.
        // in unwrapped mode, there is no difference between home/end and alt+home/end
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_NORM,                  wxSCI_CMD_LINEENDWRAP);
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_ALT,                   wxSCI_CMD_LINEEND);
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_SHIFT,                 wxSCI_CMD_LINEENDWRAPEXTEND);
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEENDEXTEND);

        // if user wants "Home" key to set cursor to the very beginning of line
        if (mgr->ReadBool(_T("/simplified_home"), false))
        {
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM,wxSCI_CMD_HOMEWRAP);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_HOME);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT,wxSCI_CMD_HOMEWRAPEXTEND);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEEXTEND);
        }
        else // else set default "Home" key behaviour
        {
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM,wxSCI_CMD_VCHOMEWRAP);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOME);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT,wxSCI_CMD_VCHOMEWRAPEXTEND);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEEXTEND);
        }
    }
    else
    {   // in word wrap mode, home/end keys goto start/end of the entire line. alt+home/end goes to wrap points
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_ALT,                   wxSCI_CMD_LINEENDWRAP);
        control->CmdKeyAssign(wxSCI_KEY_END,  wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEENDWRAPEXTEND);

        // if user wants "Home" key to set cursor to the very beginning of line
        if (mgr->ReadBool(_T("/simplified_home"), false))
        {
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEWRAP);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEWRAPEXTEND);
        }
        else // else set default "Home" key behaviour
        {
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEWRAP);
            control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEWRAPEXTEND);
        }
    }
    control->SetViewEOL(mgr->ReadBool(_T("/show_eol"), false));
    control->SetViewWhiteSpace(mgr->ReadInt(_T("/view_whitespace"), 0));

    const int caretBuffer = mgr->ReadInt(wxT("/caret_buffer"), 2);
    if (caretBuffer == 0)
    {
        control->SetYCaretPolicy(wxSCI_CARET_EVEN, 0); // default
        control->SetVisiblePolicy(wxSCI_CARET_EVEN, 0); // default
    }
    else if (caretBuffer > 0 && caretBuffer <= 10)
    {
        // margin of N lines at top/bottom
        control->SetYCaretPolicy(wxSCI_CARET_SLOP | wxSCI_CARET_STRICT | wxSCI_CARET_EVEN,
                                 caretBuffer);
        control->SetVisiblePolicy(wxSCI_CARET_SLOP | wxSCI_CARET_STRICT | wxSCI_CARET_EVEN,
                                  caretBuffer);
    }
    else
    {
        // centred mode
        control->SetYCaretPolicy(wxSCI_CARET_STRICT | wxSCI_CARET_EVEN, 4);
        control->SetVisiblePolicy(wxSCI_CARET_STRICT | wxSCI_CARET_EVEN, 4);
    }

    // gutter
    control->SetEdgeMode(mgr->ReadInt(_T("/gutter/mode"), 0));
    control->SetEdgeColour(colours->GetColour(wxT("editor_gutter")));
    control->SetEdgeColumn(mgr->ReadInt(_T("/gutter/column"), 80));

    control->StyleSetFont(wxSCI_STYLE_DEFAULT, font);
    control->StyleClearAll();


It looks like the font is not loaded correctly, but I just tried to use different fonts(even I delete the default.conf file), which always got the same alert.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #4 on: November 16, 2019, 01:48:20 pm »
This backtrace is not helpful, you've cut it some frames earlier.

Are you saying that the alert happens after you close the settings dialog?
Does it happen during the font selection?
Please post the exact steps to reproduce it (posting the exact font you're selecting might be useful)!
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #5 on: November 17, 2019, 02:03:36 am »
This backtrace is not helpful, you've cut it some frames earlier.

Are you saying that the alert happens after you close the settings dialog?
The alert happens when the GUI try to apply the font to the editor, so when C::B starts, I see one alert here:
Code
#0  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#1  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#2  0x76c1171a in WaitForMultipleObjectsEx () from C:\Windows\syswow64\KernelBase.dll
#3  0x00000002 in ?? ()
#4  0x0028d0b4 in ?? ()
#5  0x765919fc in WaitForMultipleObjectsEx () from C:\Windows\syswow64\kernel32.dll
#6  0x76850882 in USER32!PeekMessageW () from C:\Windows\syswow64\user32.dll
#7  0x706b1717 in ?? () from C:\Windows\SysWOW64\duser.dll
#8  0x706b17b8 in ?? () from C:\Windows\SysWOW64\duser.dll
#9  0x706b1757 in ?? () from C:\Windows\SysWOW64\duser.dll
#10 0x7688fd7b in USER32!DdeConnectList () from C:\Windows\syswow64\user32.dll
#11 0x77dd011a in ntdll!KiUserCallbackDispatcher () from C:\Windows\SysWOW64\ntdll.dll
#12 0x0028d238 in ?? ()
#13 0x7686da5c in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#14 0x7686d98a in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#15 0x7686d70e in USER32!DialogBoxIndirectParamW () from C:\Windows\syswow64\user32.dll
#16 0x7079d504 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#17 0x70720000 in ?? ()
#18 0x7079d494 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#19 0x70720000 in ?? ()
#20 0x024c70c0 in wxRichMessageDialog::ShowModal() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#21 0x0251c38b in wxGUIAppTraitsBase::ShowAssertDialog(wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#22 0x021c74a4 in ShowAssertDialog(wxString const&, int, wxString const&, wxString const&, wxString const&, wxAppTraits*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#23 0x021c7a6a in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#24 0x021c7cb6 in wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#25 0x021c4866 in wxOnAssert(char const*, int, char const*, char const*, char const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#26 0x02573c7b in wxFontBase::GetWeight() const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#27 0x695b425a in wxScintilla::StyleSetFont (this=0x58fc680, styleNum=32, font=...) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\wxscintilla\src\wxscintilla.cpp:4896
#28 0x00429513 in DisassemblyDlg::DisassemblyDlg (this=0x5821668, parent=0x57cb158) at D:\code\cb\cb_sf_git\cccrash2019\src\src\disassemblydlg.cpp:75
#29 0x00418399 in DebugInterfaceFactory::CreateDisassembly (this=0x54ed7b8) at D:\code\cb\cb_sf_git\cccrash2019\src\src\debugger_interface_creator.cpp:115
#30 0x694f0149 in DebuggerManager::CreateWindows (this=0x581de18) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\debuggermanager.cpp:1030
#31 0x694eff5c in DebuggerManager::SetInterfaceFactory (this=0x581de18, factory=0x54ed7b8) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\debuggermanager.cpp:1012
#32 0x00459a34 in MainFrame::SetupDebuggerUI (this=0x57cb158) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:945
#33 0x004573dd in MainFrame::CreateIDE (this=0x57cb158) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:771
#34 0x0045548e in MainFrame::MainFrame (this=0x57cb158, parent=0x0) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:614
#35 0x00402ab9 in CodeBlocksApp::InitFrame (this=0x4ff1508) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:513
#36 0x004040eb in CodeBlocksApp::OnInit (this=0x4ff1508) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:728
#37 0x004d777a in wxAppConsoleBase::CallOnInit (this=0x4ff1508) at F:\code\wxWidgets-3.1.3\include\wx\app.h:93
#38 0x02237282 in wxEntryReal(int&, wchar_t**) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#39 0x004021a3 in WinMain@16 (hInstance=0x400000, hPrevInstance=0x0, nCmdShow=10) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:338
#40 0x0050bdbd in main ()

It also pops up when I open the editor setting dialog, see below:
Code
#0  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#1  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#2  0x76c1171a in WaitForMultipleObjectsEx () from C:\Windows\syswow64\KernelBase.dll
#3  0x00000002 in ?? ()
#4  0x0028d520 in ?? ()
#5  0x765919fc in WaitForMultipleObjectsEx () from C:\Windows\syswow64\kernel32.dll
#6  0x76850882 in USER32!PeekMessageW () from C:\Windows\syswow64\user32.dll
#7  0x706b1717 in ?? () from C:\Windows\SysWOW64\duser.dll
#8  0x706b17b8 in ?? () from C:\Windows\SysWOW64\duser.dll
#9  0x706b1757 in ?? () from C:\Windows\SysWOW64\duser.dll
#10 0x7688fd7b in USER32!DdeConnectList () from C:\Windows\syswow64\user32.dll
#11 0x77dd011a in ntdll!KiUserCallbackDispatcher () from C:\Windows\SysWOW64\ntdll.dll
#12 0x0028d6a4 in ?? ()
#13 0x7686da5c in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#14 0x7686d98a in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#15 0x7686d70e in USER32!DialogBoxIndirectParamW () from C:\Windows\syswow64\user32.dll
#16 0x7079d504 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#17 0x70720000 in ?? ()
#18 0x7079d494 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#19 0x70720000 in ?? ()
#20 0x024c70c0 in wxRichMessageDialog::ShowModal() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#21 0x0251c38b in wxGUIAppTraitsBase::ShowAssertDialog(wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#22 0x021c74a4 in ShowAssertDialog(wxString const&, int, wxString const&, wxString const&, wxString const&, wxAppTraits*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#23 0x021c7a6a in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#24 0x021c7cb6 in wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#25 0x021c4866 in wxOnAssert(char const*, int, char const*, char const*, char const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#26 0x02573c7b in wxFontBase::GetWeight() const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#27 0x695b425a in wxScintilla::StyleSetFont (this=0x1cd46518, styleNum=32, font=...) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\wxscintilla\src\wxscintilla.cpp:4896
#28 0x00432431 in EditorConfigurationDlg::ApplyColours (this=0x28f48c) at D:\code\cb\cb_sf_git\cccrash2019\src\src\editorconfigurationdlg.cpp:455
#29 0x00432161 in EditorConfigurationDlg::CreateColoursSample (this=0x28f48c) at D:\code\cb\cb_sf_git\cccrash2019\src\src\editorconfigurationdlg.cpp:426
#30 0x00434474 in EditorConfigurationDlg::ChangeTheme (this=0x28f48c) at D:\code\cb\cb_sf_git\cccrash2019\src\src\editorconfigurationdlg.cpp:667
#31 0x00433973 in EditorConfigurationDlg::LoadThemes (this=0x28f48c) at D:\code\cb\cb_sf_git\cccrash2019\src\src\editorconfigurationdlg.cpp:595
#32 0x0042fc50 in EditorConfigurationDlg::EditorConfigurationDlg (this=0x28f48c, parent=0x57cb158) at D:\code\cb\cb_sf_git\cccrash2019\src\src\editorconfigurationdlg.cpp:229
#33 0x004715d0 in MainFrame::OnSettingsEditor (this=0x57cb158, event=...) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:4901
#34 0x021c2cb2 in wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#35 0x021c3147 in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#36 0x0230d60e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#37 0x0230d7ba in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#38 0x0230ddb1 in wxEvtHandler::TryHereOnly(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#39 0x0230d87c in wxEvtHandler::DoTryChain(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#40 0x0230deff in wxEvtHandler::ProcessEvent(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#41 0x026351a1 in wxWindowBase::TryAfter(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#42 0x0230f852 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#43 0x025de2d3 in wxMenuBase::DoProcessEvent(wxMenuBase*, wxEvent&, wxWindow*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#44 0x025de3d6 in wxMenuBase::SendEvent(int, int) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#45 0x02582be8 in wxFrameBase::ProcessCommand(wxMenuItem*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#46 0x024700e5 in wxFrame::HandleCommand(unsigned short, unsigned short, HWND__*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#47 0x02471de1 in wxFrame::MSWWindowProc(unsigned int, unsigned int, long) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#48 0x0240fc43 in wxWndProc(HWND__*, unsigned int, unsigned int, long)@16 () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#49 0x768462fa in gapfnScSendMessage () from C:\Windows\syswow64\user32.dll
#50 0x0003060e in ?? ()
#51 0x76846d3a in USER32!GetThreadDesktop () from C:\Windows\syswow64\user32.dll
#52 0x0240fbb0 in wxWindow::SubclassWin(HWND__*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#53 0x768477c4 in USER32!CharPrevW () from C:\Windows\syswow64\user32.dll
#54 0x7684788a in USER32!DispatchMessageW () from C:\Windows\syswow64\user32.dll
#55 0x02434a33 in wxGUIEventLoop::Dispatch() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#56 0x021f4c68 in wxEventLoopManual::ProcessEvents() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#57 0x021f4d31 in wxEventLoopManual::DoRun() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#58 0x021f4a03 in wxEventLoopBase::Run() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#59 0x021c6a24 in wxAppConsoleBase::MainLoop() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#60 0x00404f94 in CodeBlocksApp::OnRun (this=0x4ff1508) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:901
#61 0x02237261 in wxEntryReal(int&, wchar_t**) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#62 0x004021a3 in WinMain@16 (hInstance=0x400000, hPrevInstance=0x0, nCmdShow=10) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:338
#63 0x0050bdbd in main ()

It also pops up when I open a cbp project which open some editor when the project is loading
Code
#0  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#1  0x77de016d in ntdll!ZwWaitForMultipleObjects () from C:\Windows\SysWOW64\ntdll.dll
#2  0x76c1171a in WaitForMultipleObjectsEx () from C:\Windows\syswow64\KernelBase.dll
#3  0x00000002 in ?? ()
#4  0x0028d744 in ?? ()
#5  0x765919fc in WaitForMultipleObjectsEx () from C:\Windows\syswow64\kernel32.dll
#6  0x76850882 in USER32!PeekMessageW () from C:\Windows\syswow64\user32.dll
#7  0x706b1717 in ?? () from C:\Windows\SysWOW64\duser.dll
#8  0x706b17b8 in ?? () from C:\Windows\SysWOW64\duser.dll
#9  0x706b1757 in ?? () from C:\Windows\SysWOW64\duser.dll
#10 0x7688fd7b in USER32!DdeConnectList () from C:\Windows\syswow64\user32.dll
#11 0x77dd011a in ntdll!KiUserCallbackDispatcher () from C:\Windows\SysWOW64\ntdll.dll
#12 0x0028d8c8 in ?? ()
#13 0x7686da5c in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#14 0x7686d98a in USER32!DialogBoxIndirectParamAorW () from C:\Windows\syswow64\user32.dll
#15 0x7686d70e in USER32!DialogBoxIndirectParamW () from C:\Windows\syswow64\user32.dll
#16 0x7079d504 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#17 0x70720000 in ?? ()
#18 0x7079d494 in DllInstall () from C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll
#19 0x70720000 in ?? ()
#20 0x024c70c0 in wxRichMessageDialog::ShowModal() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#21 0x0251c38b in wxGUIAppTraitsBase::ShowAssertDialog(wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#22 0x021c74a4 in ShowAssertDialog(wxString const&, int, wxString const&, wxString const&, wxString const&, wxAppTraits*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#23 0x021c7a6a in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#24 0x021c7cb6 in wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#25 0x021c4866 in wxOnAssert(char const*, int, char const*, char const*, char const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#26 0x02573c7b in wxFontBase::GetWeight() const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#27 0x695b425a in wxScintilla::StyleSetFont (this=0x1cbd6630, styleNum=32, font=...) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\wxscintilla\src\wxscintilla.cpp:4896
#28 0x6948fea6 in cbEditor::InternalSetEditorStyleBeforeFileOpen (control=0x1cbd6630) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1566
#29 0x6948ed31 in cbEditor::SetEditorStyleBeforeFileOpen (this=0x1ccab300) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1391
#30 0x6948c6f0 in cbEditor::DoInitializations (this=0x1ccab300, filename=L"D:\\code\\gdb-test\\main.cpp", fileLdr=0x1cbd1a28) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:877
#31 0x6948c06a in cbEditor::cbEditor (this=0x1ccab300, parent=0x590c080, fileLdr=0x1cbd1a28, filename=L"D:\\code\\gdb-test\\main.cpp", theme=0x59993e0) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:801
#32 0x69502e17 in EditorManager::Open (this=0x590b008, fileLdr=0x1cbd1a28, filename=L"D:\\code\\gdb-test\\main.cpp", data=0x1cbd3818) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\editormanager.cpp:398
#33 0x694ac6d4 in cbProject::LoadLayout (this=0x1cd744e0) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbproject.cpp:680
#34 0x6956fc7b in ProjectManager::EndLoadingProject (this=0x5816008, project=0x1cd744e0) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\projectmanager.cpp:1039
#35 0x6956c9b6 in ProjectManager::LoadProject (this=0x5816008, filename=L"D:\\code\\gdb-test\\gdb-test.cbp", activateIt=true) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\projectmanager.cpp:275
#36 0x00461ee8 in MainFrame::DoOpenProject (this=0x57cb158, filename=L"D:\\code\\gdb-test\\gdb-test.cbp", addToHistory=true) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:2116
#37 0x0046192f in MainFrame::OpenGeneric (this=0x57cb158, filename=L"D:\\code\\gdb-test\\gdb-test.cbp", addToHistory=true) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:2063
#38 0x00465452 in MainFrame::OnStartHereLink (this=0x57cb158, event=...) at D:\code\cb\cb_sf_git\cccrash2019\src\src\main.cpp:2490
#39 0x021c2cb2 in wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#40 0x021c3147 in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#41 0x0230d60e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#42 0x0230d7ba in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#43 0x0230ddb1 in wxEvtHandler::TryHereOnly(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#44 0x0230de1a in wxEvtHandler::ProcessEventLocally(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#45 0x0230deff in wxEvtHandler::ProcessEvent(wxEvent&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#46 0x0230eb68 in wxEvtHandler::ProcessPendingEvents() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#47 0x021c500d in wxAppConsoleBase::ProcessPendingEvents() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#48 0x021f4c5b in wxEventLoopManual::ProcessEvents() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#49 0x021f4d31 in wxEventLoopManual::DoRun() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#50 0x021f4a03 in wxEventLoopBase::Run() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#51 0x021c6a24 in wxAppConsoleBase::MainLoop() () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#52 0x00404f94 in CodeBlocksApp::OnRun (this=0x4ff1508) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:901
#53 0x02237261 in wxEntryReal(int&, wchar_t**) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#54 0x004021a3 in WinMain@16 (hInstance=0x400000, hPrevInstance=0x0, nCmdShow=10) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:338
#55 0x0050bdbd in main ()

I think any font is causing issue, this is font setting in my debug.conf
Code
		<FONT>
<str>
<![CDATA[1;10.2;-17;0;0;0;400;0;0;0;0;3;2;1;49;Courier New]]>
</str>
</FONT>
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #6 on: November 17, 2019, 10:31:28 am »
What happens if you reset this settings and set the font again? There was a problem in wx which failed when an old font format was used.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #7 on: November 17, 2019, 01:24:11 pm »
What happens if you reset this settings and set the font again? There was a problem in wx which failed when an old font format was used.
I have totally remove the .conf file, and tried the setting again, and still the issue exists. :(
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #8 on: November 17, 2019, 05:50:20 pm »
Does it work if you don't set a font?

You'll have to either debug it yourself, or try to reproduce it with the stc sample in wx then if it is a problem in stc someone on the wx team might be able to fix it... I don't know. I don't have plans to switch to windows in the next two/three weeks, so I cannot help with this.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #9 on: November 18, 2019, 05:37:02 am »
Does it work if you don't set a font?
Yes, it works without this issue if I don't set the font for a fresh C::B running.

Quote
You'll have to either debug it yourself, or try to reproduce it with the stc sample in wx then if it is a problem in stc someone on the wx team might be able to fix it... I don't know. I don't have plans to switch to windows in the next two/three weeks, so I cannot help with this.
Let's see how I can do it, I just build the wx's stc example code and can't see anywhere I can set the font, all it use are some-kinds of default font. So, I have to manually add some code to the stc sample code to select some other font.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #10 on: November 19, 2019, 11:49:24 pm »
I tested the stc sample of the wxWidgets 3.1.3.

I change the line of the 610 of the source file wxWidgets-3.1.3\samples\stc\edit.cpp like below

Code
    // default fonts for all styles!
    int Nr;
    for (Nr = 0; Nr < wxSTC_STYLE_LASTPREDEFINED; Nr++) {
        //wxFont font(wxFontInfo(10).Family(wxFONTFAMILY_MODERN));
        wxFont font(wxFontInfo(16).FaceName("Terminus"));
        StyleSetFont (Nr, font);
    }

I see that this Terminus font is shown in the result edit control. So, this means stc sample correctly loads the user defined font.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #11 on: November 20, 2019, 12:17:25 am »
Code
    wxString fontstring = mgr->Read(_T("/font"), wxEmptyString);

    if (!fontstring.IsEmpty())
    {
        wxNativeFontInfo nfi;
        nfi.FromString(fontstring);
        font.SetNativeFontInfo(nfi);
    }

In this code(in C::B source sdk\cbeditor.cpp), I get the fontstring
Code
1;13.8;-23;0;0;0;400;0;0;0;0;1;2;1;49;Terminus
I have also get another string like:
Code
1;10.2;-17;0;0;0;400;0;0;0;0;3;2;1;49;Courier New


This get failed in the check: "wxASSERT(numWeight > 0);" in file:

Code
https://github.com/wxWidgets/wxWidgets/blob/db2e571c1b9ec414ec261b8f3227622989a15937/include/wx/font.h#L277

Code
    // Another helper for converting arbitrary numeric weight to the closest
    // value of wxFontWeight enum. It should be avoided in the new code (also
    // note that the function for the conversion in the other direction is
    // trivial and so is not provided, we only have GetNumericWeightOf() which
    // contains backwards compatibility hacks, but we don't need it here).
    static wxFontWeight GetWeightClosestToNumericValue(int numWeight)
    {
        wxASSERT(numWeight > 0);
        wxASSERT(numWeight <= 1000);

        // round to nearest hundredth = wxFONTWEIGHT_ constant
        int weight = ((numWeight + 50) / 100) * 100;

        if (weight < wxFONTWEIGHT_THIN)
            weight = wxFONTWEIGHT_THIN;
        if (weight > wxFONTWEIGHT_MAX)
            weight = wxFONTWEIGHT_MAX;

        return static_cast<wxFontWeight>(weight);
    }

Those string are some OS dependent string saved by the function: (See document here: https://docs.wxwidgets.org/3.0/classwx_font.html#ac78bab66824b38f42669cfc0b4dc7c9f)

Quote
wxString wxFont::GetNativeFontInfoDesc    (       )    const

Returns the platform-dependent string completely describing this font.

Returned string is always non-empty unless the font is invalid (in which case an assert is triggered).

Note that the returned string is not meant to be shown or edited by the user: a typical use of this function is for serializing in string-form a wxFont object.

See also
    SetNativeFontInfo(), GetNativeFontInfoUserDesc()


Is the negative number wrong in the font string?

I see the string is saved in the font setting dialog: in file: src\editorconfigurationdlg.cpp
Code
void EditorConfigurationDlg::EndModal(int retCode)
{
    if (retCode == wxID_OK)
    {
        ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor"));

        cfg->Write(_T("/font"), XRCCTRL(*this, "lblEditorFont", wxStaticText)->GetFont().GetNativeFontInfoDesc());

« Last Edit: November 20, 2019, 12:19:46 am by ollydbg »
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #12 on: November 20, 2019, 01:33:21 am »
OK, it is a wx bug.

I just reproduce this bug in wx3.1.3's sample font.

First, I can set a font in the setting dialog, and it shows such dialog: See screen shot below.

Second, I use the menu->Font->set native font description, this also pops up the same alert message box as in C::B.
« Last Edit: November 20, 2019, 01:50:41 am by ollydbg »
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Alert message box jumps if I open the compiler setting dialog
« Reply #13 on: November 21, 2019, 02:31:01 am »
https://groups.google.com/d/msg/wx-users/DGJvUd-314A/t745N9XvAQAJ
The wx dev thought it is a bug, and they will be fixed soon.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5906
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.