164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
}
- (bool)isEqual: (id)object
{
const char *objCType;
size_t size;
void *value, *otherValue;
if (object == self)
return true;
if (![object isKindOfClass: [OFValue class]])
return false;
|
>
|
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
}
- (bool)isEqual: (id)object
{
const char *objCType;
size_t size;
void *value, *otherValue;
bool ret;
if (object == self)
return true;
if (![object isKindOfClass: [OFValue class]])
return false;
|
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
@try {
[self getValue: value
size: size];
[object getValue: otherValue
size: size];
return (memcmp(value, otherValue, size) == 0);
} @finally {
free(value);
free(otherValue);
}
}
- (uint32_t)hash
{
size_t size = of_sizeof_type_encoding(self.objCType);
unsigned char *value;
uint32_t hash;
|
|
>
>
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
@try {
[self getValue: value
size: size];
[object getValue: otherValue
size: size];
ret = (memcmp(value, otherValue, size) == 0);
} @finally {
free(value);
free(otherValue);
}
return ret;
}
- (uint32_t)hash
{
size_t size = of_sizeof_type_encoding(self.objCType);
unsigned char *value;
uint32_t hash;
|