mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Change the type of _stdlib_fd_set._data to [UInt] so that it also works correctly for 64-bit big-endian systems.
This commit is contained in:
@@ -38,13 +38,13 @@ public var _stdlib_FD_SETSIZE: CInt {
|
||||
}
|
||||
|
||||
public struct _stdlib_fd_set {
|
||||
var _data: [UInt32]
|
||||
var _data: [UInt]
|
||||
static var _wordBits: Int {
|
||||
return sizeof(UInt32) * 8
|
||||
return sizeof(UInt) * 8
|
||||
}
|
||||
|
||||
public init() {
|
||||
_data = [UInt32](
|
||||
_data = [UInt](
|
||||
repeating: 0,
|
||||
count: Int(_stdlib_FD_SETSIZE) / _stdlib_fd_set._wordBits)
|
||||
}
|
||||
@@ -53,20 +53,20 @@ public struct _stdlib_fd_set {
|
||||
let fdInt = Int(fd)
|
||||
return (
|
||||
_data[fdInt / _stdlib_fd_set._wordBits] &
|
||||
UInt32(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
UInt(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
) != 0
|
||||
}
|
||||
|
||||
public mutating func set(_ fd: CInt) {
|
||||
let fdInt = Int(fd)
|
||||
_data[fdInt / _stdlib_fd_set._wordBits] |=
|
||||
UInt32(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
UInt(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
}
|
||||
|
||||
public mutating func clear(_ fd: CInt) {
|
||||
let fdInt = Int(fd)
|
||||
_data[fdInt / _stdlib_fd_set._wordBits] &=
|
||||
~UInt32(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
~UInt(1 << (fdInt % _stdlib_fd_set._wordBits))
|
||||
}
|
||||
|
||||
public mutating func zero() {
|
||||
|
||||
Reference in New Issue
Block a user