aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/atom
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/atom')
-rw-r--r--lv2/atom/util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/lv2/atom/util.h b/lv2/atom/util.h
index 383d304..6f3158f 100644
--- a/lv2/atom/util.h
+++ b/lv2/atom/util.h
@@ -371,6 +371,7 @@ lv2_atom_object_body_get(uint32_t size, const LV2_Atom_Object_Body* body, ...)
va_start(args, body);
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**)) {
+ va_end(args);
return -1;
}
}
@@ -384,6 +385,7 @@ lv2_atom_object_body_get(uint32_t size, const LV2_Atom_Object_Body* body, ...)
if (qkey == prop->key && !*qval) {
*qval = &prop->value;
if (++matches == n_queries) {
+ va_end(args);
return matches;
}
break;
@@ -424,6 +426,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...)
va_start(args, object);
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**)) {
+ va_end(args);
return -1;
}
}
@@ -437,6 +440,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...)
if (qkey == prop->key && !*qval) {
*qval = &prop->value;
if (++matches == n_queries) {
+ va_end(args);
return matches;
}
break;
@@ -479,6 +483,7 @@ lv2_atom_object_get_typed(const LV2_Atom_Object* object, ...)
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**) ||
!va_arg(args, uint32_t)) {
+ va_end(args);
return -1;
}
}
@@ -493,6 +498,7 @@ lv2_atom_object_get_typed(const LV2_Atom_Object* object, ...)
if (!*qval && qkey == prop->key && qtype == prop->value.type) {
*qval = &prop->value;
if (++matches == n_queries) {
+ va_end(args);
return matches;
}
break;