From ec298117ba2ee6ed4cab11f4d907314574dea0ee Mon Sep 17 00:00:00 2001 From: xcomputerman Date: Mon, 27 Dec 2004 18:28:14 +0000 Subject: [PATCH] Plug memory leak SVN revision: 12606 --- legacy/ecore/src/lib/ecore_x/ecore_x.c | 1 + legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c | 11 ++++++++++- legacy/ecore/src/lib/ecore_x/ecore_x_private.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x.c b/legacy/ecore/src/lib/ecore_x/ecore_x.c index 9caa923..5185d3a 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x.c +++ b/legacy/ecore/src/lib/ecore_x/ecore_x.c @@ -381,6 +381,7 @@ _ecore_x_shutdown(int close_display) _ecore_x_disp = NULL; _ecore_x_event_handlers = NULL; _ecore_x_selection_shutdown(); + _ecore_x_dnd_shutdown(); if (_ecore_x_init_count < 0) _ecore_x_init_count = 0; return _ecore_x_init_count; } diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c b/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c index cebd034..c3ea5d9 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c +++ b/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c @@ -4,7 +4,7 @@ #include "Ecore_X_Atoms.h" static Ecore_X_Selection_Data _xdnd_selection; -static Ecore_X_DND_Protocol *_xdnd; +static Ecore_X_DND_Protocol *_xdnd = NULL; void _ecore_x_dnd_init (void) @@ -15,6 +15,15 @@ _ecore_x_dnd_init (void) _xdnd->source = None; _xdnd->dest = None; _xdnd->state = ECORE_X_DND_IDLE; + +} + +void +_ecore_x_dnd_shutdown(void) +{ + if(_xdnd) + free(_xdnd); + _xdnd = NULL; } void diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_private.h b/legacy/ecore/src/lib/ecore_x/ecore_x_private.h index 976c14d..59131b2 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x_private.h +++ b/legacy/ecore/src/lib/ecore_x/ecore_x_private.h @@ -163,5 +163,6 @@ int _ecore_x_selection_convert(Atom selection, Atom target, void **data_ret); void _ecore_x_dnd_init(void); Ecore_X_DND_Protocol * _ecore_x_dnd_protocol_get(void); void _ecore_x_dnd_drag(int x, int y); +void _ecore_x_dnd_shutdown(void); #endif -- 2.7.4