Commit Graph

24 Commits

Author SHA1 Message Date
Itai Ferber
6171d68bfa Merge pull request #25065 from ikesyo/fix-dataprotocol-lastrange
Fix `DataProtocol.lastRange(of:)` (and cherry-pick Data.swift changes from swift-5.0-branch)
2019-05-28 09:54:16 -07:00
Sho Ikeda
a35c9f0c60 [gardening] Use Collection.isEmpty over Collection.count 2019-05-26 09:35:20 +09:00
swift-ci
b088acb66e Merge pull request #24767 from ikesyo/remove-unnecessary-breaks 2019-05-25 16:15:06 -07:00
Sho Ikeda
55b300f852 Fix DataProtocol.lastRange(of:) (and cherry-pick Data.swift changes from swift-5.0-branch)
`DataProtocol.lastRange(of:)` is correct in swift-5.0-branch, but not in master and swift-5.1-branch.
2019-05-26 07:26:33 +09:00
Sho Ikeda
6eead16283 [gardening] Remove unnecessary breaks 2019-05-15 00:54:33 +09:00
Philippe Hausler
02c55f372c Avoid O(n) copies when bridgable NSData objects are available 2019-04-04 09:33:17 -07:00
Itai Ferber
7ce6f840d1 Fix off-by-one when initializing Data with discontiguous, underestimated sequences 2019-03-12 14:26:58 -07:00
Mike Ash
a2cd889ab3 [Stdlib] Fix botched merge conflict resolution in Data.swift. 2019-01-15 13:43:20 -05:00
Mike Ash
fa5888fb3f [Stdlib][Overlays] Rename various classes to avoid conflicting ObjC names.
Old Swift and new Swift runtimes and overlays need to coexist in the same process. This means there must not be any classes which have the same ObjC runtime name in old and new, because the ObjC runtime doesn't like name collisions.

When possible without breaking source compatibility, classes were renamed in Swift, which results in a different ObjC name.

Public classes were renamed only on the ObjC side using the @_objcRuntimeName attribute.

This is similar to the work done in pull request #19295. That only renamed @objc classes. This renames all of the others, since even pure Swift classes still get an ObjC name.

rdar://problem/46646438
2019-01-15 12:21:20 -05:00
Itai Ferber
70f5e4ce2d Remove unnecessary @inlinable annotations on hash(into:) 2019-01-11 11:09:12 -08:00
Itai Ferber
076effdf5d Correct buffering in .init<S> and .append<S> and add unit test 2019-01-11 10:14:27 -08:00
Itai Ferber
1b5c0189b1 Account for Int vs. UInt8 in InlineData.hash(into:) 2019-01-10 15:50:56 -08:00
Itai Ferber
bb5ab742d5 Add buffering to worst-case scenarios in Data.init<S>/.append<S> 2019-01-10 15:50:32 -08:00
Itai Ferber
e49da4dc49 Refine inlinability of Data and Data.Iterator 2019-01-09 15:02:46 -08:00
Itai Ferber
1de88a3916 Refine inlinability of _Representation 2019-01-09 14:48:47 -08:00
Itai Ferber
123b06787d Refine inlinability of LargeSlice and RangeReference 2019-01-09 14:40:48 -08:00
Itai Ferber
03dd2a365a Annotate inlinability of InlineSlice 2019-01-09 14:34:08 -08:00
Itai Ferber
b1e4c56d73 Refine inlinability of InlineData 2019-01-09 14:23:58 -08:00
Itai Ferber
6482c34077 Refine inlinability of _DataStorage 2019-01-09 14:18:33 -08:00
Itai Ferber
1d00e3c9b7 Migrate Data from hashValue to hash(into:) 2019-01-09 14:00:20 -08:00
Philippe Hausler
9e9a791e94 Revert "[Foundation] Fallback to presuming 32-bit platforms if we dont explicitly know that it is 64 bit; this allows for better portability (#21290)"
This reverts commit 77c7a69ae2.
2018-12-13 15:19:57 -08:00
Philippe Hausler
77c7a69ae2 [Foundation] Fallback to presuming 32-bit platforms if we dont explicitly know that it is 64 bit; this allows for better portability (#21290) 2018-12-13 12:39:52 -08:00
Philippe Hausler
d030354320 Initial draft of DataProtocol ContiguousCollection and new inline Data 2018-12-11 11:19:36 -08:00
Saleem Abdulrasool
41d9c2cc59 stdlib: restructure for OS family layout of SDK overlay
The SDK directory is now confusing as the Windows target also has a SDK
overlay.  In order to make this more uniform, move the SDK directory to
Darwin which covers the fact that this covers the XNU family of OSes.
The Windows directory contains the SDK overlay for the Windows target.
2018-12-06 11:32:05 -08:00