Commit 6c481003 authored by Peter Hutterer's avatar Peter Hutterer Committed by Pekka Paalanen

scanner: add helper function to convert "since" to a version

Same code we already had, just moved into a helper function
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: 's avatarYong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
parent 493eda33
......@@ -609,6 +609,27 @@ strtouint(const char *str)
return (int)ret;
}
static int
version_from_since(struct parse_context *ctx, const char *since)
{
int version;
if (since != NULL) {
version = strtouint(since);
if (version == -1) {
fail(&ctx->loc, "invalid integer (%s)\n", since);
} else if (version > ctx->interface->version) {
fail(&ctx->loc, "since (%u) larger than version (%u)\n",
version, ctx->interface->version);
}
} else {
version = 1;
}
return version;
}
static void
start_element(void *data, const char *element_name, const char **atts)
{
......@@ -694,17 +715,7 @@ start_element(void *data, const char *element_name, const char **atts)
if (type != NULL && strcmp(type, "destructor") == 0)
message->destructor = 1;
if (since != NULL) {
version = strtouint(since);
if (version == -1) {
fail(&ctx->loc, "invalid integer (%s)\n", since);
} else if (version > ctx->interface->version) {
fail(&ctx->loc, "since (%u) larger than version (%u)\n",
version, ctx->interface->version);
}
} else {
version = 1;
}
version = version_from_since(ctx, since);
if (version < ctx->interface->since)
warn(&ctx->loc, "since version not increasing\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment