Index: src/OFKernelEventObserver_select.m ================================================================== --- src/OFKernelEventObserver_select.m +++ src/OFKernelEventObserver_select.m @@ -77,11 +77,11 @@ #endif if (fd > _maxFD) _maxFD = fd; - FD_SET(fd, &_readFDs); + FD_SET((of_socket_t)fd, &_readFDs); } - (void)OF_addObjectForWriting: (id )object { int fd = [object fileDescriptorForWriting]; @@ -95,11 +95,11 @@ #endif if (fd > _maxFD) _maxFD = fd; - FD_SET(fd, &_writeFDs); + FD_SET((of_socket_t)fd, &_writeFDs); } - (void)OF_removeObjectForReading: (id )object { /* TODO: Adjust _maxFD */ @@ -112,11 +112,11 @@ #ifndef OF_WINDOWS if (fd >= FD_SETSIZE) @throw [OFOutOfRangeException exception]; #endif - FD_CLR(fd, &_readFDs); + FD_CLR((of_socket_t)fd, &_readFDs); } - (void)OF_removeObjectForWriting: (id )object { /* TODO: Adjust _maxFD */ @@ -129,11 +129,11 @@ #ifndef OF_WINDOWS if (fd >= FD_SETSIZE) @throw [OFOutOfRangeException exception]; #endif - FD_CLR(fd, &_writeFDs); + FD_CLR((of_socket_t)fd, &_writeFDs); } - (void)observeForTimeInterval: (of_time_interval_t)timeInterval { id const *objects; @@ -192,11 +192,12 @@ for (size_t i = 0; i < count; i++) { void *pool = objc_autoreleasePoolPush(); int fd = [objects[i] fileDescriptorForReading]; - if (FD_ISSET(fd, &readFDs) && [_delegate respondsToSelector: + if (FD_ISSET((of_socket_t)fd, &readFDs) && + [_delegate respondsToSelector: @selector(objectIsReadyForReading:)]) [_delegate objectIsReadyForReading: objects[i]]; objc_autoreleasePoolPop(pool); } @@ -206,13 +207,14 @@ for (size_t i = 0; i < count; i++) { void *pool = objc_autoreleasePoolPush(); int fd = [objects[i] fileDescriptorForWriting]; - if (FD_ISSET(fd, &writeFDs) && [_delegate respondsToSelector: + if (FD_ISSET((of_socket_t)fd, &writeFDs) && + [_delegate respondsToSelector: @selector(objectIsReadyForWriting:)]) [_delegate objectIsReadyForWriting: objects[i]]; objc_autoreleasePoolPop(pool); } } @end