From 4da53492ae1235a728d1335fdc7e3cc214df9763 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Wed, 23 Aug 2017 17:24:52 -0300 Subject: [PATCH] add EINA_VALUE_EMPTY, allow flushing empty values. EINA_VALUE_EMPTY is basically a zeroed Eina_Value, handy for declaring and returning. To cope with the rest of efl, free/del/flush on NULL shouldn't complain, so flusing an empty value should be quiet. --- src/lib/eina/eina_inline_value.x | 1 + src/lib/eina/eina_value.h | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/lib/eina/eina_inline_value.x b/src/lib/eina/eina_inline_value.x index 649e1de2a8..b8614c7ea9 100644 --- a/src/lib/eina/eina_inline_value.x +++ b/src/lib/eina/eina_inline_value.x @@ -136,6 +136,7 @@ eina_value_flush(Eina_Value *value) const Eina_Value_Type *type; void *mem; + if (!value || !value->type) return; EINA_VALUE_TYPE_CHECK_RETURN(value); type = value->type; diff --git a/src/lib/eina/eina_value.h b/src/lib/eina/eina_value.h index d163b11d5b..756314cb85 100644 --- a/src/lib/eina/eina_value.h +++ b/src/lib/eina/eina_value.h @@ -304,6 +304,16 @@ */ typedef struct _Eina_Value Eina_Value; +/** + * @def EINA_VALUE_EMPTY + * + * This is simply a value with all memory zeroed. It may be used + * to safely initialize or return a value without a type. + * + * @since 1.21 + */ +#define EINA_VALUE_EMPTY ((Eina_Value){ 0 }) + /** * @typedef Eina_Value_Type * Describes the data contained by the value.