diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-06-02 09:07:27 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-06-02 09:07:27 (GMT) |
commit | 30111e5cf6ff5a7766296ac2579a98c16e7cc7c1 (patch) | |
tree | d75f268ad20b5ae02f954c03d9a6e19b47b8f839 /src/glibext/gbufferview.c | |
parent | f0fa987133468d7d3cae7894d813b852782bf895 (diff) |
Computed the initial lines width using all threads.
Diffstat (limited to 'src/glibext/gbufferview.c')
-rw-r--r-- | src/glibext/gbufferview.c | 26 |
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)); } |