Differences From Artifact [89d321be6d]:
- File
src/OFStreamObserver.m
— part of check-in
[008be86a16]
at
2012-03-12 11:54:22
on branch trunk
— OFArray: +[arrayWithCArray:length:] -> +[arrayWithObjects:count:].
This is required for the new array literals. (user: js, size: 8770) [annotate] [blame] [check-ins using] [more...]
To Artifact [75b0a6497b]:
- File
src/OFStreamObserver.m
— part of check-in
[f7576a66ce]
at
2012-06-06 13:47:52
on branch trunk
— Slightly change the memory management API.
Also fix a bug where OFBigDataArray would waste memory. (user: js, size: 8761) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
135 136 137 138 139 140 141 | if (getsockname(cancelFD[0], (struct sockaddr*)&cancelAddr, &cancelAddrLen)) @throw [OFInitializationFailedException exceptionWithClass: isa]; #endif maxFD = cancelFD[0]; | | | | 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | if (getsockname(cancelFD[0], (struct sockaddr*)&cancelAddr, &cancelAddrLen)) @throw [OFInitializationFailedException exceptionWithClass: isa]; #endif maxFD = cancelFD[0]; FDToStream = [self allocMemoryWithItemSize: sizeof(OFStream*) count: maxFD + 1]; FDToStream[cancelFD[0]] = nil; #ifdef OF_THREADS mutex = [[OFMutex alloc] init]; #endif } @catch (id e) { [self release]; |
︙ | ︙ | |||
308 309 310 311 312 313 314 | int fd = queueFDsCArray[i]; if ((action & QUEUE_ACTION) == QUEUE_ADD) { if (fd > maxFD) { maxFD = fd; FDToStream = [self resizeMemory: FDToStream | < | > | 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | int fd = queueFDsCArray[i]; if ((action & QUEUE_ACTION) == QUEUE_ADD) { if (fd > maxFD) { maxFD = fd; FDToStream = [self resizeMemory: FDToStream itemSize: sizeof(OFStream*) count: maxFD + 1]; } FDToStream[fd] = stream; } if ((action & QUEUE_ACTION) == QUEUE_REMOVE) { /* FIXME: Maybe downsize? */ |
︙ | ︙ | |||
350 351 352 353 354 355 356 | break; default: assert(0); } } | | | | | 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 | break; default: assert(0); } } [queue removeAllObjects]; [queueInfo removeAllItems]; [queueFDs removeAllItems]; } @finally { [mutex unlock]; } } - (void)observe { |
︙ | ︙ |