Fix harmless warnings in quic_encode()

The quic code has been changed recently this way:

-    ASSERT(encoder->usr, line);
+    if (line == NULL) {
+        spice_warn_if_reached();
+        return QUIC_ERROR;
+    }

It appears that the only caller of quic_encode() gives a NULL line and
rely on the more_lines() callback to return new lines instead.

Adjust the code accordingly, adding a few more checks to verify the
caller gives/returns correct values.
This commit is contained in:
Marc-André Lureau 2012-03-28 13:30:18 +02:00
parent fb24e4e28b
commit 1b41d15a99

View File

@ -1194,7 +1194,7 @@ static void quic_image_params(Encoder *encoder, QuicImageType type, int *channel
#define FILL_LINES() { \
if (line == lines_end) { \
int n = encoder->usr->more_lines(encoder->usr, &line); \
if (n <= 0) { \
if (n <= 0 || line == NULL) { \
encoder->usr->error(encoder->usr, "more lines failed\n"); \
} \
lines_end = line + n * stride; \
@ -1238,11 +1238,11 @@ int quic_encode(QuicContext *quic, QuicImageType type, int width, int height,
int i;
#endif
if (line == NULL) {
lines_end = line + num_lines * stride;
if (line == NULL && lines_end != line) {
spice_warn_if_reached();
return QUIC_ERROR;
}
lines_end = line + num_lines * stride;
quic_image_params(encoder, type, &channels, &bpc);