@@ -286,12 +286,16 @@ open class NSAffineTransform : NSObject, NSCopying, NSSecureCoding {
286
286
preconditionFailure ( " Unkeyed coding is unsupported. " )
287
287
}
288
288
289
- aCoder. encode ( Double ( self . transformStruct. m11) , forKey: " NS._m11 " )
290
- aCoder. encode ( Double ( self . transformStruct. m12) , forKey: " NS._m12 " )
291
- aCoder. encode ( Double ( self . transformStruct. m21) , forKey: " NS._m21 " )
292
- aCoder. encode ( Double ( self . transformStruct. m22) , forKey: " NS._m22 " )
293
- aCoder. encode ( Double ( self . transformStruct. tX) , forKey: " NS._tX " )
294
- aCoder. encode ( Double ( self . transformStruct. tY) , forKey: " NS._tY " )
289
+ let pointer = UnsafePointer < Float > ( [
290
+ Float ( transformStruct. m11) ,
291
+ Float ( transformStruct. m12) ,
292
+ Float ( transformStruct. m21) ,
293
+ Float ( transformStruct. m22) ,
294
+ Float ( transformStruct. tX) ,
295
+ Float ( transformStruct. tY) ,
296
+ ] )
297
+
298
+ aCoder. encodeArray ( ofObjCType: " [f] " , count: 6 , at: pointer)
295
299
}
296
300
297
301
open func copy( with zone: NSZone ? = nil ) -> Any {
@@ -308,12 +312,19 @@ open class NSAffineTransform : NSObject, NSCopying, NSSecureCoding {
308
312
preconditionFailure ( " Unkeyed coding is unsupported. " )
309
313
}
310
314
311
- let m11 = aDecoder. decodeDouble ( forKey: " NS._m11 " )
312
- let m12 = aDecoder. decodeDouble ( forKey: " NS._m12 " )
313
- let m21 = aDecoder. decodeDouble ( forKey: " NS._m21 " )
314
- let m22 = aDecoder. decodeDouble ( forKey: " NS._m22 " )
315
- let tX = aDecoder. decodeDouble ( forKey: " NS._tX " )
316
- let tY = aDecoder. decodeDouble ( forKey: " NS._tY " )
315
+ let pointer = UnsafeMutablePointer< Float> . allocate( capacity: 6 )
316
+ defer {
317
+ pointer. deinitialize ( )
318
+ pointer. deallocate ( capacity: 6 )
319
+ }
320
+ aDecoder. decodeArray ( ofObjCType: " [f] " , count: 6 , at: pointer)
321
+
322
+ let m11 = pointer [ 0 ]
323
+ let m12 = pointer [ 1 ]
324
+ let m21 = pointer [ 2 ]
325
+ let m22 = pointer [ 3 ]
326
+ let tX = pointer [ 4 ]
327
+ let tY = pointer [ 5 ]
317
328
318
329
self . transformStruct = AffineTransform ( m11: CGFloat ( m11) , m12: CGFloat ( m12) ,
319
330
m21: CGFloat ( m21) , m22: CGFloat ( m22) ,
0 commit comments