From 9b2a68781c044b8a64f82d1be93bbc88ecb3b5da Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Sat, 24 Oct 2015 01:18:24 -0700 Subject: [PATCH] Use ASObjectIsEqual to make ASDisplayNode.setName faster when setting the same name repeatedly --- AsyncDisplayKit/ASDisplayNode.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 302087343a..5d5e8b1d5b 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -19,6 +19,7 @@ #import "_ASDisplayView.h" #import "_ASScopeTimer.h" #import "ASDisplayNodeExtras.h" +#import "ASEqualityHelpers.h" #import "ASInternalHelpers.h" #import "ASLayout.h" @@ -535,10 +536,10 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) - (void)setName:(NSString *)name { - NSString *copy = [name copy]; - ASDN::MutexLocker l(_propertyLock); - _name = copy; + if (!ASObjectIsEqual(_name, name)) { + _name = [name copy]; + } } - (BOOL)isSynchronous