8000 Revert "integer_length optimization" · jrtkcoder/phpredis@a57d15e · GitHub
[go: up one dir, main page]

Skip to content

Commit a57d15e

Browse files
committed
Revert "integer_length optimization"
This reverts commit e64bd72.
1 parent ddfc55e commit a57d15e

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

library.c

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -526,20 +526,18 @@ void add_constant_long(zend_class_entry *ce, char *name, int value) {
526526

527527
int
528528
integer_length(int i) {
529-
int sz = 1;
530-
531-
if (i < 0) { /* allow for neg sign as well. */
532-
i = -i;
529+
int sz = 0;
530+
int ci = abs(i);
531+
while (ci > 0) {
532+
ci /= 10;
533533
sz++;
534534
}
535-
for (;;) {
536-
if (i < 10) return sz;
537-
if (i < 100) return sz + 1;
538-
if (i < 1000) return sz + 2;
539-
// Skip ahead by 4 orders of magnitude
540-
i /= 10000U;
541-
sz += 4;
535+
if (i == 0) { /* log 0 doesn't make sense. */
536+
sz = 1;
537+
} else if (i < 0) { /* allow for neg sign as well. */
538+
sz++;
542539
}
540+
return sz;
543541
}
544542

545543
int

0 commit comments

Comments
 (0)
0