Simplify LanguageNameSearch code

A more efficient "startsWith" lookup.
And simplifying redundant modulo code.

Change-Id: I87ab0ff70d26fc058fc40bd20745b9b6effb7ddd
This commit is contained in:
Thiemo Mättig
2014-12-08 19:00:32 +01:00
parent 3045bdc484
commit bdece37fe3

View File

@@ -42,11 +42,9 @@ class LanguageNameSearch {
$results = array(); $results = array();
foreach ( $bucket as $name => $code ) { foreach ( $bucket as $name => $code ) {
// Prefix search // Prefix search
if ( strpos( $name, $searchKey, 0 ) === 0 ) { if ( strrpos( $name, $searchKey, -strlen( $name ) ) !== false
$results[$code] = $name; || ( $typos > 0 && self::levenshteinDistance( $name, $searchKey ) <= $typos )
continue; ) {
}
if ( $typos > 0 && self::levenshteinDistance( $name, $searchKey ) === $typos ) {
$results[$code] = $name; $results[$code] = $name;
} }
} }
@@ -55,14 +53,7 @@ class LanguageNameSearch {
} }
public static function getIndex( $name ) { public static function getIndex( $name ) {
$codepoint = self::getCodepoint( $name ); return self::getCodepoint( $name ) % 1000;
if ( $codepoint < 1000 ) {
$bucket = $codepoint;
} else {
$bucket = $codepoint % 1000;
}
return $bucket;
} }
/** /**