mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-14 12:58:34 +00:00
Summary:
a415ef5552 exposed a bug in `UICollectionView` where its state gets corrupted when deleting the same index path more than once in a single batch update block. This resulted crashes like
```
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x4)
Closes https://github.com/Instagram/IGListKit/pull/657
Reviewed By: jessesquires
Differential Revision: D4913790
Pulled By: rnystrom
fbshipit-source-id: 8f6fcdd2e2438da309fc64ca0ac111b9a0980149
54 lines
1.3 KiB
Objective-C
54 lines
1.3 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 <Foundation/Foundation.h>
|
|
|
|
#import <IGListKit/IGListMacros.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
An object with index path information for reloading an item during a batch update.
|
|
*/
|
|
IGLK_SUBCLASSING_RESTRICTED
|
|
@interface IGListReloadIndexPath : NSObject
|
|
|
|
/**
|
|
The index path of the item before batch updates are applied.
|
|
*/
|
|
@property (nonatomic, strong, readonly) NSIndexPath *fromIndexPath;
|
|
|
|
/**
|
|
The index path of the item after batch updates are applied.
|
|
*/
|
|
@property (nonatomic, strong, readonly) NSIndexPath *toIndexPath;
|
|
|
|
/**
|
|
Creates a new reload object.
|
|
|
|
@param fromIndexPath The index path of the item before batch updates.
|
|
@param toIndexPath The index path of the item after batch updates.
|
|
@return A new reload object.
|
|
*/
|
|
- (instancetype)initWithFromIndexPath:(NSIndexPath *)fromIndexPath
|
|
toIndexPath:(NSIndexPath *)toIndexPath NS_DESIGNATED_INITIALIZER;
|
|
|
|
/**
|
|
:nodoc:
|
|
*/
|
|
- (instancetype)init NS_UNAVAILABLE;
|
|
|
|
/**
|
|
:nodoc:
|
|
*/
|
|
+ (instancetype)new NS_UNAVAILABLE;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|