case IS_LONG: {
char stmp[MAX_LENGTH_OF_LONG + 1];
- str_len = snprintf(stmp, sizeof(stmp), "%ld", Z_LVAL_PP(tmp));
+ str_len = sprintf(stmp, "%ld", Z_LVAL_PP(tmp));
smart_str_appendl(&implstr, stmp, str_len);
}
break;
break;
case IS_DOUBLE: {
- char *stmp = (char *) do_alloca(MAX_LENGTH_OF_DOUBLE + EG(precision) + 2); /* +1 for decimal point */
- str_len = snprintf(stmp, sizeof(stmp), "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
+ char *stmp;
+ str_len = spprintf(&stmp, 0, "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
smart_str_appendl(&implstr, stmp, str_len);
- free_alloca(stmp);
+ efree(stmp);
}
break;