Browse Source

Avoid compiler "use of uninitialised variable" warnings

The compiler isn't smart enough to figure all of these out, so
restructure things a bit to avoid warnings.
tags/v1.9.90
Pierre Ossman 5 years ago
parent
commit
9c88e0dd26
2 changed files with 39 additions and 32 deletions
  1. 33
    32
      common/rfb/CMsgReader.cxx
  2. 6
    0
      vncviewer/UserDialog.cxx

+ 33
- 32
common/rfb/CMsgReader.cxx View File

@@ -210,18 +210,19 @@ void CMsgReader::readSetXCursor(int width, int height, const Point& hotspot)
if (width > maxCursorSize || height > maxCursorSize)
throw Exception("Too big cursor");

rdr::U8 pr, pg, pb;
rdr::U8 sr, sg, sb;
int data_len = ((width+7)/8) * height;
int mask_len = ((width+7)/8) * height;
rdr::U8Array data(data_len);
rdr::U8Array mask(mask_len);

int x, y;
rdr::U8 buf[width*height*4];
rdr::U8* out;

if (width * height > 0) {
rdr::U8 pr, pg, pb;
rdr::U8 sr, sg, sb;
int data_len = ((width+7)/8) * height;
int mask_len = ((width+7)/8) * height;
rdr::U8Array data(data_len);
rdr::U8Array mask(mask_len);

int x, y;
rdr::U8* out;

pr = is->readU8();
pg = is->readU8();
pb = is->readU8();
@@ -232,31 +233,31 @@ void CMsgReader::readSetXCursor(int width, int height, const Point& hotspot)

is->readBytes(data.buf, data_len);
is->readBytes(mask.buf, mask_len);
}

int maskBytesPerRow = (width+7)/8;
out = buf;
for (y = 0;y < height;y++) {
for (x = 0;x < width;x++) {
int byte = y * maskBytesPerRow + x / 8;
int bit = 7 - x % 8;

if (data.buf[byte] & (1 << bit)) {
out[0] = pr;
out[1] = pg;
out[2] = pb;
} else {
out[0] = sr;
out[1] = sg;
out[2] = sb;
int maskBytesPerRow = (width+7)/8;
out = buf;
for (y = 0;y < height;y++) {
for (x = 0;x < width;x++) {
int byte = y * maskBytesPerRow + x / 8;
int bit = 7 - x % 8;

if (data.buf[byte] & (1 << bit)) {
out[0] = pr;
out[1] = pg;
out[2] = pb;
} else {
out[0] = sr;
out[1] = sg;
out[2] = sb;
}

if (mask.buf[byte] & (1 << bit))
out[3] = 255;
else
out[3] = 0;

out += 4;
}

if (mask.buf[byte] & (1 << bit))
out[3] = 255;
else
out[3] = 0;

out += 4;
}
}


+ 6
- 0
vncviewer/UserDialog.cxx View File

@@ -135,6 +135,12 @@ void UserDialog::getUserPasswd(bool secure, char** user, char** password)
y += 20 + 5;
username = new Fl_Input(70, y, win->w()-70-10, 25);
y += 25 + 5;
} else {
/*
* Compiler is not bright enough to understand that
* username won't be used further down...
*/
username = NULL;
}

(new Fl_Box(70, y, win->w()-70-10, 20, _("Password:")))

Loading…
Cancel
Save