Fixed wxexpr.cpp bug (quote wasn't being removed in new MB code);
fixed one of the remaining memory leaks (wxMSW, wxDefaultValidator) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1194,6 +1194,10 @@ public:
|
|||||||
|
|
||||||
bool SearchDynamicEventTable( wxEvent& event );
|
bool SearchDynamicEventTable( wxEvent& event );
|
||||||
|
|
||||||
|
#if wxUSE_THREADS
|
||||||
|
void ClearEventLocker() { delete m_eventsLocker; m_eventsLocker = NULL; };
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const wxEventTableEntry sm_eventTableEntries[];
|
static const wxEventTableEntry sm_eventTableEntries[];
|
||||||
|
|
||||||
@@ -1203,18 +1207,18 @@ protected:
|
|||||||
virtual const wxEventTable *GetEventTable() const;
|
virtual const wxEventTable *GetEventTable() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxEvtHandler* m_nextHandler;
|
wxEvtHandler* m_nextHandler;
|
||||||
wxEvtHandler* m_previousHandler;
|
wxEvtHandler* m_previousHandler;
|
||||||
bool m_enabled; // Is event handler enabled?
|
bool m_enabled; // Is event handler enabled?
|
||||||
wxList* m_dynamicEvents;
|
wxList* m_dynamicEvents;
|
||||||
wxList* m_pendingEvents;
|
wxList* m_pendingEvents;
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
wxCriticalSection* m_eventsLocker;
|
wxCriticalSection* m_eventsLocker;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// optimization: instead of using costly IsKindOf() to decide whether we're
|
// optimization: instead of using costly IsKindOf() to decide whether we're
|
||||||
// a window (which is true in 99% of cases), use this flag
|
// a window (which is true in 99% of cases), use this flag
|
||||||
bool m_isWindow;
|
bool m_isWindow;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&);
|
typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&);
|
||||||
|
@@ -1197,13 +1197,13 @@ char *wxmake_string(char *str)
|
|||||||
int len, i;
|
int len, i;
|
||||||
const wxMB2WXbuf sbuf = wxConv_libc.cMB2WX(str);
|
const wxMB2WXbuf sbuf = wxConv_libc.cMB2WX(str);
|
||||||
|
|
||||||
str++; /* skip leading quote */
|
// str++; /* skip leading quote */
|
||||||
len = wxStrlen(sbuf) - 1; /* ignore trailing quote */
|
len = wxStrlen(sbuf) - 1; /* ignore trailing quote */
|
||||||
|
|
||||||
s = new wxChar[len + 1];
|
s = new wxChar[len + 1];
|
||||||
|
|
||||||
t = s;
|
t = s;
|
||||||
for(i=0; i<len; i++)
|
for(i=1; i<len; i++) // 1 since we want to skip leading quote
|
||||||
{
|
{
|
||||||
if (sbuf[i] == _T('\\') && sbuf[i+1] == _T('"'))
|
if (sbuf[i] == _T('\\') && sbuf[i+1] == _T('"'))
|
||||||
{
|
{
|
||||||
|
@@ -562,6 +562,8 @@ void wxApp::CleanUp()
|
|||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
delete wxPendingEvents;
|
delete wxPendingEvents;
|
||||||
delete wxPendingEventsLocker;
|
delete wxPendingEventsLocker;
|
||||||
|
// If we don't do the following, we get an apparent memory leak.
|
||||||
|
((wxEvtHandler&) wxDefaultValidator).ClearEventLocker();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxClassInfo::CleanUpClasses();
|
wxClassInfo::CleanUpClasses();
|
||||||
|
Reference in New Issue
Block a user