commit e1fe4a90bba5d8827f51b8d9f5f7ddaf57f46fed parent 43e9029031dde0a7679b885db6f838878783c884 Author: Christian Grothoff <grothoff@gnunet.org> Date: Thu, 1 May 2025 15:14:01 +0200 de-duplicate cleanup logic Diffstat:
| M | src/exchange/taler-exchange-httpd_melt_v27.c | | | 44 | ++++++++++++++++++++++---------------------- |
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/exchange/taler-exchange-httpd_melt_v27.c b/src/exchange/taler-exchange-httpd_melt_v27.c @@ -324,9 +324,28 @@ finish_loop (struct MeltContext *mc, /** + * Free information in @a re, but not @a re itself. + * + * @param[in] re refresh data to free + */ +static void +free_refresh (struct TALER_EXCHANGEDB_Refresh_v27 *re) +{ + if (NULL != re->denom_sigs) + for (size_t i = 0; i<re->num_coins; i++) + TALER_blinded_denom_sig_free (&re->denom_sigs[i]); + GNUNET_free (re->denom_sigs); + GNUNET_free (re->cs_r_values); + GNUNET_free (re->denom_serials); + GNUNET_free (re->denom_pub_hashes); + TALER_denom_sig_free (&re->coin.denom_sig); +} + + +/** * Cleanup routine for melt request. * The function is called upon completion of the request - * that should clean up @a rh_ctx. Can be NULL. + * that should clean up @a rh_ctx. * * @param rc request context to clean up */ @@ -340,32 +359,13 @@ clean_melt_rc (struct TEH_RequestContext *rc) { for (size_t i = 0; i<mc->request.refresh.num_coins; i++) TALER_blinded_planchet_free (&mc->request.planchets[k][i]); - GNUNET_free (mc->request.planchets[k]); } - - if (NULL != mc->request.refresh.denom_sigs) - for (size_t i = 0; i<mc->request.refresh.num_coins; i++) - TALER_blinded_denom_sig_free (&mc->request.refresh.denom_sigs[i]); - - GNUNET_free (mc->request.refresh.denom_sigs); - GNUNET_free (mc->request.refresh.cs_r_values); - GNUNET_free (mc->request.refresh.denom_serials); - GNUNET_free (mc->request.refresh.denom_pub_hashes); - TALER_denom_sig_free (&mc->request.refresh.coin.denom_sig); - + free_refresh (&mc->request.refresh); if (mc->request.is_idempotent) { - for (size_t i = 0; i<mc->request.refresh_idem.num_coins; i++) - TALER_blinded_denom_sig_free (&mc->request.refresh_idem.denom_sigs[i]); - - GNUNET_free (mc->request.refresh_idem.cs_r_values); - GNUNET_free (mc->request.refresh_idem.denom_sigs); - GNUNET_free (mc->request.refresh_idem.denom_serials); - GNUNET_free (mc->request.refresh_idem.denom_pub_hashes); - TALER_denom_sig_free (&mc->request.refresh_idem.coin.denom_sig); + free_refresh (&mc->request.refresh_idem); } - GNUNET_free (mc); }