Re: [Newbies] reimplementing #= and #hash

2007-09-23 Thread Ching de la Serna
Hi Janko, Thanks for your help. Your code makes it clear. Ching On 9/23/07, Janko Mivšek <[EMAIL PROTECTED]> wrote: > > Hi Ching, > > #= is test for equality while #== is test for identity. What do you > probably want is to override #= to compare two PoolQueues if they are > equal or not. But wh

Re: [Newbies] reimplementing #= and #hash

2007-09-23 Thread Ching de la Serna
Hi Oscar, Thanks for the help. I tried bitAnd: and it seems to work. I will try bitXor: too. Thanks Ching On 9/23/07, Oscar Nierstrasz <[EMAIL PROTECTED]> wrote: > > > Hi Ching, > > #hash should be reimplemented to make sure that objects considered to > be equal will end up in the same hash buck

Re: [Newbies] reimplementing #= and #hash

2007-09-23 Thread Janko Mivšek
Hi Ching, #= is test for equality while #== is test for identity. What do you probably want is to override #= to compare two PoolQueues if they are equal or not. But what "equal" means in your case is on you to define. Maybe something like this: PoolQueue>>= anotherPoolQueue ^(self member

Re: [Newbies] reimplementing #= and #hash

2007-09-23 Thread Oscar Nierstrasz
Hi Ching, #hash should be reimplemented to make sure that objects considered to be equal will end up in the same hash bucket. The usual trick is to take a bitXor of the hashes of the instance variables: PoolQueue>>hash ^ member hash bitXor: processor hash Hope that helps. Oscar

[Newbies] reimplementing #= and #hash

2007-09-23 Thread Ching de la Serna
Hi List, I have a Class PoolQueue which has instvars 'member' and 'processor'. I find that an instance of PoolQueue when placed in an OrderedCollection can no longer be considered equal. I suppose I have to reimplement #= and #hash to allow PoolQueue instances to be compared. My problem: how do I