diff options
author | zaxl <zaxl@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-11-11 14:35:45 +0000 |
---|---|---|
committer | zaxl <zaxl@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-11-11 14:35:45 +0000 |
commit | d898207593d3cd583519f1d85f578ecdeda4b7d8 (patch) | |
tree | 99aef9da5ab4bea194425a4a53d86b0416b6109d /navit/support/libc/libc.c | |
parent | 721054dd1cac43c6d7e224e0a9e94344ae121c9e (diff) | |
download | navit-d898207593d3cd583519f1d85f578ecdeda4b7d8.tar.gz |
Fix:support: Use destructor to cleanup support libc
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1719 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/support/libc/libc.c')
-rw-r--r-- | navit/support/libc/libc.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/navit/support/libc/libc.c b/navit/support/libc/libc.c index 982c79d1d..9b5cfe731 100644 --- a/navit/support/libc/libc.c +++ b/navit/support/libc/libc.c @@ -4,17 +4,11 @@ #include <unistd.h> int errno; -static int at_exit_registered; -#define REGISTER_AT_EXIT() \ - do { \ - if (!at_exit_registered) \ - at_exit_registered = !atexit(cleanup_libc); \ - } while(0) - #define MAXENV 32 static char *envnames[MAXENV]; static char *envvars[MAXENV]; +static void cleanup_libc(void) __attribute__((destructor)); static void cleanup_libc(void) { int i; @@ -27,10 +21,9 @@ static void cleanup_libc(void) } char * -getenv(char *name) +getenv(const char *name) { int i; - REGISTER_AT_EXIT(); for (i=0; i < MAXENV; i++) { if (envnames[i] && !strcmp(envnames[i], name)) return envvars[i]; @@ -43,7 +36,6 @@ setenv(const char *name, const char *value, int overwrite) { int i; char *val; - REGISTER_AT_EXIT(); for (i=0; i < MAXENV; i++) { if (envnames[i] && !strcmp(envnames[i], name)) { if (overwrite) { @@ -160,7 +152,7 @@ localeconv(void) return &localedata; } -void -alarm(void) +unsigned int +alarm(unsigned int seconds) { } |