Stepping through the assembly from swift_unknownObjectRetain, the objc_retain is returned from its source.
When I removed the NSObject conformances and debugged again, swift_unknownObjectRetain is no longer called. I thought this was pretty interesting and will guarantee that should #13650 reappear, the report will at least look different as the object in question will have its memory managed differently as a native Swift type.
Follow-up to #13647 to further attempt to fix #13650.
The crash reports from #13650 show
swift_unknownObjectRetain
as the last frame in the terminating thread.Using a symbolic breakpoint, I verified that
swift_unknownObjectRetain
gets called to get therpcIssuer
used below: https://github.com/firebase/firebase-ios-sdk/blob/b5e2c182c83db543829f2a712f5cff7e6ad1ce1e/FirebaseAuth/Sources/Swift/Backend/AuthBackend.swift#L274-L275Stepping through the assembly from
swift_unknownObjectRetain
, theobjc_retain
is returned from its source.When I removed the
NSObject
conformances and debugged again,swift_unknownObjectRetain
is no longer called. I thought this was pretty interesting and will guarantee that should #13650 reappear, the report will at least look different as the object in question will have its memory managed differently as a native Swift type.