summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_sort.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_sort.c b/Zend/zend_sort.c
index 5184b8bf0f..0432596ee3 100644
--- a/Zend/zend_sort.c
+++ b/Zend/zend_sort.c
@@ -163,10 +163,16 @@ ZEND_API void zend_insert_sort(void *base, size_t nmemb, size_t siz, compare_fun
zend_sort_3(base, (char *)base + siz, (char *)base + siz + siz, cmp, swp);
break;
case 4:
- zend_sort_4(base, (char *)base + siz, (char *)base + siz + siz, (char *)base + siz + siz + siz, cmp, swp);
+ {
+ size_t siz2 = siz + siz;
+ zend_sort_4(base, (char *)base + siz, (char *)base + siz2, (char *)base + siz + siz2, cmp, swp);
+ }
break;
case 5:
- zend_sort_5(base, (char *)base + siz, (char *)base + siz + siz, (char *)base + siz + siz + siz, (char *)base + (siz * 4), cmp, swp);
+ {
+ size_t siz2 = siz + siz;
+ zend_sort_5(base, (char *)base + siz, (char *)base + siz2, (char *)base + siz + siz2, (char *)base + siz2 + siz2, cmp, swp);
+ }
break;
default:
{