From a025e216c163cd265b0d372d8a50531c2978a9da Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Mon, 13 Dec 2010 08:17:08 +0000 Subject: [PATCH] Report de r16624 --- ecrire/inc/meta.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php index 60449d1b71..f92dd8d154 100644 --- a/ecrire/inc/meta.php +++ b/ecrire/inc/meta.php @@ -64,6 +64,7 @@ function lire_metas($table='meta') { $GLOBALS[$table] = array(); while ($row = sql_fetch($result)) $GLOBALS[$table][$row['nom']] = $row['valeur']; + sql_free($result); if (!$GLOBALS[$table]['charset'] OR $GLOBALS[$table]['charset']=='_DEFAULT_CHARSET' // hum, correction d'un bug ayant abime quelques install @@ -128,18 +129,21 @@ function ecrire_meta($nom, $valeur, $importable = NULL, $table='meta') { $GLOBALS[$table][$nom] = $valeur; return; } - $res = sql_fetch($res); + $row = sql_fetch($res); + sql_free($res); + // ne pas invalider le cache si affectation a l'identique // (tant pis si impt aurait du changer) - if ($res AND $valeur == $res['valeur'] AND $GLOBALS[$table][$nom] == $valeur) return; + if ($row AND $valeur == $row['valeur'] AND $GLOBALS[$table][$nom] == $valeur) return; + $GLOBALS[$table][$nom] = $valeur; // cf effacer pour comprendre le double touch $antidate = time() - (_META_CACHE_TIME<<1); if (!isset($touch[$table])) {touch_meta($antidate, $table);} $r = array('nom' => $nom, 'valeur' => $valeur); // Gaffe aux tables sans impt (vieilles versions de SPIP notamment) - if ($importable AND isset($res['impt'])) $r['impt'] = $importable; - if ($res) { + if ($importable AND isset($row['impt'])) $r['impt'] = $importable; + if ($row) { sql_updateq('spip_' . $table, $r,"nom=" . sql_quote($nom)); } else { sql_insertq('spip_' . $table, $r); -- GitLab