@@ -74,16 +74,10 @@ # endif #endif } @end -OF_DIRECT_MEMBERS -@interface OFRunLoop () -- (OFRunLoopState *)of_stateForMode: (of_run_loop_mode_t)mode - create: (bool)create; -@end - #ifdef OF_HAVE_SOCKETS @interface OFRunLoopQueueItem: OFObject { @public id _delegate; @@ -427,12 +421,11 @@ { size_t length; id exception = nil; @try { - length = [object readIntoBuffer: _buffer - length: _length]; + length = [object readIntoBuffer: _buffer length: _length]; } @catch (id e) { length = 0; exception = e; } @@ -736,13 +729,11 @@ selector: @selector(of_socketDidConnect: exception:) object: object object: exception repeats: false]; - - [runLoop addTimer: timer - forMode: runLoop.currentMode]; + [runLoop addTimer: timer forMode: runLoop.currentMode]; } return false; } @end @@ -907,12 +898,11 @@ { size_t length; id exception = nil; @try { - length = [object receiveIntoBuffer: _buffer - length: _length]; + length = [object receiveIntoBuffer: _buffer length: _length]; } @catch (id e) { length = 0; exception = e; } @@ -1028,12 +1018,11 @@ #ifdef OF_HAVE_SOCKETS # define NEW_READ(type, object, mode) \ void *pool = objc_autoreleasePoolPush(); \ OFRunLoop *runLoop = [self currentRunLoop]; \ - OFRunLoopState *state = [runLoop of_stateForMode: mode \ - create: true]; \ + OFRunLoopState *state = stateForMode(runLoop, mode, true); \ OFList *queue = [state->_readQueues objectForKey: object]; \ type *queueItem; \ \ if (queue == nil) { \ queue = [OFList list]; \ @@ -1046,12 +1035,11 @@ \ queueItem = [[[type alloc] init] autorelease]; # define NEW_WRITE(type, object, mode) \ void *pool = objc_autoreleasePoolPush(); \ OFRunLoop *runLoop = [self currentRunLoop]; \ - OFRunLoopState *state = [runLoop of_stateForMode: mode \ - create: true]; \ + OFRunLoopState *state = stateForMode(runLoop, mode, true); \ OFList *queue = [state->_writeQueues objectForKey: object]; \ type *queueItem; \ \ if (queue == nil) { \ queue = [OFList list]; \ @@ -1291,12 +1279,11 @@ + (void)of_cancelAsyncRequestsForObject: (id)object mode: (of_run_loop_mode_t)mode { void *pool = objc_autoreleasePoolPush(); OFRunLoop *runLoop = [self currentRunLoop]; - OFRunLoopState *state = [runLoop of_stateForMode: mode - create: false]; + OFRunLoopState *state = stateForMode(runLoop, mode, false); OFList *queue; if (state == nil) return; @@ -1366,49 +1353,46 @@ #endif [super dealloc]; } -- (OFRunLoopState *)of_stateForMode: (of_run_loop_mode_t)mode - create: (bool)create +static OFRunLoopState * +stateForMode(OFRunLoop *self, of_run_loop_mode_t mode, bool create) { OFRunLoopState *state; #ifdef OF_HAVE_THREADS - [_statesMutex lock]; + [self->_statesMutex lock]; @try { #endif - state = [_states objectForKey: mode]; + state = [self->_states objectForKey: mode]; if (create && state == nil) { state = [[OFRunLoopState alloc] init]; @try { - [_states setObject: state forKey: mode]; + [self->_states setObject: state forKey: mode]; } @finally { [state release]; } } #ifdef OF_HAVE_THREADS } @finally { - [_statesMutex unlock]; + [self->_statesMutex unlock]; } #endif return state; } - (void)addTimer: (OFTimer *)timer { - [self addTimer: timer - forMode: of_run_loop_mode_default]; + [self addTimer: timer forMode: of_run_loop_mode_default]; } -- (void)addTimer: (OFTimer *)timer - forMode: (of_run_loop_mode_t)mode +- (void)addTimer: (OFTimer *)timer forMode: (of_run_loop_mode_t)mode { - OFRunLoopState *state = [self of_stateForMode: mode - create: true]; + OFRunLoopState *state = stateForMode(self, mode, true); #ifdef OF_HAVE_THREADS [state->_timersQueueMutex lock]; @try { #endif @@ -1417,25 +1401,22 @@ } @finally { [state->_timersQueueMutex unlock]; } #endif - [timer of_setInRunLoop: self - mode: mode]; + [timer of_setInRunLoop: self mode: mode]; #if defined(OF_HAVE_SOCKETS) [state->_kernelEventObserver cancel]; #elif defined(OF_HAVE_THREADS) [state->_condition signal]; #endif } -- (void)of_removeTimer: (OFTimer *)timer - forMode: (of_run_loop_mode_t)mode +- (void)of_removeTimer: (OFTimer *)timer forMode: (of_run_loop_mode_t)mode { - OFRunLoopState *state = [self of_stateForMode: mode - create: false]; + OFRunLoopState *state = stateForMode(self, mode, false); if (state == nil) return; #ifdef OF_HAVE_THREADS @@ -1457,13 +1438,11 @@ } #endif } #ifdef OF_AMIGAOS -- (void)addExecSignal: (ULONG)signal - target: (id)target - selector: (SEL)selector +- (void)addExecSignal: (ULONG)signal target: (id)target selector: (SEL)selector { [self addExecSignal: signal forMode: of_run_loop_mode_default target: target selector: selector]; @@ -1472,12 +1451,11 @@ - (void)addExecSignal: (ULONG)signal forMode: (of_run_loop_mode_t)mode target: (id)target selector: (SEL)selector { - OFRunLoopState *state = [self of_stateForMode: mode - create: true]; + OFRunLoopState *state = stateForMode(self, mode, true); # ifdef OF_HAVE_THREADS [state->_execSignalsMutex lock]; @try { # endif @@ -1516,12 +1494,11 @@ - (void)removeExecSignal: (ULONG)signal forMode: (of_run_loop_mode_t)mode target: (id)target selector: (SEL)selector { - OFRunLoopState *state = [self of_stateForMode: mode - create: false]; + OFRunLoopState *state = stateForMode(self, mode, false); if (state == nil) return; # ifdef OF_HAVE_THREADS @@ -1577,21 +1554,18 @@ { _stop = false; while (!_stop && (deadline == nil || deadline.timeIntervalSinceNow >= 0)) - [self runMode: of_run_loop_mode_default - beforeDate: deadline]; + [self runMode: of_run_loop_mode_default beforeDate: deadline]; } -- (void)runMode: (of_run_loop_mode_t)mode - beforeDate: (OFDate *)deadline +- (void)runMode: (of_run_loop_mode_t)mode beforeDate: (OFDate *)deadline { void *pool = objc_autoreleasePoolPush(); of_run_loop_mode_t previousMode = _currentMode; - OFRunLoopState *state = [self of_stateForMode: mode - create: false]; + OFRunLoopState *state = stateForMode(self, mode, false); if (state == nil) return; _currentMode = mode; @@ -1617,12 +1591,11 @@ retain] autorelease]; [state->_timersQueue removeListObject: listObject]; - [timer of_setInRunLoop: nil - mode: nil]; + [timer of_setInRunLoop: nil mode: nil]; } else break; #ifdef OF_HAVE_THREADS } @finally { [state->_timersQueueMutex unlock]; @@ -1721,12 +1694,12 @@ } } - (void)stop { - OFRunLoopState *state = [self of_stateForMode: of_run_loop_mode_default - create: false]; + OFRunLoopState *state = + stateForMode(self, of_run_loop_mode_default, false); _stop = true; if (state == nil) return;