Skip to content

[Dependency Scanning] Provide libSwiftScan API to dispose of a string result #63098

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions include/swift-c/DependencyScan/DependencyScan.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,9 @@ swiftscan_scan_invocation_get_argv(swiftscan_scan_invocation_t invocation);
SWIFTSCAN_PUBLIC void
swiftscan_string_set_dispose(swiftscan_string_set_t *set);

SWIFTSCAN_PUBLIC void
swiftscan_string_dispose(swiftscan_string_ref_t string);

SWIFTSCAN_PUBLIC void
swiftscan_dependency_graph_dispose(swiftscan_dependency_graph_t result);

Expand Down
11 changes: 5 additions & 6 deletions tools/libSwiftScan/libSwiftScan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,6 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DependencyScanningTool, swiftscan_scanner_t)

//=== Private Cleanup Functions -------------------------------------------===//

/// Free the given string.
void swiftscan_string_dispose(swiftscan_string_ref_t string) {
if (string.data)
free(const_cast<void *>(string.data));
}

void swiftscan_dependency_info_details_dispose(
swiftscan_module_details_t details) {
swiftscan_module_details_s *details_impl = details;
Expand Down Expand Up @@ -446,6 +440,11 @@ swiftscan_scan_invocation_get_argv(swiftscan_scan_invocation_t invocation) {

//=== Public Cleanup Functions --------------------------------------------===//

void swiftscan_string_dispose(swiftscan_string_ref_t string) {
if (string.data)
free(const_cast<void *>(string.data));
}

void swiftscan_string_set_dispose(swiftscan_string_set_t *set) {
for (unsigned SI = 0, SE = set->count; SI < SE; ++SI)
swiftscan_string_dispose(set->strings[SI]);
Expand Down
1 change: 1 addition & 0 deletions tools/libSwiftScan/libSwiftScan.exports
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ swiftscan_dependency_graph_create
swiftscan_batch_scan_result_create
swiftscan_import_set_create
swiftscan_scanner_create
swiftscan_string_dispose
swiftscan_string_set_dispose
swiftscan_scan_invocation_dispose
swiftscan_batch_scan_input_dispose
Expand Down