pike.git / lib / modules / ADT.pmod / Heap.pike

version» Context lines:

pike.git/lib/modules/ADT.pmod/Heap.pike:47:    }    }    break;    }   }      static int adjust_up(int elem)   {    int parent=(elem-1)/2;    +  if(!elem) return 0; +     if(values[elem] < values[parent])    {    SWAP(elem, parent);    elem=parent;    while(values[elem] < values[parent=(elem -1)/2])    {    SWAP(elem, parent);    elem=parent;    }    adjust_down(elem);    return 1;    }    return 0;   }      void push(mixed value)   {    if(num_values >= sizeof(values)) -  values+=allocate(10+sizeof(values)/16); +  values+=allocate(10+sizeof(values)/4);       values[num_values++]=value;    adjust_up(num_values-1);    verify_heap();   }      void adjust(mixed value)   {    int pos=search(values, value);    if(pos>=0)