File tree Expand file tree Collapse file tree 2 files changed +8
-3
lines changed Expand file tree Collapse file tree 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,
8383
8484 let valuePointer = pointer. advanced ( by: property. offset)
8585 let sets = setters ( type: property. type)
86- sets. set ( value: value, pointer: valuePointer)
86+ sets. set ( value: value, pointer: valuePointer, initialize : true )
8787 }
8888}
8989
Original file line number Diff line number Diff line change @@ -34,9 +34,14 @@ func getters(type: Any.Type) -> Getters.Type {
3434
3535protocol Setters { }
3636extension Setters {
37- static func set( value: Any , pointer: UnsafeMutableRawPointer ) {
37+ static func set( value: Any , pointer: UnsafeMutableRawPointer , initialize : Bool = false ) {
3838 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+ }
4045 }
4146 }
4247}
You can’t perform that action at this time.
0 commit comments