billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=787e16f21523ebe251bdef5b34d2a11c3d400ab8

commit 787e16f21523ebe251bdef5b34d2a11c3d400ab8
Author: Boris Faure <[email protected]>
Date:   Sun Nov 24 19:50:08 2019 +0100

    backlog: simplify code. Closes CID1407754
---
 src/bin/backlog.c | 45 ++++++++++++++++++++-------------------------
 1 file changed, 20 insertions(+), 25 deletions(-)

diff --git a/src/bin/backlog.c b/src/bin/backlog.c
index 3941d21..0679383 100644
--- a/src/bin/backlog.c
+++ b/src/bin/backlog.c
@@ -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;

-- 


Reply via email to