star-gs

Literate program for a geometric sensitivity calculation
git clone git://git.meso-star.fr/star-gs.git
Log | Files | Refs | README | LICENSE

commit d97612754c9ccd7592792a5d1d502b805778b7e2
parent 05258dbecc829de62d39c242d58f70681b15e918
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed,  1 Feb 2023 17:25:26 +0100

Fixe les fuites mémoires de la fonction de calcul Noweb

Diffstat:
Msrc/sgs_compute_sensitivity_translation.nw | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/sgs_compute_sensitivity_translation.nw b/src/sgs_compute_sensitivity_translation.nw @@ -393,8 +393,6 @@ exit: <<nettoyer les données locales de la fonction>> <<renvoyer le poids>> return res; -error: - goto exit; } @ @@ -1018,6 +1016,7 @@ compute_sensitivity_translation(struct sgs* sgs) <<afficher les résultats de l'estimation>> exit: + <<libérer les variables locales au calcul de sensibilité>> return res; error: goto exit; @@ -1088,7 +1087,8 @@ sgs_log(sgs, "Luminance ~ %g +/- %g\n", @ \paragraph{} Ne reste plus qu'à déclarer les variables locales utilisées par -notre fonction de calcul. +notre fonction de calcul et de libérer en sortie l'espace mémoire allouée +dynamiquement pour ces variables. <<variables locales au calcul de sensibilité>>= /* Système */ @@ -1100,10 +1100,15 @@ struct smc_integrator integrator = SMC_INTEGRATOR_NULL; struct smc_doubleN_context ctx = SMC_DOUBLEN_CONTEXT_NULL; /* Résultat de l'estimatation */ -struct smc_estimator = NULL; +struct smc_estimator* estimator = NULL; struct smc_estimator_status status = SMC_ESTIMATOR_STATUS_NULL; @ +<<libérer les variables locales au calcul de sensibilité>>= +if(estimator) smc_estimator_ref_put(estimator); +if(smc) smc_device_ref_put(smc); +@ + \paragraph{} Le lecteur attentif aura remarqué que l'intégrateur utilise la fonction [[run_realisation]] et non directement la fonction [[réalisation]] développée dans ce document (voir [[<<exécuter l'intégration Monte Carlo>>]]).