Allocate memory for RFX encodings with maximum possible number of
rfx_rects and rfx_tiles.
This commit is contained in:
parent
623ae0fbd9
commit
f9cb0c3b45
@ -42,6 +42,9 @@
|
|||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
|
|
||||||
|
#define MAX_RDP_TILES (128 * 128) /* Per Microsoft max RDP display size */
|
||||||
|
#define MAX_RDP_RECTS ((1 << 16) - 1) /* Per RDPRFX 2.2.2.3.3 TS_RFX_REGION */
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
struct xrdp_wm *
|
struct xrdp_wm *
|
||||||
xrdp_wm_create(struct xrdp_process *owner,
|
xrdp_wm_create(struct xrdp_process *owner,
|
||||||
@ -98,20 +101,10 @@ xrdp_wm_create(struct xrdp_process *owner,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int meb = self->client_info->max_fastpath_frag_bytes & ~15;
|
int meb = self->client_info->max_fastpath_frag_bytes & ~15;
|
||||||
|
meb += sizeof(struct rfx_tile) * MAX_RDP_TILES;
|
||||||
/* XXX - Maybe supposed to add XRDP_SURCMD_PREFIX_BYTES and room
|
meb += sizeof(struct rfx_rect) * MAX_RDP_RECTS;
|
||||||
* for maximum possible struct rfx_tile and struct rfx_rect to
|
|
||||||
* above, but max_fastpath_frag_bytes is is huge already.
|
|
||||||
*/
|
|
||||||
|
|
||||||
self->max_encoding_bytes = meb;
|
self->max_encoding_bytes = meb;
|
||||||
self->encoding = (char *)g_malloc(meb, 0);
|
self->encoding = (char *)g_malloc(meb, 0);
|
||||||
|
|
||||||
/* XXX - For now anyway, just sending frameId zero in markers
|
|
||||||
* around painter's surface commands. Not interested in the
|
|
||||||
* acks and don't want to get ahead of server module's counter.
|
|
||||||
*/
|
|
||||||
|
|
||||||
self->frame_id = 0;
|
self->frame_id = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user