summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferview.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-06-02 09:07:27 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-06-02 09:07:27 (GMT)
commit30111e5cf6ff5a7766296ac2579a98c16e7cc7c1 (patch)
treed75f268ad20b5ae02f954c03d9a6e19b47b8f839 /src/glibext/gbufferview.c
parentf0fa987133468d7d3cae7894d813b852782bf895 (diff)
Computed the initial lines width using all threads.
Diffstat (limited to 'src/glibext/gbufferview.c')
-rw-r--r--src/glibext/gbufferview.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/glibext/gbufferview.c b/src/glibext/gbufferview.c
index c212672..af7d7ac 100644
--- a/src/glibext/gbufferview.c
+++ b/src/glibext/gbufferview.c
@@ -45,12 +45,7 @@ struct _GBufferView
size_t first; /* Indice de la première ligne */
size_t last; /* Indice de la dernière ligne */
- union
- {
- const GWidthTracker *ext_tracker; /* Suivi externe des largeurs */
- GWidthTracker *int_tracker; /* Suivi interne des largeurs */
- GWidthTracker *tracker; /* Suivi pour usage interne */
- };
+ GWidthTracker *tracker; /* Suivi des largeurs */
};
@@ -173,8 +168,7 @@ static void g_buffer_view_dispose(GBufferView *view)
{
g_object_unref(G_OBJECT(view->cache));
- if (!view->unrestricted)
- g_object_unref(G_OBJECT(view->int_tracker));
+ g_object_unref(G_OBJECT(view->tracker));
G_OBJECT_CLASS(g_buffer_view_parent_class)->dispose(G_OBJECT(view));
@@ -400,7 +394,7 @@ GBufferCache *g_buffer_view_get_cache(const GBufferView *view)
void g_buffer_view_restrict(GBufferView *view, const vmpa2t *start, const vmpa2t *end)
{
bool state; /* Nouvel état à proclamer */
- const GWidthTracker *template; /* Suivi déjà en place */
+ GWidthTracker *template; /* Suivi déjà en place */
state = (start == NULL || end == NULL);
@@ -410,16 +404,16 @@ void g_buffer_view_restrict(GBufferView *view, const vmpa2t *start, const vmpa2t
template = g_buffer_cache_get_width_tracker(view->cache);
+ /* Vérification pour le cas particulier du démarrage */
+ if (view->tracker != NULL)
+ g_object_unref(G_OBJECT(view->tracker));
+
if (view->unrestricted)
{
- /* Vérification pour le cas particulier du démarrage */
- if (view->int_tracker != NULL)
- g_object_unref(G_OBJECT(view->int_tracker));
-
view->first = 0;
view->last = g_buffer_cache_count_lines(view->cache) - 1;
- view->ext_tracker = template;
+ view->tracker = template;
}
@@ -431,7 +425,9 @@ void g_buffer_view_restrict(GBufferView *view, const vmpa2t *start, const vmpa2t
view->first = g_buffer_cache_find_index_by_addr(view->cache, start, true);
view->last = g_buffer_cache_find_index_by_addr(view->cache, end, false);
- view->ext_tracker = g_width_tracker_new_restricted(template, view->first, view->last);
+ view->tracker = g_width_tracker_new_restricted(template, view->first, view->last);
+
+ g_object_unref(G_OBJECT(template));
}