Differences From Artifact [ff677666a5]:
- File
src/OFArray.m
— part of check-in
[4e59d2692f]
at
2014-04-26 00:40:17
on branch trunk
— Fix a few issues on LLP64 and Win64
LLP64 was mostly fast enumeration using an unsigned long for the state,
which can't store a pointer or a size_t on LLP64. This is now solved by
either throwing an OFOutOfRangeException if the value of the size_t is
bigger than ULONG_MAX or storing the pointer in the extra field (copied
using memcpy, as it's an array of unsigned long, which again would be
too small to store a pointer).Win64 was mostly Microsoft not being able to decide whether a length is
a size_t, a DWORD, an int or an unsigned int (thus the different types
in places that seem to be almost the same). But since that would not be
confusing enough, a file descriptor is an int if it's for a file, but a
long long if it is for a socket. But of course, for ReadFile and friends
it's a DWORD instead of an int then. (user: js, size: 17849) [annotate] [blame] [check-ins using]
To Artifact [1814e666e5]:
- File
src/OFArray.m
— part of check-in
[68d32a92c1]
at
2014-06-16 15:06:26
on branch trunk
— Make return type of -[OFArray objects] const
After all, this might (and does for OFArray_adjacent!) return an
internal representation that must not be changed, so changes should be
prevented at compile-time. (user: js, size: 17885) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
239 240 241 242 243 244 245 |
{
size_t i;
for (i = 0; i < range.length; i++)
buffer[i] = [self objectAtIndex: range.location + i];
}
| | | 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
{
size_t i;
for (i = 0; i < range.length; i++)
buffer[i] = [self objectAtIndex: range.location + i];
}
- (id const*)objects
{
OFObject *container;
size_t count;
id *buffer;
container = [[[OFObject alloc] init] autorelease];
count = [self count];
|
| ︙ | ︙ | |||
394 395 396 397 398 399 400 |
- (OFString*)componentsJoinedByString: (OFString*)separator
usingSelector: (SEL)selector
options: (int)options
{
void *pool;
OFMutableString *ret;
| | | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 |
- (OFString*)componentsJoinedByString: (OFString*)separator
usingSelector: (SEL)selector
options: (int)options
{
void *pool;
OFMutableString *ret;
id const *objects;
size_t i, count;
if (separator == nil)
@throw [OFInvalidArgumentException exception];
count = [self count];
|
| ︙ | ︙ | |||
472 473 474 475 476 477 478 |
return false;
return true;
}
- (uint32_t)hash
{
| | | 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 |
return false;
return true;
}
- (uint32_t)hash
{
id const *objects = [self objects];
size_t i, count = [self count];
uint32_t hash;
OF_HASH_INIT(hash);
for (i = 0; i < count; i++)
OF_HASH_ADD_HASH(hash, [objects[i] hash]);
|
| ︙ | ︙ | |||
518 519 520 521 522 523 524 |
return [ret autorelease];
}
- (OFXMLElement*)XMLElementBySerializing
{
void *pool = objc_autoreleasePoolPush();
OFXMLElement *element;
| | | 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 |
return [ret autorelease];
}
- (OFXMLElement*)XMLElementBySerializing
{
void *pool = objc_autoreleasePoolPush();
OFXMLElement *element;
id <OFSerialization> const *objects = [self objects];
size_t i, count = [self count];
if ([self isKindOfClass: [OFMutableArray class]])
element = [OFXMLElement elementWithName: @"OFMutableArray"
namespace: OF_SERIALIZATION_NS];
else
element = [OFXMLElement elementWithName: @"OFArray"
|
| ︙ | ︙ | |||
672 673 674 675 676 677 678 |
objc_autoreleasePoolPop(pool);
return data;
}
- (void)makeObjectsPerformSelector: (SEL)selector
{
| | | | 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 |
objc_autoreleasePoolPop(pool);
return data;
}
- (void)makeObjectsPerformSelector: (SEL)selector
{
id const *objects = [self objects];
size_t i, count = [self count];
for (i = 0; i < count; i++)
[objects[i] performSelector: selector];
}
- (void)makeObjectsPerformSelector: (SEL)selector
withObject: (id)object
{
id const *objects = [self objects];
size_t i, count = [self count];
for (i = 0; i < count; i++)
[objects[i] performSelector: selector
withObject: object];
}
|
| ︙ | ︙ |