[Spice-devel] [spice] server: Use '%zu' to print size_t variables
Francois Gouget
fgouget at codeweavers.com
Tue Dec 15 07:54:49 PST 2015
The size_t definition is different between 32 and 64 bit systems so that
neither '%u' nor '%lu' work for both. '%zu' should be used instead.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
server/red-record-qxl.c | 4 ++--
server/red-replay-qxl.c | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
I would have preferred to find a PRIu64-style macro but I did not find
any: '%zu' seems to be universally documented as the way to print size_t
variables although I'm not sure all compilers support this format. This
is probably not an issue unless this code is going to be compiled with
very old compilers or Visual C++ though.
An alternative would be to cast the variables to int or uint64_t. Let me
know if that's preferred.
diff --git a/server/red-record-qxl.c b/server/red-record-qxl.c
index f36d0e4..9c9dd62 100644
--- a/server/red-record-qxl.c
+++ b/server/red-record-qxl.c
@@ -114,7 +114,7 @@ static void write_binary(FILE *fd, const char *prefix, size_t size, const uint8_
}
#endif
- fprintf(fd, "binary %d %s %ld:", WITH_ZLIB, prefix, size);
+ fprintf(fd, "binary %d %s %zu:", WITH_ZLIB, prefix, size);
#if WITH_ZLIB
zlib_size = zlib_encode(enc, RECORD_ZLIB_DEFAULT_COMPRESSION_LEVEL, size,
output, sizeof(output));
@@ -144,7 +144,7 @@ static size_t red_record_data_chunks_ptr(FILE *fd, const char *prefix,
data_size += cur->data_size;
count_chunks++;
}
- fprintf(fd, "data_chunks %d %ld\n", count_chunks, data_size);
+ fprintf(fd, "data_chunks %d %zu\n", count_chunks, data_size);
memslot_validate_virt(slots, (intptr_t)qxl->data, memslot_id, qxl->data_size, group_id);
write_binary(fd, prefix, qxl->data_size, qxl->data);
diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
index cedd126..66acf1e 100644
--- a/server/red-replay-qxl.c
+++ b/server/red-replay-qxl.c
@@ -198,7 +198,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz
if (*buf == NULL) {
*buf = malloc(*size + base_size);
if (*buf == NULL) {
- spice_error("allocation error for %ld", *size);
+ spice_error("allocation error for %zu", *size);
exit(1);
}
}
@@ -259,7 +259,7 @@ static size_t red_replay_data_chunks(SpiceReplay *replay, const char *prefix,
size_t next_data_size;
QXLDataChunk *cur;
- replay_fscanf(replay, "data_chunks %d %ld\n", &count_chunks, &data_size);
+ replay_fscanf(replay, "data_chunks %d %zu\n", &count_chunks, &data_size);
if (base_size == 0) {
base_size = sizeof(QXLDataChunk);
}
@@ -407,7 +407,7 @@ static QXLImage *red_replay_image(SpiceReplay *replay, uint32_t flags)
} else {
size = red_replay_data_chunks(replay, "bitmap.data", (uint8_t**)&qxl->bitmap.data, 0);
if (size != bitmap_size) {
- spice_printerr("bad image, %ld != %ld", size, bitmap_size);
+ spice_printerr("bad image, %zu != %zu", size, bitmap_size);
return NULL;
}
}
@@ -1028,7 +1028,7 @@ static QXLSurfaceCmd *red_replay_surface_cmd(SpiceReplay *replay)
if ((qxl->flags & QXL_SURF_FLAG_KEEP_DATA) != 0) {
read_binary(replay, "data", &read_size, (uint8_t**)&qxl->u.surface_create.data, 0);
if (read_size != size) {
- spice_printerr("mismatch %ld != %ld", size, read_size);
+ spice_printerr("mismatch %zu != %zu", size, read_size);
}
} else {
qxl->u.surface_create.data = (QXLPHYSICAL)malloc(size);
--
2.6.2
More information about the Spice-devel
mailing list