diff --git a/legacy/evil/ChangeLog b/legacy/evil/ChangeLog index 0c760042b3..710c4581d8 100644 --- a/legacy/evil/ChangeLog +++ b/legacy/evil/ChangeLog @@ -1,3 +1,9 @@ +2009-10-08 Vincent Torri + + * src/lib/evil_main.c: + Shutdown socket system in evil_shutdown(). + Update init/shutdown scheme. + 2009-09-08 Vincent Torri * INSTALL: diff --git a/legacy/evil/src/lib/evil_main.c b/legacy/evil/src/lib/evil_main.c index 27d41d0762..629fcb5143 100644 --- a/legacy/evil/src/lib/evil_main.c +++ b/legacy/evil/src/lib/evil_main.c @@ -11,7 +11,7 @@ #include "evil_private.h" -static int _evil_init_count = 0; +static int _evil_init_count = 0; extern LONGLONG _evil_time_freq; extern LONGLONG _evil_time_count; @@ -25,16 +25,12 @@ evil_init() LARGE_INTEGER count; WORD second = 59; - if (_evil_init_count > 0) - { - _evil_init_count++; - return _evil_init_count; - } + if (++_evil_init_count != 1) + return _evil_init_count; if (!QueryPerformanceFrequency(&freq)) - { return 0; - } + _evil_time_freq = freq.QuadPart; /* be sure that second + 1 != 0 */ @@ -56,23 +52,22 @@ evil_init() _evil_time_second = _evil_systemtime_to_time(st); if (_evil_time_second < 0) return 0; + _evil_time_count = count.QuadPart; - if(!evil_sockets_init()) + if (!evil_sockets_init()) return 0; - _evil_init_count++; - return _evil_init_count; } int evil_shutdown() { - _evil_init_count--; - if (_evil_init_count > 0) return _evil_init_count; + if (--_evil_init_count != 0) + return _evil_init_count; - if (_evil_init_count < 0) _evil_init_count = 0; + evil_sockets_shutdown(); return _evil_init_count; }