Skip to content

Commit 82f3236

Browse files
committed
Linux build fixes for Data and DataProtocol correcting nullability and inline/objc decorators
1 parent b1de8e7 commit 82f3236

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

Foundation/Data.swift

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import Darwin
1818
import Glibc
1919

2020
@inlinable // This is @inlinable as trivially computable.
21-
fileprivate func malloc_good_size(_ size: Int) -> Int {
21+
internal func malloc_good_size(_ size: Int) -> Int {
2222
return size
2323
}
2424

@@ -767,7 +767,7 @@ public struct Data : ReferenceConvertible, Equatable, Hashable, RandomAccessColl
767767
}
768768

769769
let _ = Swift.withUnsafeMutableBytes(of: &bytes) { rawBuffer in
770-
memset(rawBuffer.baseAddress?.advanced(by: range.lowerBound), 0, range.upperBound - range.lowerBound)
770+
memset(rawBuffer.baseAddress!.advanced(by: range.lowerBound), 0, range.upperBound - range.lowerBound)
771771
}
772772
}
773773

@@ -786,10 +786,10 @@ public struct Data : ReferenceConvertible, Equatable, Hashable, RandomAccessColl
786786
let start = subrange.lowerBound
787787
let length = subrange.upperBound - subrange.lowerBound
788788
if shift != 0 {
789-
memmove(mutableBytes.baseAddress?.advanced(by: start + replacementLength), mutableBytes.baseAddress?.advanced(by: start + length), currentLength - start - length)
789+
memmove(mutableBytes.baseAddress!.advanced(by: start + replacementLength), mutableBytes.baseAddress!.advanced(by: start + length), currentLength - start - length)
790790
}
791791
if replacementLength != 0 {
792-
memmove(mutableBytes.baseAddress?.advanced(by: start), replacementBytes!, replacementLength)
792+
memmove(mutableBytes.baseAddress!.advanced(by: start), replacementBytes!, replacementLength)
793793
}
794794
}
795795
count = resultingLength
@@ -1930,8 +1930,10 @@ public struct Data : ReferenceConvertible, Equatable, Hashable, RandomAccessColl
19301930
@inlinable // This is @inlinable as a convenience initializer.
19311931
public init(repeating repeatedValue: UInt8, count: Int) {
19321932
self.init(count: count)
1933-
withUnsafeMutableBytes { (buffer: UnsafeMutableRawBufferPointer) -> Void in
1934-
memset(buffer.baseAddress, Int32(repeatedValue), buffer.count)
1933+
if count > 0 {
1934+
withUnsafeMutableBytes { (buffer: UnsafeMutableRawBufferPointer) -> Void in
1935+
memset(buffer.baseAddress!, Int32(repeatedValue), buffer.count)
1936+
}
19351937
}
19361938
}
19371939

@@ -2606,9 +2608,10 @@ public struct Data : ReferenceConvertible, Equatable, Hashable, RandomAccessColl
26062608
public func _copyContents(initializing buffer: UnsafeMutableBufferPointer<UInt8>) -> (Iterator, UnsafeMutableBufferPointer<UInt8>.Index) {
26072609
guard !isEmpty else { return (makeIterator(), buffer.startIndex) }
26082610
let cnt = Swift.min(count, buffer.count)
2609-
2610-
withUnsafeBytes { (bytes: UnsafeRawBufferPointer) in
2611-
_ = memcpy(UnsafeMutableRawPointer(buffer.baseAddress), bytes.baseAddress, cnt)
2611+
if cnt > 0 {
2612+
withUnsafeBytes { (bytes: UnsafeRawBufferPointer) in
2613+
_ = memcpy(UnsafeMutableRawPointer(buffer.baseAddress!), bytes.baseAddress!, cnt)
2614+
}
26122615
}
26132616

26142617
return (Iterator(self, at: startIndex + cnt), buffer.index(buffer.startIndex, offsetBy: cnt))

Foundation/DataProtocol.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ extension DataProtocol where Self : ContiguousBytes {
209209
withUnsafeBytes { fullBuffer in
210210
let adv = distance(from: startIndex, to: concreteRange.lowerBound)
211211
let delta = distance(from: concreteRange.lowerBound, to: concreteRange.upperBound)
212-
memcpy(ptr.baseAddress!, fullBuffer.baseAddress?.advanced(by: adv), delta)
212+
memcpy(ptr.baseAddress!, fullBuffer.baseAddress!.advanced(by: adv), delta)
213213
}
214214
}
215215
}

0 commit comments

Comments
 (0)