mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
refactor on redundant code copy
This commit is contained in:
@@ -91,6 +91,17 @@ UINT rail_send_channel_data(railPlugin* rail, void* data, size_t length)
|
||||
return rail_send(rail, s);
|
||||
}
|
||||
|
||||
/**
|
||||
* used by rail_client_execute() to free RAIL_EXEC_ORDER's
|
||||
* internal malloced memory;
|
||||
*/
|
||||
static void rail_client_clean_exec_order(RAIL_EXEC_ORDER* exec)
|
||||
{
|
||||
free(exec->exeOrFile.string);
|
||||
free(exec->workingDir.string);
|
||||
free(exec->arguments.string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback Interface
|
||||
*/
|
||||
@@ -124,9 +135,7 @@ static UINT rail_client_execute(RailClientContext* context,
|
||||
rail_string_to_unicode_string(exec->RemoteApplicationArguments,
|
||||
&exec->arguments); /* RemoteApplicationCmdLine */
|
||||
error = rail_send_client_exec_order(rail, exec);
|
||||
free(exec->exeOrFile.string);
|
||||
free(exec->workingDir.string);
|
||||
free(exec->arguments.string);
|
||||
rail_client_clean_exec_order(exec);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
@@ -2041,6 +2041,13 @@ static void update_free_queued_message(void* obj)
|
||||
update_message_queue_free_message(msg);
|
||||
}
|
||||
|
||||
static void update_free_window_state(WINDOW_STATE_ORDER window_state)
|
||||
{
|
||||
free(window_state.titleInfo.string);
|
||||
free(window_state.windowRects);
|
||||
free(window_state.visibilityRects);
|
||||
}
|
||||
|
||||
rdpUpdate* update_new(rdpRdp* rdp)
|
||||
{
|
||||
const wObject cb = { NULL, NULL, NULL, update_free_queued_message, NULL };
|
||||
@@ -2140,15 +2147,10 @@ void update_free(rdpUpdate* update)
|
||||
free(update->secondary);
|
||||
free(update->altsec);
|
||||
free(update->window->monitored_desktop.windowIds);
|
||||
free(update->window->window_state.titleInfo.string);
|
||||
free(update->window->window_state.windowRects);
|
||||
free(update->window->window_state.visibilityRects);
|
||||
update_free_window_state(update->window->window_state);
|
||||
if (update->window->window_icon.iconInfo)
|
||||
{
|
||||
free(update->window->window_icon.iconInfo->bitsColor);
|
||||
free(update->window->window_icon.iconInfo->bitsMask);
|
||||
free(update->window->window_icon.iconInfo->colorTable);
|
||||
free(update->window->window_icon.iconInfo);
|
||||
update_free_window_icon_info(update->window->window_icon.iconInfo);
|
||||
}
|
||||
free(update->window);
|
||||
MessageQueue_Free(update->queue);
|
||||
|
||||
@@ -354,10 +354,7 @@ BOOL update_read_window_icon_order(wStream* s, WINDOW_ORDER_INFO* orderInfo, WIN
|
||||
{
|
||||
if (window_icon->iconInfo)
|
||||
{
|
||||
free(window_icon->iconInfo->bitsColor);
|
||||
free(window_icon->iconInfo->bitsMask);
|
||||
free(window_icon->iconInfo->colorTable);
|
||||
free(window_icon->iconInfo);
|
||||
update_free_window_icon_info(window_icon->iconInfo);
|
||||
}
|
||||
|
||||
window_icon->iconInfo = (ICON_INFO*) calloc(1, sizeof(ICON_INFO));
|
||||
@@ -591,6 +588,14 @@ BOOL update_recv_desktop_info_order(rdpUpdate* update, wStream* s, WINDOW_ORDER_
|
||||
return result;
|
||||
}
|
||||
|
||||
void update_free_window_icon_info(ICON_INFO* iconInfo)
|
||||
{
|
||||
free(iconInfo->bitsColor);
|
||||
free(iconInfo->bitsMask);
|
||||
free(iconInfo->colorTable);
|
||||
free(iconInfo);
|
||||
}
|
||||
|
||||
BOOL update_recv_altsec_window_order(rdpUpdate* update, wStream* s)
|
||||
{
|
||||
UINT16 orderSize;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <freerdp/log.h>
|
||||
#include <freerdp/api.h>
|
||||
|
||||
FREERDP_LOCAL void update_free_window_icon_info(ICON_INFO* iconInfo);
|
||||
FREERDP_LOCAL BOOL update_recv_altsec_window_order(rdpUpdate* update,
|
||||
wStream* s);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user