From 029dcc995328bd1cff8e27b1df96c9c1b63ae5d2 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 13 Mar 2013 14:53:20 +1100 Subject: [PATCH] Allow first letter data to be invalidated Just a class constant for now, but that should suffice to deal with the current emergency. Proper dependency tracking via the CacheDependency hierarchy would be pretty cool in the long term. Change-Id: Ibbe7fa2814434d4869aba20f628bd43269e611fa --- includes/Collation.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/includes/Collation.php b/includes/Collation.php index 2734871f3d..a0e1d2d113 100644 --- a/includes/Collation.php +++ b/includes/Collation.php @@ -149,6 +149,8 @@ class IdentityCollation extends Collation { } class IcuCollation extends Collation { + const FIRST_LETTER_VERSION = 1; + var $primaryCollator, $mainCollator, $locale; var $firstLetterData; @@ -347,7 +349,9 @@ class IcuCollation extends Collation { $cacheKey = wfMemcKey( 'first-letters', $this->locale ); $cacheEntry = $cache->get( $cacheKey ); - if ( $cacheEntry ) { + if ( $cacheEntry && isset( $cacheEntry['version'] ) + && $cacheEntry['version'] == self::FIRST_LETTER_VERSION ) + { $this->firstLetterData = $cacheEntry; return $this->firstLetterData; } @@ -394,7 +398,8 @@ class IcuCollation extends Collation { ksort( $letterMap, SORT_STRING ); $data = array( 'chars' => array_values( $letterMap ), - 'keys' => array_keys( $letterMap ) + 'keys' => array_keys( $letterMap ), + 'version' => self::FIRST_LETTER_VERSION, ); // Reduce memory usage before caching -- 2.20.1