summaryrefslogtreecommitdiff
path: root/src/ring.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2007-02-05 09:46:43 +0000
committerChris Wilson <cpwilson@src.gnome.org>2007-02-05 09:46:43 +0000
commitb307bc5c424787b557df9c69c1f92a7c45c558a8 (patch)
tree4b36e36a6d9aea0de893fbd98c715b726599cc79 /src/ring.h
parent285ebd25406bd8188e6da16f3290aa4682629b92 (diff)
cf Bug 342338 – suffers from memory fragmentation
2007-02-05 Chris Wilson <chris@chris-wilson.co.uk> cf Bug 342338 – suffers from memory fragmentation Reuse the last VteRowData instead of immediately freeing it. Avoids recreating and *regrowing* a new GArray on the heap. In the simple scrolling benchmarks this can boost performance by as much as 10%! * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve), (_vte_ring_remove), (_vte_ring_append): * src/ring.h: * src/vte-private.h: * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char), (vte_terminal_reset_rowdata): * src/vteseq.c: (vte_insert_line_internal), (vte_sequence_handler_scroll_up_or_down), (vte_sequence_handler_cd), (vte_sequence_handler_sf), (vte_sequence_handler_clear_screen), (vte_sequence_handler_screen_alignment_test): svn path=/trunk/; revision=1620
Diffstat (limited to 'src/ring.h')
-rw-r--r--src/ring.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/ring.h b/src/ring.h
index 6c49b85..e9a2ca0 100644
--- a/src/ring.h
+++ b/src/ring.h
@@ -65,10 +65,10 @@ VteRing *_vte_ring_new(glong max_elements,
gpointer data);
VteRing *_vte_ring_new_with_delta(glong max_elements, glong delta,
VteRingFreeFunc free, gpointer data);
-void _vte_ring_insert(VteRing *ring, glong position, gpointer data);
-void _vte_ring_insert_preserve(VteRing *ring, glong position, gpointer data);
-void _vte_ring_remove(VteRing *ring, glong position, gboolean free_element);
-void _vte_ring_append(VteRing *ring, gpointer data);
+gpointer _vte_ring_insert(VteRing *ring, glong position, gpointer data);
+gpointer _vte_ring_insert_preserve(VteRing *ring, glong position, gpointer data);
+gpointer _vte_ring_remove(VteRing *ring, glong position, gboolean free_element);
+gpointer _vte_ring_append(VteRing *ring, gpointer data);
void _vte_ring_free(VteRing *ring, gboolean free_elements);
G_END_DECLS