[Dependency Scanning] Establish object ownership convention by using a Foundation-style ownership signals naming scheme across the API surface.

Foundation-style ownership signals documentation:
https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-CJBEJBHH
This commit is contained in:
Artem Chikin
2020-12-09 11:28:34 -08:00
parent d1cc689c01
commit 41a09a4092
11 changed files with 281 additions and 195 deletions

View File

@@ -24,7 +24,7 @@ swiftscan_string_ref_t create_null() {
return str;
}
swiftscan_string_ref_t create_dup(const char *string) {
swiftscan_string_ref_t create_clone(const char *string) {
if (!string)
return create_null();
@@ -42,7 +42,16 @@ swiftscan_string_set_t *create_set(const std::vector<std::string> &strings) {
set->count = strings.size();
set->strings = new swiftscan_string_ref_t[set->count];
for (unsigned SI = 0, SE = set->count; SI < SE; ++SI)
set->strings[SI] = create_dup(strings[SI].c_str());
set->strings[SI] = create_clone(strings[SI].c_str());
return set;
}
swiftscan_string_set_t *create_set(int count, const char **strings) {
swiftscan_string_set_t *set = new swiftscan_string_set_t;
set->count = count;
set->strings = new swiftscan_string_ref_t[set->count];
for (unsigned SI = 0, SE = set->count; SI < SE; ++SI)
set->strings[SI] = create_clone(strings[SI]);
return set;
}