pike.git / src / cyclic.c

version» Context lines:

pike.git/src/cyclic.c:1:   #include "global.h"   #include "cyclic.h"    - RCSID("$Id: cyclic.c,v 1.3 1998/03/28 15:35:34 grubba Exp $"); + RCSID("$Id: cyclic.c,v 1.4 2000/05/07 00:39:17 hubbe Exp $");      #define CYCLIC_HASH_SIZE 4711      CYCLIC *cyclic_hash[CYCLIC_HASH_SIZE];      static void low_unlink_cyclic(CYCLIC *c)   {    unsigned int h;    CYCLIC **p;    h=(int)c->id;
pike.git/src/cyclic.c:38:    low_unlink_cyclic(c);   }      void *begin_cyclic(CYCLIC *c,    void *id,    void *th,    void *a,    void *b)   {    unsigned int h; +  void *ret=0;    CYCLIC *p;       h=(int)id;    h*=33;    h|=(int)a;    h*=33;    h|=(int)b;    h*=33;    h|=(int)th;    h*=33;    h%=CYCLIC_HASH_SIZE;       for(p=cyclic_hash[h];p;p=p->next) -  +  {    if(a == p->a && b==p->b && id==p->id) -  return p->ret; +  { +  ret=p->ret; +  break; +  } +  }       c->ret=(void *)1;    c->a=a;    c->b=b;    c->id=id;    c->th=th;    c->next=cyclic_hash[h];    cyclic_hash[h]=c;    SET_ONERROR(c->onerr, low_unlink_cyclic, c); -  return 0; +  return ret;   }