From 98dcb32a0c5cddd6f314e06e5f39723847766ee8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 9 Nov 2021 10:07:14 +0530 Subject: [PATCH] Dedicated function to free a segment --- kitty/history.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kitty/history.c b/kitty/history.c index 590c436d8..f2c15c9a0 100644 --- a/kitty/history.c +++ b/kitty/history.c @@ -28,6 +28,11 @@ add_segment(HistoryBuf *self) { s->line_attrs = (LineAttrs*)(((uint8_t*)s->gpu_cells) + gpu_cells_size); } +static void +free_segment(HistoryBufSegment *s) { + free(s->cpu_cells); memset(s, 0, sizeof(HistoryBufSegment)); +} + static index_type segment_for(HistoryBuf *self, index_type y) { index_type seg_num = y / SEGMENT_SIZE; @@ -127,7 +132,7 @@ new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) { static void dealloc(HistoryBuf* self) { Py_CLEAR(self->line); - for (size_t i = 0; i < self->num_segments; i++) free(self->segments[i].cpu_cells); + for (size_t i = 0; i < self->num_segments; i++) free_segment(self->segments + i); free(self->segments); free_pagerhist(self); Py_TYPE(self)->tp_free((PyObject*)self);