1 Star 0 Fork 71

wangyangdahai/libvirt

forked from src-openEuler/libvirt 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
util-json-Replace-virJSONValueObjectSteal-by-virJSON.patch 2.01 KB
一键复制 编辑 原始数据 按行查看 历史
yezengruan 提交于 2022-03-24 14:54 . update patch with openeuler !58
From bca866e875d4f1a4f02f792201cf5e46cdafe4f5 Mon Sep 17 00:00:00 2001
From: Peter Krempa <pkrempa@redhat.com>
Date: Mon, 30 Nov 2020 14:59:38 +0100
Subject: [PATCH 06/16] util: json: Replace virJSONValueObjectSteal by
virJSONValueObjectRemoveKey
virJSONValueObjectRemoveKey can be used as direct replacement. Fix the
one caller and remove the duplicate function.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/util/virjson.c | 29 ++++-------------------------
1 file changed, 4 insertions(+), 25 deletions(-)
diff --git a/src/util/virjson.c b/src/util/virjson.c
index 6921eccb60..6626e78255 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -888,30 +888,6 @@ virJSONValueObjectGet(virJSONValuePtr object,
}
-static virJSONValuePtr
-virJSONValueObjectSteal(virJSONValuePtr object,
- const char *key)
-{
- size_t i;
- virJSONValuePtr obj = NULL;
-
- if (object->type != VIR_JSON_TYPE_OBJECT)
- return NULL;
-
- for (i = 0; i < object->data.object.npairs; i++) {
- if (STREQ(object->data.object.pairs[i].key, key)) {
- obj = g_steal_pointer(&object->data.object.pairs[i].value);
- VIR_FREE(object->data.object.pairs[i].key);
- VIR_DELETE_ELEMENT(object->data.object.pairs, i,
- object->data.object.npairs);
- break;
- }
- }
-
- return obj;
-}
-
-
/* Return the value associated with KEY within OBJECT, but return NULL
* if the key is missing or if value is not the correct TYPE. */
virJSONValuePtr
@@ -934,7 +910,10 @@ virJSONValueObjectStealByType(virJSONValuePtr object,
const char *key,
virJSONType type)
{
- virJSONValuePtr value = virJSONValueObjectSteal(object, key);
+ virJSONValuePtr value;
+
+ if (virJSONValueObjectRemoveKey(object, key, &value) <= 0)
+ return NULL;
if (value && value->type == type)
return value;
--
2.27.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wangyangdahai/libvirt.git
git@gitee.com:wangyangdahai/libvirt.git
wangyangdahai
libvirt
libvirt
master

搜索帮助