You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.0 KiB
52 lines
1.0 KiB
5 years ago
|
/*
|
||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
#include <Foundation/NSObject.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
typedef struct ABFDataRef {
|
||
|
} ABFDataRef;
|
||
|
|
||
5 years ago
|
@interface ABFData
|
||
|
@end
|
||
|
|
||
5 years ago
|
ABFDataRef* ABFDataCreate(size_t size);
|
||
|
void ABFRelease(ABFDataRef*);
|
||
|
|
||
5 years ago
|
ABFData* ABFBridgingRelease(ABFDataRef*);
|
||
|
|
||
|
namespace abf {
|
||
|
ABFData* BridgingRelease(ABFDataRef*);
|
||
|
}
|
||
|
|
||
5 years ago
|
@interface A : NSObject
|
||
|
@end
|
||
|
|
||
|
@implementation A
|
||
|
|
||
|
- (void)create_no_release_leak_bad {
|
||
|
ABFDataRef* someData = ABFDataCreate(4);
|
||
|
}
|
||
|
|
||
|
- (void)create_then_release_ok {
|
||
|
ABFDataRef* someData = ABFDataCreate(4);
|
||
|
ABFRelease(someData);
|
||
|
}
|
||
|
|
||
5 years ago
|
- (void)bridge_no_leak_good {
|
||
|
ABFData* someData = (__bridge_transfer ABFData*)ABFDataCreate(4);
|
||
|
}
|
||
|
|
||
5 years ago
|
- (void)custom_bridge_no_leak_good {
|
||
|
ABFData* someData = ABFBridgingRelease(ABFDataCreate(4));
|
||
|
}
|
||
|
|
||
|
- (void)custom_bridge_namesapce_no_leak_good {
|
||
|
ABFData* someData = abf::BridgingRelease(ABFDataCreate(4));
|
||
|
}
|
||
|
|
||
5 years ago
|
@end
|