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

/*
* 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;
@interface ABFData
@end
ABFDataRef* ABFDataCreate(size_t size);
void ABFRelease(ABFDataRef*);
ABFData* ABFBridgingRelease(ABFDataRef*);
namespace abf {
ABFData* BridgingRelease(ABFDataRef*);
}
@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);
}
- (void)bridge_no_leak_good {
ABFData* someData = (__bridge_transfer ABFData*)ABFDataCreate(4);
}
- (void)custom_bridge_no_leak_good {
ABFData* someData = ABFBridgingRelease(ABFDataCreate(4));
}
- (void)custom_bridge_namesapce_no_leak_good {
ABFData* someData = abf::BridgingRelease(ABFDataCreate(4));
}
@end