* Changed "wxPendingEvents" to pointers (tested on GTK)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1999-04-03 09:24:52 +00:00
parent 103aec296a
commit 4d3a259aff
9 changed files with 88 additions and 33 deletions

View File

@@ -80,8 +80,8 @@
#if wxUSE_THREADS #if wxUSE_THREADS
/* To put pending event handlers */ /* To put pending event handlers */
extern wxList wxPendingEvents; extern wxList *wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker; extern wxCriticalSection *wxPendingEventsLocker;
#endif #endif
/* /*
@@ -342,9 +342,9 @@ bool wxEvtHandler::ProcessThreadEvent(wxEvent& event)
m_pendingEvents->Append(event_main); m_pendingEvents->Append(event_main);
wxPendingEventsLocker.Enter(); wxPendingEventsLocker->Enter();
wxPendingEvents.Append(this); wxPendingEvents->Append(this);
wxPendingEventsLocker.Leave(); wxPendingEventsLocker->Leave();
return TRUE; return TRUE;
} }

View File

@@ -47,8 +47,8 @@ wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete; extern wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
extern wxList wxPendingEvents; extern wxList *wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker; extern wxCriticalSection *wxPendingEventsLocker;
#endif #endif
extern wxResourceCache *wxTheResourceCache; extern wxResourceCache *wxTheResourceCache;
@@ -380,8 +380,8 @@ void wxApp::Dispatch()
#if wxUSE_THREADS #if wxUSE_THREADS
void wxApp::ProcessPendingEvents() void wxApp::ProcessPendingEvents()
{ {
wxNode *node = wxPendingEvents.First(); wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(wxPendingEventsLocker); wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node) while (node)
{ {
@@ -391,7 +391,7 @@ void wxApp::ProcessPendingEvents()
delete node; delete node;
node = wxPendingEvents.First(); node = wxPendingEvents->First();
} }
} }
#endif #endif
@@ -435,6 +435,13 @@ bool wxApp::Initialize()
wxSystemSettings::Init(); wxSystemSettings::Init();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
/* /*
wxTheFontNameDirectory = new wxFontNameDirectory; wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize(); wxTheFontNameDirectory->Initialize();
@@ -495,6 +502,13 @@ void wxApp::CleanUp()
delete wxTheApp; delete wxTheApp;
wxTheApp = (wxApp*) NULL; wxTheApp = (wxApp*) NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxSystemSettings::Done(); wxSystemSettings::Done();
delete[] wxBuffer; delete[] wxBuffer;

View File

@@ -40,8 +40,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
/* List of events pending processing */ /* List of events pending processing */
wxList wxPendingEvents; wxList *wxPendingEvents = NULL;
wxCriticalSection wxPendingEventsLocker; wxCriticalSection *wxPendingEventsLocker = NULL;
#endif #endif
/* Current cursor, in order to hang on to /* Current cursor, in order to hang on to

View File

@@ -47,8 +47,8 @@ wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete; extern wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
extern wxList wxPendingEvents; extern wxList *wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker; extern wxCriticalSection *wxPendingEventsLocker;
#endif #endif
extern wxResourceCache *wxTheResourceCache; extern wxResourceCache *wxTheResourceCache;
@@ -380,8 +380,8 @@ void wxApp::Dispatch()
#if wxUSE_THREADS #if wxUSE_THREADS
void wxApp::ProcessPendingEvents() void wxApp::ProcessPendingEvents()
{ {
wxNode *node = wxPendingEvents.First(); wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(wxPendingEventsLocker); wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node) while (node)
{ {
@@ -391,7 +391,7 @@ void wxApp::ProcessPendingEvents()
delete node; delete node;
node = wxPendingEvents.First(); node = wxPendingEvents->First();
} }
} }
#endif #endif
@@ -435,6 +435,13 @@ bool wxApp::Initialize()
wxSystemSettings::Init(); wxSystemSettings::Init();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
/* /*
wxTheFontNameDirectory = new wxFontNameDirectory; wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize(); wxTheFontNameDirectory->Initialize();
@@ -495,6 +502,13 @@ void wxApp::CleanUp()
delete wxTheApp; delete wxTheApp;
wxTheApp = (wxApp*) NULL; wxTheApp = (wxApp*) NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxSystemSettings::Done(); wxSystemSettings::Done();
delete[] wxBuffer; delete[] wxBuffer;

View File

@@ -40,8 +40,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
/* List of events pending processing */ /* List of events pending processing */
wxList wxPendingEvents; wxList *wxPendingEvents = NULL;
wxCriticalSection wxPendingEventsLocker; wxCriticalSection *wxPendingEventsLocker = NULL;
#endif #endif
/* Current cursor, in order to hang on to /* Current cursor, in order to hang on to

View File

@@ -51,8 +51,8 @@ extern char *wxBuffer;
extern wxList wxPendingDelete; extern wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
extern wxList wxPendingEvents; extern wxList *wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker; extern wxCriticalSection *wxPendingEventsLocker;
#endif // wxUSE_THREADS #endif // wxUSE_THREADS
wxApp *wxTheApp = NULL; wxApp *wxTheApp = NULL;
@@ -75,6 +75,13 @@ bool wxApp::Initialize()
wxClassInfo::InitializeClasses(); wxClassInfo::InitializeClasses();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize(); wxTheColourDatabase->Initialize();
@@ -152,6 +159,13 @@ void wxApp::CleanUp()
delete wxTheApp; delete wxTheApp;
wxTheApp = NULL; wxTheApp = NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT #if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
// At this point we want to check if there are any memory // At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself, // blocks that aren't part of the wxDebugContext itself,
@@ -496,8 +510,8 @@ void wxApp::DeletePendingObjects()
#if wxUSE_THREADS #if wxUSE_THREADS
void wxApp::ProcessPendingEvents() void wxApp::ProcessPendingEvents()
{ {
wxNode *node = wxPendingEvents.First(); wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(wxPendingEventsLocker); wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node) while (node)
{ {
@@ -506,7 +520,7 @@ void wxApp::ProcessPendingEvents()
handler->ProcessPendingEvents(); handler->ProcessPendingEvents();
delete node; delete node;
node = wxPendingEvents.First(); node = wxPendingEvents->First();
} }
} }
#endif // wxUSE_THREADS #endif // wxUSE_THREADS

View File

@@ -29,8 +29,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
// List of events pending propagation // List of events pending propagation
wxList wxPendingEvents; wxList *wxPendingEvents = NULL;
wxCriticalSection wxPendingEventsLocker; wxCriticalSection *wxPendingEventsLocker = NULL;
#endif #endif
int wxPageNumber; int wxPageNumber;

View File

@@ -93,8 +93,8 @@ extern char *wxOsVersion;
extern wxList *wxWinHandleList; extern wxList *wxWinHandleList;
extern wxList WXDLLEXPORT wxPendingDelete; extern wxList WXDLLEXPORT wxPendingDelete;
#if wxUSE_THREADS #if wxUSE_THREADS
extern wxList wxPendingEvents; extern wxList *wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker; extern wxCriticalSection *wxPendingEventsLocker;
#endif #endif
extern void wxSetKeyboardHook(bool doIt); extern void wxSetKeyboardHook(bool doIt);
extern wxCursor *g_globalCursor; extern wxCursor *g_globalCursor;
@@ -169,6 +169,12 @@ bool wxApp::Initialize()
wxGetResource("wxWindows", "OsVersion", &wxOsVersion); wxGetResource("wxWindows", "OsVersion", &wxOsVersion);
#endif #endif
// I'm annoyed ... I don't know where to put this and I don't want to create // a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize(); wxTheColourDatabase->Initialize();
@@ -551,6 +557,13 @@ void wxApp::CleanUp()
if (wxWinHandleList) if (wxWinHandleList)
delete wxWinHandleList ; delete wxWinHandleList ;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxClassInfo::CleanUpClasses(); wxClassInfo::CleanUpClasses();
delete wxTheApp; delete wxTheApp;
@@ -922,8 +935,8 @@ bool wxApp::ProcessIdle()
#if wxUSE_THREADS #if wxUSE_THREADS
void wxApp::ProcessPendingEvents() void wxApp::ProcessPendingEvents()
{ {
wxNode *node = wxPendingEvents.First(); wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(wxPendingEventsLocker); wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node) while (node)
{ {
@@ -932,7 +945,7 @@ void wxApp::ProcessPendingEvents()
handler->ProcessPendingEvents(); handler->ProcessPendingEvents();
delete node; delete node;
node = wxPendingEvents.First(); node = wxPendingEvents->First();
} }
} }
#endif #endif

View File

@@ -39,8 +39,8 @@ wxList WXDLLEXPORT wxPendingDelete;
// List of events pending processing // List of events pending processing
#if wxUSE_THREADS #if wxUSE_THREADS
wxList wxPendingEvents; wxList *wxPendingEvents = NULL;
wxCriticalSection wxPendingEventsLocker; wxCriticalSection *wxPendingEventsLocker = NULL;
#endif #endif
// Current cursor, in order to hang on to // Current cursor, in order to hang on to