Skip to content
  • Milian Wolff's avatar
    Fix item repo issues with hash clashes and monster buckets. · b09d35d9
    Milian Wolff authored
    1) Do not alter bucketPtr before freeing it up.
    
    Before, we deleted an item and then sometimes changed the bucketPtr
    when there where clashing items. If the new bucketPtr was then a
    monster, we assumed its item was deleted and assert that. As we
    deleted the item in a different bucket, the assertion did not hold
    and we crashed...
    
    The assertion happens when a normal item is deleted and another
    monster item exists with the same hash in a different bucket.
    
    2) Unset next bucket for hash, before deconverting it.
    
    This is probably just a workaround, as a comment above hints at
    a general problem here, that this should be done more regularly.
    Calling setNextBucketForHash(hash, 0) always though leads to other,
    new problems and assertions. So I'll leave it as is for now.
    
    The assertion happens when a monster item is deleted and another
    item exists with the same hash in a different bucket.
    
    BUG: 272408
    b09d35d9