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.
182 lines
5.1 KiB
182 lines
5.1 KiB
3 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.
|
||
|
*/
|
||
|
#import <Foundation/Foundation.h>
|
||
|
|
||
|
NSString* mId;
|
||
|
NSCharacterSet* characterSet;
|
||
|
|
||
|
NSString* string_by_appending_same_string_linear(NSString* s) {
|
||
|
NSString* str = [s stringByAppendingString:@"me"];
|
||
|
for (int i = 0; i < str.length; i++) {
|
||
|
}
|
||
|
return str;
|
||
|
}
|
||
|
|
||
|
NSString* string_by_appending_string_linear(NSString* s, NSString* m) {
|
||
|
NSString* str = [s stringByAppendingString:m];
|
||
|
for (int i = 0; i < str.length; i++) {
|
||
|
}
|
||
|
return str;
|
||
|
}
|
||
|
|
||
|
NSUInteger rangeof_character_from_set_linear(NSString* m) {
|
||
|
return [m rangeOfString:@"_"].location;
|
||
|
}
|
||
|
|
||
|
NSUInteger rangeof_string_quadratic(NSString* m, NSString* n) {
|
||
|
return [m rangeOfString:n].location;
|
||
|
}
|
||
|
|
||
|
NSString* has_prefix_constant() {
|
||
|
NSString* s = @"";
|
||
|
return [s hasPrefix:s] ? [s substringFromIndex:1] : s;
|
||
|
}
|
||
|
|
||
|
void component_seperated_by_char_linear(NSString* m) {
|
||
|
NSArray* arrayOfComponents = [m componentsSeparatedByString:@","];
|
||
|
for (int i = 0; i < arrayOfComponents.count; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void component_seperated_by_string_linear(NSString* m, NSString* sep) {
|
||
|
NSArray* arrayOfComponents = [m componentsSeparatedByString:sep];
|
||
|
for (int i = 0; i < arrayOfComponents.count; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void call_component_separated_by_char_constant() {
|
||
|
NSString* s = @"hello";
|
||
|
component_seperated_by_char_linear(s);
|
||
|
}
|
||
|
|
||
|
void init_with_bytes_linear(const void* bytes,
|
||
|
NSUInteger length,
|
||
|
NSStringEncoding encoding) {
|
||
|
NSString* s = [[NSString alloc] initWithBytes:bytes
|
||
|
length:length
|
||
|
encoding:encoding];
|
||
|
for (int i = 0; i < s.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void init_string_constant() {
|
||
|
NSString* str = [[NSString alloc] init];
|
||
|
for (int i = 0; i < str.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void init_with_string_constant() {
|
||
|
NSString* s = @"abcd";
|
||
|
NSString* str = [[NSString alloc] initWithString:s];
|
||
|
for (int i = 0; i < str.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void init_with_string_linear(NSString* s) {
|
||
|
NSString* str = [[NSString alloc] initWithString:s];
|
||
|
for (int i = 0; i < str.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void call_init_with_string_constant() {
|
||
|
NSString* s = [[NSString alloc] init];
|
||
|
init_with_string_linear(s);
|
||
|
}
|
||
|
|
||
|
void substring_no_end_linear(NSString* s, int x) {
|
||
|
NSString* sub = [s substringFromIndex:x];
|
||
|
for (int i = 0; i < sub.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void replace_linear_FP(NSString* s) {
|
||
|
NSString* r = [s stringByReplacingOccurrencesOfString:@"." withString:@","];
|
||
|
for (int i = 0; i < r.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
NSString* string_with_utf8_string_linear(const char* p) {
|
||
|
NSString* s = [NSString stringWithUTF8String:p];
|
||
|
for (int i = 0; i < [s.length integerValue]; i++) {
|
||
|
}
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
void string_length_linear(NSString* s) {
|
||
|
for (int i = 0; i < [s.length integerValue]; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
bool string_is_equal_to_string_linear(NSString* str1, NSString* str2) {
|
||
|
return [str1 isEqualToString:str2];
|
||
|
}
|
||
|
|
||
|
NSString* string_by_appending_path_component_linear(NSString* path,
|
||
|
NSString* file) {
|
||
|
return [path stringByAppendingPathComponent:file];
|
||
|
}
|
||
|
|
||
|
bool string_has_prefix_linear(NSString* str, NSString* prefix) {
|
||
|
return [str hasPrefix:prefix];
|
||
|
}
|
||
|
|
||
|
void attributedstring_length_linear(NSAttributedString* s) {
|
||
|
for (int i = 0; i < s.length; i++) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void call_string_length_linear(NSAttributedString* s) {
|
||
|
string_length_linear(s.string);
|
||
|
}
|
||
|
|
||
|
void enumerateAttribute_quadratic(NSAttributedString* attributedString,
|
||
|
NSString* kCTFontAttributeName,
|
||
|
int x) {
|
||
|
[attributedString
|
||
|
enumerateAttribute:kCTFontAttributeName
|
||
|
inRange:NSMakeRange(0, [attributedString length])
|
||
|
options:
|
||
|
NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
|
||
|
usingBlock:^(id value, NSRange range, BOOL* stop) {
|
||
|
for (int i = 0; i <= x; i++) {
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
void enumerateAttribute_linear(NSAttributedString* attributedString,
|
||
|
NSString* kCTFontAttributeName,
|
||
|
int x) {
|
||
|
[attributedString
|
||
|
enumerateAttribute:kCTFontAttributeName
|
||
|
inRange:NSMakeRange(0, [attributedString length])
|
||
|
options:
|
||
|
NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
|
||
|
usingBlock:^(id value, NSRange range, BOOL* stop) {
|
||
|
int p = 0;
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
// FN because captured block variable is added as last argument which our model
|
||
|
// cannot recognize
|
||
|
void enumerateAttribute_via_block_captured_linear_FN(NSArray* array, int x) {
|
||
|
__block BOOL answer = NO;
|
||
|
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL* stop) {
|
||
|
answer = YES;
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
@interface DummyClass : NSObject
|
||
|
@end
|
||
|
|
||
|
@implementation DummyClass
|
||
|
|
||
|
+ (void)call_string_by_appending_string_constant {
|
||
|
NSString* s = [NSStringFromClass(self) stringByAppendingString:@"abc"];
|
||
|
}
|
||
|
|
||
|
@end
|