> On 03 Nov 2016, at 23:58, Manfred Schubert via swift-users 
> <swift-users@swift.org> wrote:
> 
> Am 03.11.2016 um 15:41 schrieb Rien <r...@balancingrock.nl>:
>> 
>> Ah, but that is not the case.
>> 
>> It is important to differentiate between the “gateway” to the memory and the 
>> memory area itself.
>> Different programming languages/compilers have different approaches, but I 
>> believe that Swift allocates a struct for every gateway.
>> widePtr and narrowPtr are two different gateways. They refer to different 
>> struct's. But the struct for each of them refers to the same memory area.
> 
> When you have a look at the Swift memory model explanation
> 
> https://github.com/apple/swift-evolution/blob/master/proposals/0107-unsaferawpointer.md#memory-model-explanation
> 
> it looks like memory can only be bound to one type at a time. In particular 
> in the third example where a pointer of type T is used to initialize memory 
> which is bound to type U, it says that the behavior is undefined.
> 
> There is also withMemoryRebound(to:capacity:) which binds memory to another 
> type, executes the code that accesses the memory as this type in a closure, 
> and the restores the old type binding.
> 
> That makes me think that it is not allowed to have multiple „gateways“ to the 
> same memory area at the same time.
> 

It only means that memory access must be typed, not existence.

> 
> Manfred
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

Regards,
Rien

Site: http://balancingrock.nl
Blog: http://swiftrien.blogspot.com
Github: http://github.com/Swiftrien
Project: http://swiftfire.nl




_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to