diff --git a/libgnucash/backend/sql/gnc-bill-term-sql.cpp b/libgnucash/backend/sql/gnc-bill-term-sql.cpp index 40bd993cf3..433e7813ed 100644 --- a/libgnucash/backend/sql/gnc-bill-term-sql.cpp +++ b/libgnucash/backend/sql/gnc-bill-term-sql.cpp @@ -244,6 +244,7 @@ GncSqlBillTermBackend::load_all (GncSqlBackend* sql_be) if (pBillTerm != nullptr) instances.push_back(QOF_INSTANCE(pBillTerm)); } + delete result; if (!instances.empty()) gnc_sql_slots_load_for_instancevec (sql_be, instances); diff --git a/libgnucash/backend/sql/gnc-slots-sql.cpp b/libgnucash/backend/sql/gnc-slots-sql.cpp index c563e95635..bd9c3419d9 100644 --- a/libgnucash/backend/sql/gnc-slots-sql.cpp +++ b/libgnucash/backend/sql/gnc-slots-sql.cpp @@ -361,9 +361,9 @@ set_string_val (gpointer pObject, gpointer pValue) if (pInfo->value_type != KvpValue::Type::STRING || pValue == NULL) return; - auto string = g_strdup (static_cast (pValue)); - auto value = new KvpValue {string}; + auto value = new KvpValue {static_cast (pValue)}; set_slot_from_value (pInfo, value); + delete value; } static gpointer @@ -796,6 +796,7 @@ slots_load_info (slot_info_t* pInfo) auto result = pInfo->be->execute_select_statement (stmt); for (auto row : *result) load_slot (pInfo, row); + delete result; } } @@ -934,6 +935,7 @@ void gnc_sql_slots_load_for_sql_subquery (GncSqlBackend* sql_be, auto result = sql_be->execute_select_statement(stmt); for (auto row : *result) load_slot_for_book_object (sql_be, row, lookup_fn); + delete result; } /* ================================================================= */ diff --git a/libgnucash/backend/sql/gnc-sql-column-table-entry.cpp b/libgnucash/backend/sql/gnc-sql-column-table-entry.cpp index 0fd6fd0ff3..3f7a546ac2 100644 --- a/libgnucash/backend/sql/gnc-sql-column-table-entry.cpp +++ b/libgnucash/backend/sql/gnc-sql-column-table-entry.cpp @@ -549,6 +549,7 @@ GncSqlColumnTableEntryImpl::load (const GncSqlBackend* sql_be, buf = g_strdup_printf ("%s_denom", m_col_name); auto denom = row.get_int_at_col (buf); n = gnc_numeric_create (num, denom); + g_free (buf); } catch (std::invalid_argument) { @@ -569,6 +570,7 @@ GncSqlColumnTableEntryImpl::add_to_table(ColVec& vec) const noexcept subtable_row->m_col_name); GncSqlColumnInfo info(buf, BCT_INT64, 0, false, false, m_flags & COL_PKEY, m_flags & COL_NNUL); + g_free (buf); vec.emplace_back(std::move(info)); } }