dix: delete all callbacks before reset

DeleteCallbackManager() introduced for better symmetry in the caller, they
do the same thing.

==20085== 24 bytes in 1 blocks are still reachable in loss record 11 of 103
==20085==    at 0x4C2A4CD: malloc (vg_replace_malloc.c:236)
==20085==    by 0x43A097: CreateCallbackList (dixutils.c:837)
==20085==    by 0x43A1D3: AddCallback (dixutils.c:869)
==20085==    by 0x4B1736: GEExtensionInit (geext.c:209)
==20085==    by 0x41C8A8: InitExtensions (miinitext.c:389)
==20085==    by 0x5AC918: main (main.c:208)

==2042== 8 bytes in 1 blocks are still reachable in loss record 2 of 97
==2042==    at 0x4C2A4CD: malloc (vg_replace_malloc.c:236)
==2042==    by 0x4C2A657: realloc (vg_replace_malloc.c:525)
==2042==    by 0x4802F5: XNFrealloc (utils.c:1095)
==2042==    by 0x43A17A: CreateCallbackList (dixutils.c:855)
==2042==    by 0x43A1EF: AddCallback (dixutils.c:870)
==2042==    by 0x4B1752: GEExtensionInit (geext.c:209)
==2042==    by 0x41C8A8: InitExtensions (miinitext.c:389)
==2042==    by 0x5AC9E4: main (main.c:208)
==2042==

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Peter Hutterer 2012-02-27 18:36:39 +10:00
parent 6993f8b459
commit ddc11397a5
3 changed files with 10 additions and 1 deletions

View File

@ -849,7 +849,7 @@ DeleteCallbackList(CallbackListPtr *pcbl)
}
void
InitCallbackManager(void)
DeleteCallbackManager(void)
{
int i;
@ -861,3 +861,9 @@ InitCallbackManager(void)
numCallbackListsToCleanup = 0;
listsToCleanup = NULL;
}
void
InitCallbackManager(void)
{
DeleteCallbackManager();
}

View File

@ -366,6 +366,8 @@ main(int argc, char *argv[], char *envp[])
FreeAuditTimer();
DeleteCallbackManager();
if (dispatchException & DE_TERMINATE) {
CloseWellKnownConnections();
}

View File

@ -86,5 +86,6 @@ CallCallbacks(CallbackListPtr *pcbl, pointer call_data)
extern _X_EXPORT void DeleteCallbackList(CallbackListPtr * /*pcbl */ );
extern _X_EXPORT void InitCallbackManager(void);
extern _X_EXPORT void DeleteCallbackManager(void);
#endif /* CALLBACK_H */