keyedmutexd のハッシュ関数

xor 取るべきところが or になってるし、しかもループも壊れてないか? このひどさは異常。探索を速くするためにしか使ってないからバグとして顕在化はしないんだけどorz

INLINE int key2i(const char* _key)
{
  const int* key = (void*)(_key + KEY_SIZE);
  int ikey = 0;
  
  do {
    ikey |= *--key;
  } while (key == (void*)_key);
  
  return ikey & CS_IKEY_MASK;
}

http://search.cpan.org/src/KAZUHO/KeyedMutex-0.04/keyedmutexd/keyedmutexd.c

PS. 問題を修正した KeyedMutex 0.06 を CPAN にアップロードしました。