User forums > Nightly builds
The 22 March 2014 build (9744) is out.
Alpha:
--- Quote from: ollydbg on April 04, 2014, 08:37:22 am ---With the analysis of my previous post, I find a better way to solve this crash issue. I mean "Do not destroy the tip window in CCManager::OnDeactivateApp" [...]
--- End quote ---
Unfortunately, if we do not cancel the tip window, it can become "stuck" on top of everything until Code::Blocks is reactivated.
@all: If you are experiencing this crash, please test the following patch.
--- Code: ---Index: src/sdk/ccmanager.cpp
===================================================================
--- src/sdk/ccmanager.cpp (revision 9745)
+++ src/sdk/ccmanager.cpp (working copy)
@@ -114,6 +114,8 @@
const int idCallTipNext = wxNewId();
const int idCallTipPrevious = wxNewId();
+DEFINE_EVENT_TYPE(cbDEFERRED_CALLTIP_CANCEL_EVENT)
+
// milliseconds
#define CALLTIP_REFRESH_DELAY 90
#define AUTOCOMP_SELECT_DELAY 35
@@ -292,6 +294,7 @@
Connect(idCallTipTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
Connect(idAutoLaunchTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
Connect(idAutocompSelectTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
+ Connect(cbDEFERRED_CALLTIP_CANCEL_EVENT, wxCommandEventHandler(CCManager::OnDeferredCallTipCancel));
}
// class destructor
@@ -309,6 +312,7 @@
Disconnect(idCallTipTimer);
Disconnect(idAutoLaunchTimer);
Disconnect(idAutocompSelectTimer);
+ Disconnect(cbDEFERRED_CALLTIP_CANCEL_EVENT);
}
cbCodeCompletionPlugin* CCManager::GetProviderFor(cbEditor* ed)
@@ -463,7 +467,10 @@
{
cbStyledTextCtrl* stc = ed->GetControl();
if (stc->CallTipActive())
- stc->CallTipCancel();
+ {
+ wxCommandEvent pendingCancel(cbDEFERRED_CALLTIP_CANCEL_EVENT);
+ AddPendingEvent(pendingCancel);
+ }
m_CallTipActive = wxSCI_INVALID_POSITION;
}
event.Skip();
@@ -880,6 +887,13 @@
m_CallTipTimer.Start(CALLTIP_REFRESH_DELAY, wxTIMER_ONE_SHOT);
}
+void CCManager::OnDeferredCallTipCancel(wxCommandEvent& WXUNUSED(event))
+{
+ cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor();
+ if (ed)
+ ed->GetControl()->CallTipCancel();
+}
+
#ifdef __WXMSW__
void CCManager::OnPopupScroll(wxMouseEvent& event)
{
Index: src/include/ccmanager.h
===================================================================
--- src/include/ccmanager.h (revision 9745)
+++ src/include/ccmanager.h (working copy)
@@ -57,6 +57,7 @@
/** event handler to show documentation, when user changes autocomplete selection */
void OnAutocompleteSelect(wxListEvent& event);
void OnAutocompleteHide(wxShowEvent& event);
+ void OnDeferredCallTipCancel(wxCommandEvent& event);
#ifdef __WXMSW__
/** intercept cbStyledTextCtrl scroll events and forward to autocomplete/documentation popups */
void OnPopupScroll(wxMouseEvent& event);
--- End code ---
ollydbg:
--- Quote from: Alpha on April 06, 2014, 10:58:05 pm ---
--- Quote from: ollydbg on April 04, 2014, 08:37:22 am ---With the analysis of my previous post, I find a better way to solve this crash issue. I mean "Do not destroy the tip window in CCManager::OnDeactivateApp" [...]
--- End quote ---
Unfortunately, if we do not cancel the tip window, it can become "stuck" on top of everything until Code::Blocks is reactivated.
--- End quote ---
I don't see such issue, at least on my XP with my patch. But the "stuck" may happens in other OS/system.
--- Quote ---@all: If you are experiencing this crash, please test the following patch.
--- Code: ---Index: src/sdk/ccmanager.cpp
===================================================================
--- src/sdk/ccmanager.cpp (revision 9745)
+++ src/sdk/ccmanager.cpp (working copy)
@@ -114,6 +114,8 @@
const int idCallTipNext = wxNewId();
const int idCallTipPrevious = wxNewId();
+DEFINE_EVENT_TYPE(cbDEFERRED_CALLTIP_CANCEL_EVENT)
+
// milliseconds
#define CALLTIP_REFRESH_DELAY 90
#define AUTOCOMP_SELECT_DELAY 35
@@ -292,6 +294,7 @@
Connect(idCallTipTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
Connect(idAutoLaunchTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
Connect(idAutocompSelectTimer, wxEVT_TIMER, wxTimerEventHandler(CCManager::OnTimer));
+ Connect(cbDEFERRED_CALLTIP_CANCEL_EVENT, wxCommandEventHandler(CCManager::OnDeferredCallTipCancel));
}
// class destructor
@@ -309,6 +312,7 @@
Disconnect(idCallTipTimer);
Disconnect(idAutoLaunchTimer);
Disconnect(idAutocompSelectTimer);
+ Disconnect(cbDEFERRED_CALLTIP_CANCEL_EVENT);
}
cbCodeCompletionPlugin* CCManager::GetProviderFor(cbEditor* ed)
@@ -463,7 +467,10 @@
{
cbStyledTextCtrl* stc = ed->GetControl();
if (stc->CallTipActive())
- stc->CallTipCancel();
+ {
+ wxCommandEvent pendingCancel(cbDEFERRED_CALLTIP_CANCEL_EVENT);
+ AddPendingEvent(pendingCancel);
+ }
m_CallTipActive = wxSCI_INVALID_POSITION;
}
event.Skip();
@@ -880,6 +887,13 @@
m_CallTipTimer.Start(CALLTIP_REFRESH_DELAY, wxTIMER_ONE_SHOT);
}
+void CCManager::OnDeferredCallTipCancel(wxCommandEvent& WXUNUSED(event))
+{
+ cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor();
+ if (ed)
+ ed->GetControl()->CallTipCancel();
+}
+
#ifdef __WXMSW__
void CCManager::OnPopupScroll(wxMouseEvent& event)
{
Index: src/include/ccmanager.h
===================================================================
--- src/include/ccmanager.h (revision 9745)
+++ src/include/ccmanager.h (working copy)
@@ -57,6 +57,7 @@
/** event handler to show documentation, when user changes autocomplete selection */
void OnAutocompleteSelect(wxListEvent& event);
void OnAutocompleteHide(wxShowEvent& event);
+ void OnDeferredCallTipCancel(wxCommandEvent& event);
#ifdef __WXMSW__
/** intercept cbStyledTextCtrl scroll events and forward to autocomplete/documentation popups */
void OnPopupScroll(wxMouseEvent& event);
--- End code ---
--- End quote ---
Tested, and works fine! I think your patch is better than mine. ;)
tuldok89:
--- Quote from: vali29 on April 01, 2014, 09:50:54 am ---
--- Quote from: oBFusCATed on March 31, 2014, 02:07:21 pm ---Any steps to reproduce this crash?
--- End quote ---
1) Open Notepad
2) Open Codeblocks with a test project and check "Display info when hovering mouse over a token in the editor" from Settings->Editor->Code completion->Code completion
3) Put the mouse cursor over a token in editor and let to apear the little pop-up with description.
4) Now click on Notepad window...
BOOM!!! :D
--- Code: ---codeblocks.exe caused an Access Violation at location bc68551c Reading from location bc68551c.
Registers:
eax=bc68551c ebx=00000d88 ecx=071398a8 edx=00000000 esi=071398a8 edi=00000d88
eip=bc68551c esp=0022f548 ebp=0022f9c4 iopl=0 nv up ei pl nz ac po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216
Call stack:
BC68551C
6852EC49 wxmsw28u.dll:6852EC49 _ZN8wxWindow13MSWWindowProcEjjl
68527BA0 wxmsw28u.dll:68527BA0 _Z9wxWndProcP6HWND__jjl@16
775EC4E7 USER32.dll:775EC4E7 gapfnScSendMessage
775EC5E7 USER32.dll:775EC5E7 gapfnScSendMessage
775E4F0E USER32.dll:775E4F0E GetScrollBarInfo
775E4F7D USER32.dll:775E4F7D GetScrollBarInfo
77B8702E ntdll.dll:77B8702E KiUserCallbackDispatcher
68511E35 wxmsw28u.dll:68511E35 _ZN11wxEventLoop8DispatchEv
6858B3B2 wxmsw28u.dll:6858B3B2 _ZN17wxEventLoopManual3RunEv
685724D0 wxmsw28u.dll:685724D0 _ZN9wxAppBase8MainLoopEv
00402922 codeblocks.exe:00402922
684F1D1C wxmsw28u.dll:684F1D1C _Z7wxEntryP11HINSTANCE__S0_Pci
00401D00 codeblocks.exe:00401D00
004010FD codeblocks.exe:004010FD
77BA37EB ntdll.dll:77BA37EB RtlInitializeExceptionChain
77BA37BE ntdll.dll:77BA37BE RtlInitializeExceptionChain
--- End code ---
I think that the error was introduced in latest commits with new CC plugin.
--- End quote ---
I am not able to reproduce this bug. Using the posted CB archive, under Windows 7 x64 Professional.
cacb:
I have got a question relating to pre-built Nightly builds of Code::Blocks:
Under Win7 I am using the pre-built nightly build of C::B in combination with the MSVC2010 compiler and wxWidgets 3.0 self-built using MSVC2010. This all works fine. However, sometimes I'd like to use things in wxContribItems (e.g. wxled) , but apparently there is no MSVC makefile support or any other direct way of compiling wxContribItems with this setup. Am I right?
On Linux, where I build C::B from source, I can see wxContribItems under codeblocks-13.12svn/src/plugins/contrib/wxContribItems/ , but I'm not really sure if things like wxled, KWIK need to be considered "plugins", or at least it would be nice to have the ability to use them in projects using the MSVC compiler, just like the rest of wxWidgets.
Any thoughts?
stahta01:
--- Quote from: cacb on April 21, 2014, 12:07:01 pm ---I have got a question relating to pre-built Nightly builds of Code::Blocks:
Under Win7 I am using the pre-built nightly build of C::B in combination with the MSVC2010 compiler and wxWidgets 3.0 self-built using MSVC2010. This all works fine. However, sometimes I'd like to use things in wxContribItems (e.g. wxled) , but apparently there is no MSVC makefile support or any other direct way of compiling wxContribItems with this setup. Am I right?
On Linux, where I build C::B from source, I can see wxContribItems under codeblocks-13.12svn/src/plugins/contrib/wxContribItems/ , but I'm not really sure if things like wxled, KWIK need to be considered "plugins", or at least it would be nice to have the ability to use them in projects using the MSVC compiler, just like the rest of wxWidgets.
Any thoughts?
--- End quote ---
wxContribItems is not a CB Plugins; but, are wxWidgets addons. Most are from wxCode website. http://wxcode.sourceforge.net/
I suggest looking to wxCode website on how to build them for under MSVC2010 compiler and wxWidgets 3.0.
If you can NOT find them, I suggest a new post in the "General (but related to Code::Blocks)" sub-forum on the source of the wxContribItems components.
Tim S.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version