dump layer buffer when calling tdm_layer_set_buffer
[platform/core/uifw/libtdm.git] / src / tdm_server.c
index d528c10..3ade1e5 100644 (file)
@@ -242,6 +242,8 @@ destroy_vblank_callback(struct wl_resource *resource)
 
        TDM_RETURN_IF_FAIL(vblank_info != NULL);
 
+       LIST_DEL(&vblank_info->link);
+
        if (vblank_info->vblank)
                tdm_vblank_destroy(vblank_info->vblank);
 
@@ -250,7 +252,6 @@ destroy_vblank_callback(struct wl_resource *resource)
                        destroy_wait(w);
        }
 
-       LIST_DEL(&vblank_info->link);
        free(vblank_info);
 }
 
@@ -549,6 +550,8 @@ destroy_output_callback(struct wl_resource *resource)
 
        TDM_RETURN_IF_FAIL(output_info != NULL);
 
+       LIST_DEL(&output_info->link);
+
        tdm_output_remove_change_handler(output_info->output,
                                                                         _tdm_server_cb_output_change, output_info);
 
@@ -556,7 +559,6 @@ destroy_output_callback(struct wl_resource *resource)
                wl_resource_destroy(v->resource);
        }
 
-       LIST_DEL(&output_info->link);
        free(output_info);
 }
 
@@ -789,7 +791,7 @@ static void
 _tdm_socket_init(tdm_private_loop *private_loop)
 {
        const char *dir = NULL;
-       char socket_path[128];
+       char socket_path[TDM_NAME_LEN * 2];
        int ret = -1;
        uid_t uid;
        gid_t gid;
@@ -800,7 +802,11 @@ _tdm_socket_init(tdm_private_loop *private_loop)
                return;
        }
 
-       snprintf(socket_path, sizeof(socket_path), "%s/%s", dir, "tdm-socket");
+       strncpy(socket_path, dir, TDM_NAME_LEN - 1);
+       socket_path[TDM_NAME_LEN - 1] = '\0';
+
+       strncat(socket_path, "/tdm-socket", 11);
+       socket_path[TDM_NAME_LEN + 10] = '\0';
 
        ret = chmod(socket_path, 509);
        if (ret < 0) {