summaryrefslogtreecommitdiff
path: root/sys/src/libc
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-09-06 20:43:05 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-09-06 20:43:05 +0200
commit7562da90e562e65156042574e088d4359a8fccba (patch)
treeaf8a1982ff6034d0f76ce4a4d049962602da8603 /sys/src/libc
parent431cbe35f6a3f9c0c74d11937dfa7e06da34ecde (diff)
libc: remove privfree(), simplify privalloc()
Diffstat (limited to 'sys/src/libc')
-rw-r--r--sys/src/libc/9sys/privalloc.c33
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;
}