/[ipchat]/ipchat/src/pqueue.c
ViewVC logotype

Diff of /ipchat/src/pqueue.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by beatk, Thu Mar 24 08:56:50 2005 UTC revision 1.11 by beatk, Fri Mar 25 13:51:56 2005 UTC
# Line 114  prio_t pq_add(void * d,pqueue *q){ Line 114  prio_t pq_add(void * d,pqueue *q){
114    
115      q->heap[pos] = (pq_node *)d;      q->heap[pos] = (pq_node *)d;
116      prio_t p = ((pq_node *)d)->pri;      prio_t p = ((pq_node *)d)->pri;
117      positionate(pos,q);      float_node(pos,q);
118    
119      return p;      return p;
120  }  }
# Line 125  int pq_requeue(pqueue *q){ Line 125  int pq_requeue(pqueue *q){
125          return PQERR;          return PQERR;
126    
127      pq_node **old_heap=q->heap;      pq_node **old_heap=q->heap;
128      if(!(q->heap=(pq_node**)realloc(q->heap,((q->size<<1)+1)*sizeof(pq_node*)))){      if(!(q->heap=(pq_node**)realloc(q->heap,((q->size+1)<<1)*sizeof(pq_node*)))){
129          q->heap=old_heap;          q->heap=old_heap;
130          return PQERR;          return PQERR;
131      }      }
132    
133      q->size<<=1;      q->size=(q->size<<1)+1;
134      int i=q->csize+1;      int i=q->csize+1;
135      for(;i<(q->size+1);i++)      for(;i<(q->size+1);i++)
136          q->heap[i]=NULL;          q->heap[i]=NULL;
# Line 231  void * pq_del_func(void *data2, pqueue * Line 231  void * pq_del_func(void *data2, pqueue *
231      int i=1;      int i=1;
232      void *data;      void *data;
233      for(;i<(pq->csize+1);i++){      for(;i<(pq->csize+1);i++){
234          if(pq->heap[i] && pq->equals_f((void *)pq->heap[i],data2)){          if(pq->equals_f((void *)pq->heap[i],data2)){
235              data=(void *)pq->heap[i];              data=(void *)pq->heap[i];
236    
237              pq->heap[i]=pq->heap[pq->csize];              pq->heap[i]=pq->heap[pq->csize];
# Line 254  void * pq_get_func(void *data2, pqueue * Line 254  void * pq_get_func(void *data2, pqueue *
254    
255      int i=1;      int i=1;
256      for(;i<(pq->csize+1);i++){      for(;i<(pq->csize+1);i++){
257          if(pq->heap[i] && pq->equals_f((void *)pq->heap[i],data2))          if(pq->equals_f((void *)pq->heap[i],data2))
258              return (void *)pq->heap[i];              return (void *)pq->heap[i];
259      }      }
260      return NULL;      return NULL;

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26