summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_alloc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 22963d87b3..a6abbba650 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -709,12 +709,14 @@ static inline unsigned int zend_mm_low_bit(size_t _size)
unsigned int n;
unsigned int index = 0;
- do {
- n = offset[_size & 15];
+ n = offset[_size & 15];
+ while (n == 4) {
_size >>= 4;
index += n;
- } while (n == 4);
- return index;
+ n = offset[_size & 15];
+ }
+
+ return index + n;
#endif
}