summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/levenshtein.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/ext/standard/levenshtein.c b/ext/standard/levenshtein.c
index a702d3cfea..4227cf05f4 100644
--- a/ext/standard/levenshtein.c
+++ b/ext/standard/levenshtein.c
@@ -23,7 +23,7 @@
#include <ctype.h>
#include "php_string.h"
-int calc_levdist(const char *s1, const char *s2) /* faster, but obfuscated */
+static int calc_levdist(const char *s1, const char *s2) /* faster, but obfuscated */
{
register char *p1,*p2;
register int i,j,n;
@@ -60,8 +60,16 @@ int calc_levdist(const char *s1, const char *s2) /* faster, but obfuscated */
/* swap if l2 longer than l1 */
if(l1<l2) {
- (long)s1 ^= (long)s2; (long)s2 ^= (long)s1; (long)s1 ^= (long)s2;
- l1 ^= l2; l2 ^= l1; l1 ^= l2;
+ const char *s3;
+ int l3;
+
+ s3 = s1;
+ s1 = s2;
+ s2 = s3;
+
+ l3 = l1;
+ l1 = l2;
+ l2 = l3;
}