filter array in metas

This commit is contained in:
fengzero
2026-03-10 03:24:51 +00:00
parent 327490bfb2
commit 46989e0dee
2 changed files with 11 additions and 1 deletions
+5
View File
@@ -343,6 +343,11 @@ typedef struct {
uint8_t precision;
} neu_dvalue_t;
static inline bool neu_dvalue_is_array(const neu_dvalue_t *dvalue)
{
return dvalue->type >= NEU_TYPE_ARRAY_CHAR;
}
static inline void neu_free_dvalue(neu_dvalue_t *dvalue)
{
if (dvalue->type > NEU_TYPE_ARRAY_CHAR &&
+6 -1
View File
@@ -849,7 +849,12 @@ bool neu_driver_cache_update_change(neu_driver_cache_t *cache,
}
elem->metas = calloc(n_meta, sizeof(neu_tag_meta_t));
for (int i = 0; i < n_meta; i++) {
memcpy(&elem->metas[i], &metas[i], sizeof(neu_tag_meta_t));
if (!neu_dvalue_is_array(&metas[i].value)) {
memcpy(&elem->metas[i], &metas[i], sizeof(neu_tag_meta_t));
} else {
neu_free_dvalue(&metas[i].value);
elem->metas[i].value.type = NEU_TYPE_INT8;
}
}
elem->n_meta = n_meta;