From 12fedb75ff016deacfe24465383b3350c1a518c3 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 27 Dec 2006 01:49:09 +0000 Subject: [PATCH] * Make variant table caching a little more robust, using main language code in cache key. Probably this is still a bit wonky, though. Was breaking parser tests when Chinese tables were getting loaded into Serbian code. --- RELEASE-NOTES | 4 ++++ languages/LanguageConverter.php | 2 +- languages/classes/LanguageSr.php | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index e5c2178636..d1c6177cae 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -416,6 +416,10 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * Prevent conversion of JavaScript code in language variants * Output software version number in maintenance/parserTests.php * (bug 7169) Use Ajax to watch/unwatch articles if enabled +* Make variant table caching a little more robust, using main language code + in cache key. Probably this is still a bit wonky, though. Was breaking + parser tests when Chinese tables were getting loaded into Serbian code. + == Languages updated == diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 73b7f487ef..5f2e2fc380 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -40,7 +40,7 @@ class LanguageConverter { $this->mMainLanguageCode = $maincode; $this->mVariants = $variants; $this->mVariantFallbacks = $variantfallbacks; - $this->mCacheKey = wfMemcKey( 'conversiontables' ); + $this->mCacheKey = wfMemcKey( 'conversiontables', $maincode ); $m = array('begin'=>'-{', 'flagsep'=>'|', 'codesep'=>':', 'varsep'=>';', 'end'=>'}-'); $this->mMarkup = array_merge($m, $markup); diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php index e3eaf30ec2..2d56aff959 100644 --- a/languages/classes/LanguageSr.php +++ b/languages/classes/LanguageSr.php @@ -160,6 +160,9 @@ class SrConverter extends LanguageConverter { $matches = preg_split($reg, $text, -1, PREG_SPLIT_OFFSET_CAPTURE); $m = array_shift($matches); + if( !isset( $this->mTables[$toVariant] ) ) { + throw new MWException( "Broken variant table: " . implode( ',', array_keys( $this->mTables ) ) ); + } $ret = $this->mTables[$toVariant]->replace( $m[0] ); $mstart = $m[1]+strlen($m[0]); foreach($matches as $m) { -- 2.20.1