mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 20:01:11 +00:00
finish implementng hash methods for NSColor subclasses
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@28811 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
e1d905517e
commit
417d856f20
1 changed files with 45 additions and 0 deletions
|
@ -2361,6 +2361,27 @@ static NSRecursiveLock *namedColorLock = nil;
|
|||
*alpha = _alpha_component;
|
||||
}
|
||||
|
||||
- (NSUInteger) hash
|
||||
{
|
||||
union {
|
||||
uint8_t bytes[sizeof(float)*5];
|
||||
float floats[5];
|
||||
} u;
|
||||
NSUInteger h = 0;
|
||||
unsigned i;
|
||||
|
||||
u.floats[0] = _cyan_component;
|
||||
u.floats[1] = _magenta_component;
|
||||
u.floats[2] = _yellow_component;
|
||||
u.floats[3] = _black_component;
|
||||
u.floats[4] = _alpha_component;
|
||||
for (i = 0; i < sizeof(u); i++)
|
||||
{
|
||||
h = (h << 5) + h + u.bytes[i];
|
||||
}
|
||||
return h;
|
||||
}
|
||||
|
||||
- (BOOL) isEqual: (id)other
|
||||
{
|
||||
if (other == self)
|
||||
|
@ -2600,6 +2621,25 @@ static NSRecursiveLock *namedColorLock = nil;
|
|||
*alpha = _alpha_component;
|
||||
}
|
||||
|
||||
- (NSUInteger) hash
|
||||
{
|
||||
union {
|
||||
uint8_t bytes[sizeof(float)*3];
|
||||
float floats[3];
|
||||
} u;
|
||||
NSUInteger h = 0;
|
||||
unsigned i;
|
||||
|
||||
u.floats[0] = _red_component;
|
||||
u.floats[1] = _green_component;
|
||||
u.floats[2] = _blue_component;
|
||||
for (i = 0; i < sizeof(u); i++)
|
||||
{
|
||||
h = (h << 5) + h + u.bytes[i];
|
||||
}
|
||||
return h;
|
||||
}
|
||||
|
||||
- (BOOL) isEqual: (id)other
|
||||
{
|
||||
if (other == self)
|
||||
|
@ -3104,6 +3144,11 @@ static NSRecursiveLock *namedColorLock = nil;
|
|||
return desc;
|
||||
}
|
||||
|
||||
- (NSUInteger) hash
|
||||
{
|
||||
return [_pattern hash];
|
||||
}
|
||||
|
||||
- (BOOL) isEqual: (id)other
|
||||
{
|
||||
if (other == self)
|
||||
|
|
Loading…
Reference in a new issue