diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-09-06 20:43:05 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-09-06 20:43:05 +0200 |
commit | 7562da90e562e65156042574e088d4359a8fccba (patch) | |
tree | af8a1982ff6034d0f76ce4a4d049962602da8603 /sys/src/libc | |
parent | 431cbe35f6a3f9c0c74d11937dfa7e06da34ecde (diff) |
libc: remove privfree(), simplify privalloc()
Diffstat (limited to 'sys/src/libc')
-rw-r--r-- | sys/src/libc/9sys/privalloc.c | 33 |
1 files changed, 5 insertions, 28 deletions
diff --git a/sys/src/libc/9sys/privalloc.c b/sys/src/libc/9sys/privalloc.c index 907485e2f..3117ffc56 100644 --- a/sys/src/libc/9sys/privalloc.c +++ b/sys/src/libc/9sys/privalloc.c @@ -2,8 +2,6 @@ #include <libc.h> static Lock privlock; -static int privinit; -static void **privs; extern void **_privates; extern int _nprivates; @@ -12,34 +10,13 @@ void ** privalloc(void) { void **p; - int i; lock(&privlock); - if(!privinit){ - privinit = 1; - if(_nprivates){ - _privates[0] = 0; - for(i = 1; i < _nprivates; i++) - _privates[i] = &_privates[i - 1]; - privs = &_privates[i - 1]; - } - } - p = privs; - if(p != nil){ - privs = *p; - *p = nil; - } + if(_nprivates > 0) + p = &_privates[--_nprivates]; + else + p = nil; unlock(&privlock); - return p; -} -void -privfree(void **p) -{ - lock(&privlock); - if(p != nil && privinit){ - *p = privs; - privs = p; - } - unlock(&privlock); + return p; } |