Skip to content

Commit 4e2b170

Browse files
committed
Experiment with disabling ASViewController background dealloc
1 parent dbe1ceb commit 4e2b170

6 files changed

Lines changed: 15 additions & 5 deletions

File tree

Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,4 @@ SPEC CHECKSUMS:
5252

5353
PODFILE CHECKSUM: 445046ac151568c694ff286684322273f0b597d6
5454

55-
COCOAPODS: 1.6.0
55+
COCOAPODS: 1.5.3

Schemas/configuration.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"exp_dispatch_apply",
2727
"exp_image_downloader_priority",
2828
"exp_text_drawing",
29-
"exp_fix_range_controller"
29+
"exp_fix_range_controller",
30+
"exp_oom_bg_dealloc_disable"
3031
]
3132
}
3233
}

Source/ASExperimentalFeatures.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ typedef NS_OPTIONS(NSUInteger, ASExperimentalFeatures) {
3232
ASExperimentalImageDownloaderPriority = 1 << 11, // exp_image_downloader_priority
3333
ASExperimentalTextDrawing = 1 << 12, // exp_text_drawing
3434
ASExperimentalFixRangeController = 1 << 13, // exp_fix_range_controller
35+
ASExperimentalOOMBackgroundDeallocDisable = 1 << 14, // exp_oom_bg_dealloc_disable
3536
ASExperimentalFeatureAll = 0xFFFFFFFF
3637
};
3738

Source/ASExperimentalFeatures.mm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
@"exp_dispatch_apply",
2626
@"exp_image_downloader_priority",
2727
@"exp_text_drawing",
28-
@"exp_fix_range_controller"]));
28+
@"exp_fix_range_controller",
29+
@"exp_oom_bg_dealloc_disable"]));
2930
if (flags == ASExperimentalFeatureAll) {
3031
return allNames;
3132
}

Source/ASViewController.mm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#import <AsyncDisplayKit/ASTraitCollection.h>
1616
#import <AsyncDisplayKit/ASRangeControllerUpdateRangeProtocol+Beta.h>
1717
#import <AsyncDisplayKit/ASInternalHelpers.h>
18+
#import <AsyncDisplayKit/ASConfigurationInternal.h>
19+
#import <AsyncDisplayKit/ASExperimentalFeatures.h>
1820

1921
@implementation ASViewController
2022
{
@@ -98,6 +100,9 @@ - (void)_initializeInstance
98100

99101
- (void)dealloc
100102
{
103+
if (ASActivateExperimentalFeature(ASExperimentalOOMBackgroundDeallocDisable)) {
104+
return;
105+
}
101106
ASPerformBackgroundDeallocation(&_node);
102107
}
103108

Tests/ASConfigurationTests.mm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
ASExperimentalDispatchApply,
3232
ASExperimentalImageDownloaderPriority,
3333
ASExperimentalTextDrawing,
34-
ASExperimentalFixRangeController
34+
ASExperimentalFixRangeController,
35+
ASExperimentalOOMBackgroundDeallocDisable
3536
};
3637

3738
@interface ASConfigurationTests : ASTestCase <ASConfigurationDelegate>
@@ -57,7 +58,8 @@ + (NSArray *)names {
5758
@"exp_dispatch_apply",
5859
@"exp_image_downloader_priority",
5960
@"exp_text_drawing",
60-
@"exp_fix_range_controller"
61+
@"exp_fix_range_controller",
62+
@"exp_oom_bg_dealloc_disable"
6163
];
6264
}
6365

0 commit comments

Comments
 (0)