Use std::move_backward for file_getdirlist

This commit is contained in:
Kp 2015-04-26 20:15:50 +00:00
parent fd6ac87c25
commit f00ec13c0f

View file

@ -68,10 +68,11 @@ static char **file_getdirlist(int *NumDirs, const char *dir)
{ {
// Put the 'go to parent directory' sequence '..' first // Put the 'go to parent directory' sequence '..' first
(*NumDirs)++; (*NumDirs)++;
list = (char **)realloc(list, sizeof(char *)*(*NumDirs + 1)); auto r = reinterpret_cast<char **>(realloc(list, sizeof(char *)*(*NumDirs + 1)));
list[*NumDirs] = NULL; // terminate if (!r)
for (i = list + *NumDirs - 1; i != list; i--) return list;
*i = i[-1]; list = r;
std::move_backward(list, list + *NumDirs, list + *NumDirs + 1);
list[0] = d_strdup(".."); list[0] = d_strdup("..");
} }