swift
4ba88194 - [5.9][Runtime] Immediate release and return when destroying partial instance of pure ObjC class.

Commit
2 years ago
[5.9][Runtime] Immediate release and return when destroying partial instance of pure ObjC class. Make swift_deallocPartialClassInstance check if the object's class is a pure ObjC class, in which case there are no ivar destroyers and we can just return immediately. It's possible for an allocWithZone: override to cause self to be a special object constructed in read-only memory. swift_deallocPartialClassInstance calls object_setClass to avoid running the dealloc method of any Swift subclasses, but this call crashes if self is read-only. It's unnecessary when the object's class is pure ObjC and therefore there are no Swift subclasses, so just skip it entirely. rdar://107756747 (cherry picked from commit 3a396af086a0fd4152110aafa84a81af6b7a042c)
Author
Committer
Parents
Loading