billiob pushed a commit to branch master.

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

commit e6b78bd4064a4e0751b70f058a5d513b3377d3e6
Author: Boris Faure <[email protected]>
Date:   Sun Nov 24 00:11:00 2019 +0100

    backlog: take the size of backlog into account
---
 src/bin/backlog.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/bin/backlog.c b/src/bin/backlog.c
index b387b85..62669b9 100644
--- a/src/bin/backlog.c
+++ b/src/bin/backlog.c
@@ -113,6 +113,7 @@ termpty_backlog_free(Termpty *ty)
 
    for (i = 0; i < ty->backsize; i++)
      termpty_save_free(ty, &ty->back[i]);
+   _accounting_change(-1 * sizeof(Termsave) * ty->backsize);
    free(ty->back);
    ty->back = NULL;
 }
@@ -171,16 +172,12 @@ termpty_backlog_size_set(Termpty *ty, size_t size)
    /* TODO: RESIZE: handle that case better: changing backscroll size */
    termpty_backlog_lock();
 
-   if (ty->back)
+   termpty_backlog_free(ty);
+   if (size > 0)
      {
-        size_t i;
-
-        for (i = 0; i < ty->backsize; i++)
-          termpty_save_free(ty, &ty->back[i]);
-        free(ty->back);
+        ty->back = calloc(1, sizeof(Termsave) * size);
+        _accounting_change(sizeof(Termsave) * size);
      }
-   if (size > 0)
-     ty->back = calloc(1, sizeof(Termsave) * size);
    else
      ty->back = NULL;
    ty->backpos = 0;

-- 


Reply via email to