Accumulate counter, do not reset for each client.

Signed-off-by: Frediano Ziglio <fzig...@redhat.com>
---
 server/dcc-encoders.c    | 5 ++---
 server/dcc-encoders.h    | 3 ++-
 server/display-channel.c | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index 5570798..cc235fa 100644
--- a/server/dcc-encoders.c
+++ b/server/dcc-encoders.c
@@ -532,13 +532,12 @@ void dcc_free_glz_drawable(DisplayChannelClient *dcc, 
RedGlzDrawable *drawable)
  * Drawable (their qxl drawables are released too).
  * NOTE - the caller should prevent encoding using the dictionary during the 
operation
  */
-int dcc_free_some_independent_glz_drawables(DisplayChannelClient *dcc)
+int dcc_free_some_independent_glz_drawables(DisplayChannelClient *dcc, int n)
 {
     RingItem *ring_link;
-    int n = 0;
 
     if (!dcc) {
-        return 0;
+        return n;
     }
     ring_link = ring_get_head(&dcc->glz_drawables);
     while ((n < RED_RELEASE_BUNCH_SIZE) && (ring_link != NULL)) {
diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
index 0d3e96a9..fed8d58 100644
--- a/server/dcc-encoders.h
+++ b/server/dcc-encoders.h
@@ -40,7 +40,8 @@ void             dcc_encoders_init                           
(DisplayChannelClie
 void             dcc_encoders_free                           
(DisplayChannelClient *dcc);
 void             dcc_free_glz_drawable                       
(DisplayChannelClient *dcc,
                                                               RedGlzDrawable 
*drawable);
-int              dcc_free_some_independent_glz_drawables     
(DisplayChannelClient *dcc);
+int              dcc_free_some_independent_glz_drawables     
(DisplayChannelClient *dcc,
+                                                              int 
release_count);
 void             dcc_free_glz_drawables                      
(DisplayChannelClient *dcc);
 void             dcc_free_glz_drawables_to_free              
(DisplayChannelClient* dcc);
 void             dcc_freeze_glz                              
(DisplayChannelClient *dcc);
diff --git a/server/display-channel.c b/server/display-channel.c
index 2888cad..db059b4 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -1267,7 +1267,7 @@ void display_channel_free_some(DisplayChannel *display)
             // encoding using the dictionary is prevented since the following 
operations might
             // change the dictionary
             pthread_rwlock_wrlock(&glz_dict->encode_lock);
-            n = dcc_free_some_independent_glz_drawables(dcc);
+            n = dcc_free_some_independent_glz_drawables(dcc, n);
         }
     }
 
-- 
2.7.4

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to