Commits

Joe Groff committed 16a640e9399
runtime: Guard against recursive destruction in swift_release. Retain heap objects before invoking their destructor so that retains and releases of the object during its destructor don't trigger recursive destruction. In destructor SILGen, eliminate the goofy double-retain guard that was getting emitted into every destroying destructor. If we count on release fixing the retain count and enforce fixed-lifetime capture of 'this' within a destructor body, we don't need to mess with 'this' at all in a destructor prolog or epilog—it's just a +0 argument. Swift SVN r5022