From 4f52a3cbd52d9c5b595f0789a43d23824157bc50 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Wed, 27 Sep 2017 10:54:41 -0700 Subject: [PATCH] Move clearing out of ASTextKitComponents property delegates into ASTextKitComponents dealloc --- Source/ASEditableTextNode.mm | 7 ------- Source/TextKit/ASTextKitComponents.mm | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Source/ASEditableTextNode.mm b/Source/ASEditableTextNode.mm index d68182ed1..98351f076 100644 --- a/Source/ASEditableTextNode.mm +++ b/Source/ASEditableTextNode.mm @@ -177,13 +177,6 @@ - (instancetype)initWithTextKitComponents:(ASTextKitComponents *)textKitComponen return self; } -- (void)dealloc -{ - _textKitComponents.textView.delegate = nil; - _textKitComponents.layoutManager.delegate = nil; - _placeholderTextKitComponents.layoutManager.delegate = nil; -} - #pragma mark - ASDisplayNode Overrides - (void)didLoad { diff --git a/Source/TextKit/ASTextKitComponents.mm b/Source/TextKit/ASTextKitComponents.mm index 2854ad699..bbd37c229 100644 --- a/Source/TextKit/ASTextKitComponents.mm +++ b/Source/TextKit/ASTextKitComponents.mm @@ -1,5 +1,5 @@ // -// ASTextKitComponents.m +// ASTextKitComponents.mm // Texture // // Copyright (c) 2014-present, Facebook, Inc. All rights reserved. @@ -30,6 +30,8 @@ @interface ASTextKitComponents () @implementation ASTextKitComponents +#pragma mark - Class + + (instancetype)componentsWithAttributedSeedString:(NSAttributedString *)attributedSeedString textContainerSize:(CGSize)textContainerSize { @@ -58,6 +60,17 @@ + (instancetype)componentsWithTextStorage:(NSTextStorage *)textStorage return components; } +#pragma mark - Lifecycle + +- (void)dealloc +{ + // Nil out all delegate to prevent crash + _textView.delegate = nil; + _layoutManager.delegate = nil; +} + +#pragma mark - Sizing + - (CGSize)sizeForConstrainedWidth:(CGFloat)constrainedWidth { ASTextKitComponents *components = self;