mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-17 06:18:32 +00:00
Summary: Followup to make sure that object type mismatches can't happen, even if identifiers collide (which is discouraged). Add assert when duplicates are detected. Patched some unit tests while I'm in here. Reviewed By: calimarkus Differential Revision: D6439094 fbshipit-source-id: d669c01734e5ce9483e851051f548d9960b3087c
44 lines
1.2 KiB
Objective-C
44 lines
1.2 KiB
Objective-C
/**
|
|
* Copyright (c) 2016-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "IGListDebugger.h"
|
|
|
|
#import "IGListDebuggingUtilities.h"
|
|
#import "IGListAdapter+DebugDescription.h"
|
|
|
|
@implementation IGListDebugger
|
|
|
|
static NSHashTable<IGListAdapter *> *livingAdaptersTable = nil;
|
|
|
|
+ (void)trackAdapter:(IGListAdapter *)adapter {
|
|
#if IGLK_DEBUG_DESCRIPTION_ENABLED
|
|
if (livingAdaptersTable == nil) {
|
|
livingAdaptersTable = [NSHashTable weakObjectsHashTable];
|
|
}
|
|
[livingAdaptersTable addObject:adapter];
|
|
#endif // #if IGLK_DEBUG_DESCRIPTION_ENABLED
|
|
}
|
|
|
|
+ (NSArray<NSString *> *)adapterDescriptions {
|
|
NSMutableArray *descriptions = [NSMutableArray new];
|
|
for (IGListAdapter *adapter in livingAdaptersTable) {
|
|
[descriptions addObject:[adapter debugDescription]];
|
|
}
|
|
return descriptions;
|
|
}
|
|
|
|
+ (void)clear {
|
|
[livingAdaptersTable removeAllObjects];
|
|
}
|
|
|
|
+ (NSString *)dump {
|
|
return [[self adapterDescriptions] componentsJoinedByString:@"\n"];
|
|
}
|
|
|
|
@end
|