[swift-evolution] Proposal: Add Initializers For Converting UnsafePointers to Int and Unit

Dmitri Gribenko gribozavr at gmail.com
Wed Dec 9 15:55:46 CST 2015

On Wed, Dec 9, 2015 at 1:15 PM, Brent Royal-Gordon via swift-evolution
<swift-evolution at swift.org> wrote:
>> On the off chance you're trying to do loads from unaligned UnsafePointers, that's undefined in the current interface. You'll need to memcpy to well-aligned memory first.
> The buffer I’m accessing is UInt8, which I believe is always aligned, right?
> C:
>         typedef struct MIDIMetaEvent
>         {
>                 UInt8           metaEventType;
>                 UInt8           unused1;
>                 UInt8           unused2;
>                 UInt8           unused3;
>                 UInt32          dataLength;
>                 UInt8           data[1];
>         } MIDIMetaEvent;
> Swift:
>         public struct MIDIMetaEvent {
>             public var metaEventType: UInt8
>             public var unused1: UInt8
>             public var unused2: UInt8
>             public var unused3: UInt8
>             public var dataLength: UInt32
>             public var data: (UInt8)
>             public init()
>             public init(metaEventType: UInt8, unused1: UInt8, unused2: UInt8, unused3: UInt8, dataLength: UInt32, data: (UInt8))
>         }

FWIW, this problem looks very much like one for which we did the
CoreAudio overlay: stdlib/public/SDK/CoreAudio/CoreAudio.swift


(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/

More information about the swift-evolution mailing list