summaryrefslogtreecommitdiff
path: root/ext/standard/levenshtein.c
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-10-23 12:39:31 +0200
committerAnatol Belski <ab@php.net>2014-10-23 15:47:44 +0200
commit29b43af07252ff7fa6c8ca2504f96af09b50c19c (patch)
treeb23fa672ce2ce5706c85f63d70242738ecebe141 /ext/standard/levenshtein.c
parent6e396961c56ff2bfe597a1ca965ff8b33ff6e4a0 (diff)
downloadphp-git-29b43af07252ff7fa6c8ca2504f96af09b50c19c.tar.gz
exhaust zend_long/size_t potential in levenstein
Diffstat (limited to 'ext/standard/levenshtein.c')
-rw-r--r--ext/standard/levenshtein.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/standard/levenshtein.c b/ext/standard/levenshtein.c
index df822f45d4..e776934e1f 100644
--- a/ext/standard/levenshtein.c
+++ b/ext/standard/levenshtein.c
@@ -27,10 +27,11 @@
/* {{{ reference_levdist
* reference implementation, only optimized for memory usage, not speed */
-static int reference_levdist(const char *s1, int l1, const char *s2, int l2, int cost_ins, int cost_rep, int cost_del )
+static zend_long reference_levdist(const char *s1, size_t l1, const char *s2, size_t l2, zend_long cost_ins, zend_long cost_rep, zend_long cost_del )
{
- int *p1, *p2, *tmp;
- int i1, i2, c0, c1, c2;
+ zend_long *p1, *p2, *tmp;
+ zend_long c0, c1, c2;
+ size_t i1, i2;
if (l1 == 0) {
return l2 * cost_ins;
@@ -42,8 +43,8 @@ static int reference_levdist(const char *s1, int l1, const char *s2, int l2, int
if ((l1 > LEVENSHTEIN_MAX_LENGTH) || (l2 > LEVENSHTEIN_MAX_LENGTH)) {
return -1;
}
- p1 = safe_emalloc((l2 + 1), sizeof(int), 0);
- p2 = safe_emalloc((l2 + 1), sizeof(int), 0);
+ p1 = safe_emalloc((l2 + 1), sizeof(zend_long), 0);
+ p2 = safe_emalloc((l2 + 1), sizeof(zend_long), 0);
for (i2 = 0; i2 <= l2; i2++) {
p1[i2] = i2 * cost_ins;
@@ -96,7 +97,7 @@ PHP_FUNCTION(levenshtein)
char *callback_name;
size_t str1_len, str2_len, callback_len;
zend_long cost_ins, cost_rep, cost_del;
- int distance = -1;
+ zend_long distance = -1;
switch (argc) {
case 2: /* just two strings: use maximum performance version */