]> jfr.im git - irc/quakenet/newserv.git/blobdiff - channel/channelalloc.c
Implement --help parameter.
[irc/quakenet/newserv.git] / channel / channelalloc.c
index 454b78db556c8d6f2e5daa531a3712b8adb539cb..5add18f6a06766e62212397c7b7000a26dd37127 100644 (file)
@@ -3,19 +3,16 @@
 #include <stdlib.h>
 #include "channel.h"
 #include <assert.h>
+#include "../core/nsmalloc.h"
 
 #define ALLOCUNIT  100
 
 channel *freechans;
 chanuserhash *freehash;
-chanban *freebans;
-chanindex *freechanindices;
 
 void initchannelalloc() {
   freechans=NULL;
   freehash=NULL;
-  freebans=NULL;
-  freechanindices=NULL;
 }
 
 /* channel records don't have next pointers.  
@@ -26,7 +23,7 @@ channel *newchan() {
   channel *cp;
   
   if (freechans==NULL) {
-    freechans=(channel *)malloc(ALLOCUNIT*sizeof(channel));
+    freechans=(channel *)nsmalloc(POOL_CHANNEL,ALLOCUNIT*sizeof(channel));
     for (i=0;i<(ALLOCUNIT-1);i++) {
       freechans[i].index=(struct chanindex *)&(freechans[i+1]);
     }
@@ -59,7 +56,7 @@ chanuserhash *newchanuserhash(int hashsize) {
   chanuserhash *cuhp;
   
   if (freehash==NULL) {
-    freehash=(chanuserhash *)malloc(ALLOCUNIT*sizeof(chanuserhash));
+    freehash=(chanuserhash *)nsmalloc(POOL_CHANNEL,ALLOCUNIT*sizeof(chanuserhash));
     for (i=0;i<(ALLOCUNIT-1);i++) {
       freehash[i].content=(unsigned long *)&(freehash[i+1]);
     }    
@@ -69,7 +66,7 @@ chanuserhash *newchanuserhash(int hashsize) {
   cuhp=freehash;
   freehash=(chanuserhash *)cuhp->content;
   
-
+  /* Don't use nsmalloc() here since we will free this in freechanuserhash() */
   cuhp->content=(unsigned long *)malloc(hashsize*sizeof(unsigned long));
   for (i=0;i<hashsize;i++) {
     cuhp->content[i]=nouser;
@@ -86,62 +83,3 @@ void freechanuserhash(chanuserhash *cuhp) {
   cuhp->content=(unsigned long *)freehash; 
   freehash=cuhp;
 }
-
-chanban *getchanban() {
-  int i;
-  chanban *cbp;
-  
-  if (freebans==NULL) {
-    freebans=(chanban *)malloc(ALLOCUNIT*sizeof(chanban));
-    for (i=0;i<ALLOCUNIT-1;i++) {
-      freebans[i].next=(struct chanban *)&(freebans[i+1]);
-    }
-    freebans[ALLOCUNIT-1].next=NULL;
-  }
-  
-  cbp=freebans;
-  freebans=cbp->next;
-  
-  cbp->nick=NULL;
-  cbp->user=NULL;
-  cbp->host=NULL;
-
-  return cbp;
-}
-
-void freechanban(chanban *cbp) {
-  cbp->next=(struct chanban *)freebans;
-
-  if (cbp->nick)
-    freesstring(cbp->nick);
-  if (cbp->user)
-    freesstring(cbp->user);
-  if (cbp->host)
-    freesstring(cbp->host);
-
-  freebans=cbp;
-}
-
-chanindex *getchanindex() {
-  int i;
-  chanindex *cip;
-  
-  if (freechanindices==NULL) {
-    freechanindices=(chanindex *)malloc(ALLOCUNIT*sizeof(chanindex));
-    for(i=0;i<ALLOCUNIT-1;i++) {
-      freechanindices[i].next=&(freechanindices[i+1]);
-    }
-    freechanindices[ALLOCUNIT-1].next=NULL;
-  }
-  
-  cip=freechanindices;
-  freechanindices=cip->next;
-  
-  return cip;
-}
-
-void freechanindex(chanindex *cip) {
-  cip->next=freechanindices;
-  freechanindices=cip;
-}
-