forked from enlightenment/terminology
backlog: simplify code. Closes CID1407754
This commit is contained in:
parent
e16505f5f7
commit
787e16f215
|
@ -181,6 +181,7 @@ void
|
|||
termpty_backlog_size_set(Termpty *ty, size_t size)
|
||||
{
|
||||
Termsave *new_back;
|
||||
size_t i;
|
||||
|
||||
if (ty->backsize == size)
|
||||
return;
|
||||
|
@ -192,34 +193,28 @@ termpty_backlog_size_set(Termpty *ty, size_t size)
|
|||
termpty_backlog_free(ty);
|
||||
goto end;
|
||||
}
|
||||
if (size > 0)
|
||||
if (size > ty->backsize)
|
||||
{
|
||||
size_t i;
|
||||
if (size > ty->backsize)
|
||||
{
|
||||
new_back = realloc(ty->back, sizeof(Termsave) * size);
|
||||
if (!new_back)
|
||||
return;
|
||||
memset(new_back + ty->backsize, 0,
|
||||
sizeof(Termsave) * (size - ty->backsize));
|
||||
ty->back = new_back;
|
||||
}
|
||||
else
|
||||
{
|
||||
new_back = calloc(1, sizeof(Termsave) * size);
|
||||
if (!new_back)
|
||||
return;
|
||||
for (i = 0; i < size; i++)
|
||||
new_back[i] = ty->back[i];
|
||||
for (i = size; i < ty->backsize; i++)
|
||||
termpty_save_free(ty, &ty->back[i]);
|
||||
free(ty->back);
|
||||
ty->back = new_back;
|
||||
}
|
||||
_accounting_change(sizeof(Termsave) * (size - ty->backsize));
|
||||
new_back = realloc(ty->back, sizeof(Termsave) * size);
|
||||
if (!new_back)
|
||||
return;
|
||||
memset(new_back + ty->backsize, 0,
|
||||
sizeof(Termsave) * (size - ty->backsize));
|
||||
ty->back = new_back;
|
||||
}
|
||||
else
|
||||
ty->back = NULL;
|
||||
{
|
||||
new_back = calloc(1, sizeof(Termsave) * size);
|
||||
if (!new_back)
|
||||
return;
|
||||
for (i = 0; i < size; i++)
|
||||
new_back[i] = ty->back[i];
|
||||
for (i = size; i < ty->backsize; i++)
|
||||
termpty_save_free(ty, &ty->back[i]);
|
||||
free(ty->back);
|
||||
ty->back = new_back;
|
||||
}
|
||||
_accounting_change(sizeof(Termsave) * (size - ty->backsize));
|
||||
end:
|
||||
ty->backpos = 0;
|
||||
ty->backsize = size;
|
||||
|
|
Loading…
Reference in New Issue