I am using the latest codeblocks and WX_3_0_BRANCH, compiling everything with debugging on (I think that this makes the code more picky). When I do this, I get 2 reproducible assertions:
type #include< in an edit window
You'll get an assertion as the code tries get the "last" character of an empty string. This fix is very obvious.
call a function and type some args. Something like fn(a,b,c,d)
You'll get an assertion. There may be a better fix here. AFAIK the code is just pedantically failing because its expecting a long int but getting just an int. Yes, it may be a wx error because I thought %d should be int... regardless, explicit casting seems to fix:
Index: debian/changelog
===================================================================
--- debian/changelog (revision 10036)
+++ debian/changelog (working copy)
@@ -1,4 +1,4 @@
-codeblocks (13.12svn9513) unstable; urgency=low
+codeblocks (13.12svn10036) unstable; urgency=low
* New svn revision
Index: src/plugins/codecompletion/codecompletion.cpp
===================================================================
--- src/plugins/codecompletion/codecompletion.cpp (revision 10036)
+++ src/plugins/codecompletion/codecompletion.cpp (working copy)
@@ -1146,8 +1146,11 @@
// which has the prefix "abc"
wxString filename = line.SubString(keyPos, tknEnd - lineStartPos - 1);
filename.Replace(wxT("\\"), wxT("/"), true);
- if (filename.Last() == wxT('"') || filename.Last() == wxT('>'))
+ if (!filename.empty())
+ {
+ if (filename.Last() == wxT('"') || filename.Last() == wxT('>'))
filename.RemoveLast();
+ }
size_t maxFiles = m_CCMaxMatches;
if (filename.IsEmpty() && maxFiles > 3000)
Index: src/sdk/ccmanager.cpp
===================================================================
--- src/sdk/ccmanager.cpp (revision 10036)
+++ src/sdk/ccmanager.cpp (working copy)
@@ -1102,7 +1102,7 @@
tips.front().Prepend(wxT("\001\002")); // up/down arrows
++offset;
}
- tips.push_back(wxString::Format(wxT("(%d/%u)"), m_CurCallTip - m_CallTips.begin() + 1, m_CallTips.size()));
+ tips.push_back(wxString::Format(wxT("(%ld/%lu)"), (long int) (m_CurCallTip - m_CallTips.begin() + 1), (long unsigned int) (m_CallTips.size())));
// store for better first choice later
m_CallTipChoiceDict[CCManagerHelper::CallTipToInt(m_CallTips.front().tip, m_CallTips.size())] = m_CurCallTip - m_CallTips.begin();
// fuzzy store
I don't have C::B with wx3, but look at the patch file, I think both are obvious fix. Thanks, I will apply it in a few days.
The first part of the patch is already fixed in the trunk:
Last edit: ollydbg 2015-10-06
The second part of the patch is also fixed in the commit:
Which use the operator<< method.
So, I close this ticket, and sorry for the late response. Thanks for the contribution.