FDBCORE-617: Allocate mako prefix on stack

This commit is contained in:
Sam Gwydir 2021-06-10 14:04:38 -07:00
parent 9e2f5e5903
commit dd0d99ab10

View File

@ -73,12 +73,11 @@ int digits(int num) {
void genkey(char* str, char* prefix, int prefixlen, int prefixpadding, int num, int rows, int len) { void genkey(char* str, char* prefix, int prefixlen, int prefixpadding, int num, int rows, int len) {
const int rowdigit = digits(rows); const int rowdigit = digits(rows);
const int prefixoffset = prefixpadding ? len - (prefixlen + rowdigit) - 1 : 0; const int prefixoffset = prefixpadding ? len - (prefixlen + rowdigit) - 1 : 0;
char* prefixstr = (char*)malloc(sizeof(char) * (prefixlen + rowdigit + 1)); char* prefixstr = (char*)alloca(sizeof(char) * (prefixlen + rowdigit + 1));
snprintf(prefixstr, prefixlen + rowdigit + 1, "%s%0.*d", prefix, rowdigit, num); snprintf(prefixstr, prefixlen + rowdigit + 1, "%s%0.*d", prefix, rowdigit, num);
memset(str, 'x', len); memset(str, 'x', len);
memcpy(str + prefixoffset, prefixstr, prefixlen + rowdigit); memcpy(str + prefixoffset, prefixstr, prefixlen + rowdigit);
str[len - 1] = '\0'; str[len - 1] = '\0';
free(prefixstr);
} }
/* This is another sorting algorithm used to calculate latency parameters */ /* This is another sorting algorithm used to calculate latency parameters */