You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2022/05/25 21:10:33 UTC
[arrow] branch master updated: ARROW-14790: [GLib] Fix a memory leak on creating GArrowDatum (#13228)
This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new b7edf64887 ARROW-14790: [GLib] Fix a memory leak on creating GArrowDatum (#13228)
b7edf64887 is described below
commit b7edf64887769e15b0d24ba31b465882f3a740b7
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Thu May 26 06:10:25 2022 +0900
ARROW-14790: [GLib] Fix a memory leak on creating GArrowDatum (#13228)
Authored-by: Sutou Kouhei <ko...@clear-code.com>
Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
c_glib/arrow-glib/datum.cpp | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/c_glib/arrow-glib/datum.cpp b/c_glib/arrow-glib/datum.cpp
index 66993d6c22..02f882a7d6 100644
--- a/c_glib/arrow-glib/datum.cpp
+++ b/c_glib/arrow-glib/datum.cpp
@@ -747,13 +747,17 @@ garrow_datum_new_raw(arrow::Datum *arrow_datum)
{
auto arrow_scalar = arrow_datum->scalar();
auto scalar = garrow_scalar_new_raw(&arrow_scalar);
- return GARROW_DATUM(garrow_scalar_datum_new_raw(arrow_datum, scalar));
+ auto scalar_datum = garrow_scalar_datum_new_raw(arrow_datum, scalar);
+ g_object_unref(scalar);
+ return GARROW_DATUM(scalar_datum);
}
case arrow::Datum::ARRAY:
{
auto arrow_array = arrow_datum->make_array();
auto array = garrow_array_new_raw(&arrow_array);
- return GARROW_DATUM(garrow_array_datum_new_raw(arrow_datum, array));
+ auto array_datum = garrow_array_datum_new_raw(arrow_datum, array);
+ g_object_unref(array);
+ return GARROW_DATUM(array_datum);
}
case arrow::Datum::CHUNKED_ARRAY:
{
@@ -761,6 +765,7 @@ garrow_datum_new_raw(arrow::Datum *arrow_datum)
auto chunked_array = garrow_chunked_array_new_raw(&arrow_chunked_array);
auto chunked_array_datum =
garrow_chunked_array_datum_new_raw(arrow_datum, chunked_array);
+ g_object_unref(chunked_array);
return GARROW_DATUM(chunked_array_datum);
}
case arrow::Datum::RECORD_BATCH:
@@ -769,13 +774,16 @@ garrow_datum_new_raw(arrow::Datum *arrow_datum)
auto record_batch = garrow_record_batch_new_raw(&arrow_record_batch);
auto record_batch_datum =
garrow_record_batch_datum_new_raw(arrow_datum, record_batch);
+ g_object_unref(record_batch);
return GARROW_DATUM(record_batch_datum);
}
case arrow::Datum::TABLE:
{
auto arrow_table = arrow_datum->table();
auto table = garrow_table_new_raw(&arrow_table);
- return GARROW_DATUM(garrow_table_datum_new_raw(arrow_datum, table));
+ auto table_datum = garrow_table_datum_new_raw(arrow_datum, table);
+ g_object_unref(table);
+ return GARROW_DATUM(table_datum);
}
default:
// TODO