[vte] [ring] Minor cleanup



commit 086cbf79dd47cbecf2b9afe777f940acf1ae19ef
Author: Behdad Esfahbod <behdad behdad org>
Date:   Sat Sep 5 23:06:58 2009 -0400

    [ring] Minor cleanup

 src/ring.c |   25 ++++++++++++++++---------
 src/ring.h |   16 ++++++++--------
 src/vte.c  |    4 ++--
 3 files changed, 26 insertions(+), 19 deletions(-)
---
diff --git a/src/ring.c b/src/ring.c
index 3f26dac..40e630f 100644
--- a/src/ring.c
+++ b/src/ring.c
@@ -324,17 +324,17 @@ _vte_ring_validate (VteRing * ring)
 
 /**
  * _vte_ring_new:
- * @max_elements: the maximum size the new ring will be allowed to reach
+ * @max_rows: the maximum size the new ring will be allowed to reach
  *
- * Allocates a new ring capable of holding up to @max_elements rows at a time.
+ * Allocates a new ring capable of holding up to @max_rows rows at a time.
  *
  * Returns: the new ring
  */
 VteRing *
-_vte_ring_new (glong max_elements)
+_vte_ring_new (glong max_rows)
 {
 	VteRing *ring = g_slice_new0(VteRing);
-	ring->max = MAX(max_elements, 2);
+	ring->max = MAX(max_rows, 2);
 	ring->array = g_malloc0(sizeof(ring->array[0]) * ring->max);
 
 	_vte_debug_print(VTE_DEBUG_RING, "New ring %p.\n", ring);
@@ -366,19 +366,19 @@ _vte_ring_free (VteRing *ring)
 /**
  * _vte_ring_free:
  * @ring: a #VteRing
- * @max_elements: new maximum numbers of rows in the ring
+ * @max_rows: new maximum numbers of rows in the ring
  *
  * Changes the number of lines the ring can contain.
  */
 void
-_vte_ring_resize (VteRing *ring, glong max_elements)
+_vte_ring_resize (VteRing *ring, glong max_rows)
 {
 	glong position, end, old_max;
 	VteRowData *old_array;
 
-	max_elements = MAX(max_elements, 2);
+	max_rows = MAX(max_rows, 2);
 
-	if (ring->max == max_elements)
+	if (ring->max == max_rows)
 		return;
 
 	_vte_debug_print(VTE_DEBUG_RING, "Resizing ring.\n");
@@ -387,7 +387,7 @@ _vte_ring_resize (VteRing *ring, glong max_elements)
 	old_max = ring->max;
 	old_array = ring->array;
 
-	ring->max = max_elements;
+	ring->max = max_rows;
 	ring->array = g_malloc0(sizeof(ring->array[0]) * ring->max);
 
 	end = ring->delta + ring->length;
@@ -406,6 +406,13 @@ _vte_ring_resize (VteRing *ring, glong max_elements)
 	_vte_ring_validate(ring);
 }
 
+void
+_vte_ring_shrink (VteRing *ring, unsigned int max_len)
+{
+	if (ring->length > max_len)
+		ring->length = max_len;
+}
+
 /**
  * _vte_ring_insert_internal:
  * @ring: a #VteRing
diff --git a/src/ring.h b/src/ring.h
index c3d1b86..fa44729 100644
--- a/src/ring.h
+++ b/src/ring.h
@@ -148,14 +148,14 @@ struct _VteRing {
 #define _vte_ring_length(__ring) ((__ring)->length + 0)
 #define _vte_ring_next(__ring) ((__ring)->delta + (__ring)->length)
 #define _vte_ring_index(__ring, __position) (&(__ring)->array[(__position) % (__ring)->max])
-#define _vte_ring_set_length(__ring, __length) ((__ring)->length = __length)
-
-VteRing *_vte_ring_new(glong max_elements);
-void _vte_ring_resize(VteRing *ring, glong max_elements);
-VteRowData *_vte_ring_insert(VteRing *ring, glong position);
-VteRowData *_vte_ring_append(VteRing *ring);
-void _vte_ring_remove(VteRing *ring, glong position);
-void _vte_ring_free(VteRing *ring);
+
+VteRing *_vte_ring_new (glong max_rows);
+void _vte_ring_free (VteRing *ring);
+void _vte_ring_resize (VteRing *ring, glong max_rows);
+void _vte_ring_shrink (VteRing *ring, unsigned int max_len);
+VteRowData *_vte_ring_insert (VteRing *ring, glong position);
+VteRowData *_vte_ring_append (VteRing *ring);
+void _vte_ring_remove (VteRing *ring, glong position);
 
 G_END_DECLS
 
diff --git a/src/vte.c b/src/vte.c
index 8abdb08..68832c0 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -12993,14 +12993,14 @@ vte_terminal_set_scrollback_lines(VteTerminal *terminal, glong lines)
 		scroll_delta = CLAMP (scroll_delta, low, screen->insert_delta);
 		next = MIN (next, screen->insert_delta + terminal->row_count);
 		if (_vte_ring_next (screen->row_data) > next){
-			_vte_ring_set_length (screen->row_data, next - low);
+			_vte_ring_shrink (screen->row_data, next - low);
 		}
 	} else {
 		_vte_ring_resize (screen->row_data, terminal->row_count);
 		scroll_delta = _vte_ring_delta (screen->row_data);
 		screen->insert_delta = _vte_ring_delta (screen->row_data);
 		if (_vte_ring_next (screen->row_data) > screen->insert_delta + terminal->row_count){
-			_vte_ring_set_length (screen->row_data, terminal->row_count);
+			_vte_ring_shrink (screen->row_data, terminal->row_count);
 		}
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]