Differences From Artifact [9e5eb723f2]:
- File
src/OFURL.m
— part of check-in
[f3db074478]
at
2011-09-17 19:18:09
on branch trunk
— Make hashes independant of endianess in OF{Float,Double}{Vector,Matrix}.
Also removes unnecessary OF_HASH_ADD_INT* macros (except
OF_HASH_ADD_INT32 which was often used to hash hashes and is now called
OF_HASH_ADD_HASH). (user: js, size: 11154) [annotate] [blame] [check-ins using]
To Artifact [d2a8a715d5]:
- File
src/OFURL.m
— part of check-in
[e1e7ffa903]
at
2011-09-22 23:25:42
on branch trunk
— Exceptions are now autoreleased.
This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. (user: js, size: 11202) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
97 98 99 100 101 102 103 | self = [super init]; @try { char *tmp, *tmp2; if ((UTF8String2 = strdup([string UTF8String])) == NULL) @throw [OFOutOfMemoryException | | | | > | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | self = [super init]; @try { char *tmp, *tmp2; if ((UTF8String2 = strdup([string UTF8String])) == NULL) @throw [OFOutOfMemoryException exceptionWithClass: isa requestedSize: [string UTF8StringLength]]; UTF8String = UTF8String2; if (!strncmp(UTF8String, "file://", 7)) { scheme = @"file"; path = [[OFString alloc] initWithUTF8String: UTF8String + 7]; return self; } else if (!strncmp(UTF8String, "http://", 7)) { scheme = @"http"; UTF8String += 7; } else if (!strncmp(UTF8String, "https://", 8)) { scheme = @"https"; UTF8String += 8; } else @throw [OFInvalidFormatException exceptionWithClass: isa]; if ((tmp = strchr(UTF8String, '/')) != NULL) { *tmp = '\0'; tmp++; } if ((tmp2 = strchr(UTF8String, '@')) != NULL) { |
︙ | ︙ | |||
157 158 159 160 161 162 163 | initWithUTF8String: UTF8String]; pool = [[OFAutoreleasePool alloc] init]; portString = [OFString stringWithUTF8String: tmp2]; if ([portString decimalValue] > 65535) @throw [OFInvalidFormatException | | | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | initWithUTF8String: UTF8String]; pool = [[OFAutoreleasePool alloc] init]; portString = [OFString stringWithUTF8String: tmp2]; if ([portString decimalValue] > 65535) @throw [OFInvalidFormatException exceptionWithClass: isa]; port = [portString decimalValue]; [pool release]; } else { host = [[OFString alloc] initWithUTF8String: UTF8String]; |
︙ | ︙ | |||
231 232 233 234 235 236 237 | host = [URL->host copy]; port = URL->port; user = [URL->user copy]; password = [URL->password copy]; if ((UTF8String2 = strdup([string UTF8String])) == NULL) @throw [OFOutOfMemoryException | | | | 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | host = [URL->host copy]; port = URL->port; user = [URL->user copy]; password = [URL->password copy]; if ((UTF8String2 = strdup([string UTF8String])) == NULL) @throw [OFOutOfMemoryException exceptionWithClass: isa requestedSize: [string UTF8StringLength]]; UTF8String = UTF8String2; if ((tmp = strchr(UTF8String, '#')) != NULL) { *tmp = '\0'; fragment = [[OFString alloc] initWithUTF8String: tmp + 1]; |
︙ | ︙ | |||
292 293 294 295 296 297 298 | - initWithSerialization: (OFXMLElement*)element { @try { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; if (![[element name] isEqual: [self className]] || ![[element namespace] isEqual: OF_SERIALIZATION_NS]) | | > | | 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | - initWithSerialization: (OFXMLElement*)element { @try { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; if (![[element name] isEqual: [self className]] || ![[element namespace] isEqual: OF_SERIALIZATION_NS]) @throw [OFInvalidArgumentException exceptionWithClass: isa selector: _cmd]; self = [self initWithString: [element stringValue]]; [pool release]; } @catch (id e) { [self release]; @throw e; |
︙ | ︙ | |||
407 408 409 410 411 412 413 | { OF_GETTER(scheme, YES) } - (void)setScheme: (OFString*)scheme_ { if (![scheme_ isEqual: @"http"] && ![scheme_ isEqual: @"https"]) | | | | 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 | { OF_GETTER(scheme, YES) } - (void)setScheme: (OFString*)scheme_ { if (![scheme_ isEqual: @"http"] && ![scheme_ isEqual: @"https"]) @throw [OFInvalidArgumentException exceptionWithClass: isa selector: _cmd]; OF_SETTER(scheme, scheme_, YES, YES) } - (OFString*)host { OF_GETTER(host, YES) |
︙ | ︙ | |||
462 463 464 465 466 467 468 | OF_GETTER(path, YES) } - (void)setPath: (OFString*)path_ { if (([scheme isEqual: @"http"] || [scheme isEqual: @"https"]) && ![path_ hasPrefix: @"/"]) | | | | 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 | OF_GETTER(path, YES) } - (void)setPath: (OFString*)path_ { if (([scheme isEqual: @"http"] || [scheme isEqual: @"https"]) && ![path_ hasPrefix: @"/"]) @throw [OFInvalidArgumentException exceptionWithClass: isa selector: _cmd]; OF_SETTER(path, path_, YES, YES) } - (OFString*)parameters { OF_GETTER(parameters, YES) |
︙ | ︙ |