You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2023/06/14 11:43:55 UTC

[arrow-adbc] branch main updated: fix(c): Fix destructor mem leaks (#785)

This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 1694d5c4 fix(c): Fix destructor mem leaks (#785)
1694d5c4 is described below

commit 1694d5c4323eecabac0f0d6db1f93c935d72c46b
Author: William Ayd <wi...@icloud.com>
AuthorDate: Wed Jun 14 04:43:47 2023 -0700

    fix(c): Fix destructor mem leaks (#785)
---
 c/driver/common/utils.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/c/driver/common/utils.c b/c/driver/common/utils.c
index 62fb9ad7..e2060737 100644
--- a/c/driver/common/utils.c
+++ b/c/driver/common/utils.c
@@ -778,6 +778,8 @@ void AdbcGetObjectsDataDelete(struct AdbcGetObjectsData* get_objects_data) {
           free(table->table_columns[column_index]);
         }
 
+        free(table->table_columns);
+
         for (int64_t constraint_index = 0; constraint_index < table->n_table_constraints;
              constraint_index++) {
           struct AdbcGetObjectsConstraint* constraint =
@@ -787,14 +789,24 @@ void AdbcGetObjectsDataDelete(struct AdbcGetObjectsData* get_objects_data) {
                usage_index++) {
             free(constraint->constraint_column_usages[usage_index]);
           }
+
+          free(constraint->constraint_column_usages);
+          free(table->table_constraints[constraint_index]);
         }
 
+        free(table->table_constraints);
         free(table);
       }
+
+      free(schema->db_schema_tables);
       free(schema);
     }
+
+    free(catalog->catalog_db_schemas);
     free(catalog);
   }
+
+  free(get_objects_data->catalogs);
   free(get_objects_data);
 }