File tree 2 files changed +8
-3
lines changed 2 files changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,7 @@ func setProperties(typeInfo: TypeInfo,
83
83
84
84
let valuePointer = pointer. advanced ( by: property. offset)
85
85
let sets = setters ( type: property. type)
86
- sets. set ( value: value, pointer: valuePointer)
86
+ sets. set ( value: value, pointer: valuePointer, initialize : true )
87
87
}
88
88
}
89
89
Original file line number Diff line number Diff line change @@ -34,9 +34,14 @@ func getters(type: Any.Type) -> Getters.Type {
34
34
35
35
protocol Setters { }
36
36
extension Setters {
37
- static func set( value: Any , pointer: UnsafeMutableRawPointer ) {
37
+ static func set( value: Any , pointer: UnsafeMutableRawPointer , initialize : Bool = false ) {
38
38
if let value = value as? Self {
39
- pointer. assumingMemoryBound ( to: self ) . initialize ( to: value)
39
+ let boundPointer = pointer. assumingMemoryBound ( to: self ) ;
40
+ if initialize {
41
+ boundPointer. initialize ( to: value)
42
+ } else {
43
+ boundPointer. pointee = value
44
+ }
40
45
}
41
46
}
42
47
}
You can’t perform that action at this time.
0 commit comments