|
@@ -7,6 +7,8 @@
|
|
#define NAME BPP
|
|
#define NAME BPP
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#define MAX_BYTES_PER_PIXEL 4
|
|
|
|
+
|
|
static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
|
|
static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
|
|
int x, int y, int w, int h,
|
|
int x, int y, int w, int h,
|
|
void *last_bg_,
|
|
void *last_bg_,
|
|
@@ -25,10 +27,13 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
|
|
int bg_count = 0;
|
|
int bg_count = 0;
|
|
int fg_count = 0;
|
|
int fg_count = 0;
|
|
int flags = 0;
|
|
int flags = 0;
|
|
- uint8_t data[(vs->client_pf.bytes_per_pixel + 2) * 16 * 16];
|
|
|
|
|
|
+ uint8_t data[(MAX_BYTES_PER_PIXEL + 2) * 16 * 16];
|
|
int n_data = 0;
|
|
int n_data = 0;
|
|
int n_subtiles = 0;
|
|
int n_subtiles = 0;
|
|
|
|
|
|
|
|
+ /* Enforced by set_pixel_format() */
|
|
|
|
+ assert(vs->client_pf.bytes_per_pixel <= MAX_BYTES_PER_PIXEL);
|
|
|
|
+
|
|
for (j = 0; j < h; j++) {
|
|
for (j = 0; j < h; j++) {
|
|
for (i = 0; i < w; i++) {
|
|
for (i = 0; i < w; i++) {
|
|
switch (n_colors) {
|
|
switch (n_colors) {
|
|
@@ -205,6 +210,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#undef MAX_BYTES_PER_PIXEL
|
|
#undef NAME
|
|
#undef NAME
|
|
#undef pixel_t
|
|
#undef pixel_t
|
|
#undef CONCAT_I
|
|
#undef CONCAT_I
|