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

version» Context lines:

pike.git/lib/modules/ADT.pmod/Heap.pike:121:   //!   //! @returns   //! Returns the element handle for the value (if present in the heap),   //! and @expr{0@} (zero) otherwise.   Element adjust(mixed value)   {    int pos;    if (objectp(value) && value->is_adt_heap_element) {    pos = value->pos;    } else { -  pos = search(values->value, value); +  pos = search(values && values->value, value);    }    Element ret;    if(pos>=0) {    ret = values[pos];    if(!adjust_up(pos))    adjust_down(pos);    }    verify_heap();    return ret;   }
pike.git/lib/modules/ADT.pmod/Heap.pike:191:   //! Value to remove.   //!   //! @seealso   //! @[push()], @[pop()]   void remove(mixed value)   {    int pos;    if (objectp(value) && value->is_adt_heap_element) {    pos = value->pos;    } else { -  pos = search(values->value, value); +  pos = search(values && values->value, value);    }    if ((pos < 0) || (pos >= num_values)) return;       values[pos] = values[--num_values];    values[num_values] = 0;    if (pos < num_values) {    if (!adjust_up(pos))    adjust_down(pos);    }       if(num_values * 3 + 10 < sizeof(values))    values=values[..num_values+10];       verify_heap();   }