Fix buffer set error 36/271436/2
authorJunkyeong, Kim <jk0430.kim@samsung.com>
Mon, 21 Feb 2022 07:45:24 +0000 (16:45 +0900)
committerJunkyeong, Kim <jk0430.kim@samsung.com>
Wed, 23 Feb 2022 06:29:46 +0000 (15:29 +0900)
Buffer set must be executed out of for loop.

Change-Id: I0b6a15788860e431066cb5a357589eff6e640cb0
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
src/e_mod_rdp.c

index f5e6821..24646a3 100644 (file)
@@ -415,8 +415,6 @@ e_rdp_peer_refresh_raw(pixman_region32_t *region, pixman_image_t *image, freerdp
 static void
 e_rdp_peer_refresh_region(pixman_region32_t *region, freerdp_peer *peer, pixman_image_t *pix_surface)
 {
-   E_Rdp_Peer_Context *context = (E_Rdp_Peer_Context *)peer->context;
-   E_Rdp_Output *output = context->rdpBackend->output;
    rdpSettings *settings = peer->settings;
 
    if (settings->RemoteFxCodec)
@@ -425,15 +423,6 @@ e_rdp_peer_refresh_region(pixman_region32_t *region, freerdp_peer *peer, pixman_
      e_rdp_peer_refresh_nsc(region, pix_surface, peer);
    else
      e_rdp_peer_refresh_raw(region, pix_surface, peer);
-
-   if (output->showing_surface)
-     pixman_image_unref(output->showing_surface);
-   output->showing_surface = pix_surface;
-
-   if (output->showing_tbm_surface)
-     tbm_surface_destroy(output->showing_tbm_surface);
-   output->showing_tbm_surface = output->prepare_tbm_surface;
-   output->prepare_tbm_surface = NULL;
 }
 
 static void
@@ -1158,6 +1147,15 @@ _e_rdp_frame_timer(void *data)
      }
    pixman_region32_fini(&damage);
 
+   if (output->showing_surface)
+     pixman_image_unref(output->showing_surface);
+   output->showing_surface = pix_surface;
+
+   if (output->showing_tbm_surface)
+     tbm_surface_destroy(output->showing_tbm_surface);
+   output->showing_tbm_surface = output->prepare_tbm_surface;
+   output->prepare_tbm_surface = NULL;
+
 #if RDP_DEBUG
    gettimeofday(&end_refresh_tv, NULL);
    INF("pixman refresh time: %ld ms", ((end_refresh_tv.tv_sec * 1000 + end_refresh_tv.tv_usec / 1000) - (end_capture_tv.tv_sec * 1000 + end_capture_tv.tv_usec / 1000)));