summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------libpainter0
m---------librfxcodec0
-rw-r--r--xrdp/xrdp_bitmap.c31
3 files changed, 17 insertions, 14 deletions
diff --git a/libpainter b/libpainter
-Subproject eb38a0df514432afa8b8a75776bd6a135c0379e
+Subproject 15e9448f7cd770095d514ff1f6cf470d68245be
diff --git a/librfxcodec b/librfxcodec
-Subproject fb80d7d38c914af756eecb87762ea1cbb4df448
+Subproject 29fdb8f029bc887d30e0f5c097d2dee820225f3
diff --git a/xrdp/xrdp_bitmap.c b/xrdp/xrdp_bitmap.c
index 9ffc6284..053be88b 100644
--- a/xrdp/xrdp_bitmap.c
+++ b/xrdp/xrdp_bitmap.c
@@ -149,9 +149,9 @@ xrdp_bitmap_create_with_data(int width, int height,
struct xrdp_wm *wm)
{
struct xrdp_bitmap *self = (struct xrdp_bitmap *)NULL;
+ int Bpp;
#if defined(NEED_ALIGN)
tintptr data_as_int;
- int Bpp;
#endif
self = (struct xrdp_bitmap *)g_malloc(sizeof(struct xrdp_bitmap), 1);
@@ -160,6 +160,22 @@ xrdp_bitmap_create_with_data(int width, int height,
self->height = height;
self->bpp = bpp;
self->wm = wm;
+
+ Bpp = 4;
+ switch (bpp)
+ {
+ case 8:
+ Bpp = 1;
+ break;
+ case 15:
+ Bpp = 2;
+ break;
+ case 16:
+ Bpp = 2;
+ break;
+ }
+ self->line_size = width * Bpp;
+
#if defined(NEED_ALIGN)
data_as_int = (tintptr) data;
if (((bpp >= 24) && (data_as_int & 3)) ||
@@ -167,19 +183,6 @@ xrdp_bitmap_create_with_data(int width, int height,
{
/* got to copy data here, it's not aligned
other calls in this file assume alignment */
- Bpp = 4;
- switch (bpp)
- {
- case 8:
- Bpp = 1;
- break;
- case 15:
- Bpp = 2;
- break;
- case 16:
- Bpp = 2;
- break;
- }
self->data = (char *)g_malloc(width * height * Bpp, 0);
g_memcpy(self->data, data, width * height * Bpp);
return self;