mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
qapi: g_hash_table_find() instead of GHashTableIter.
GHashTableIter was first introduced in glib 2.16. This patch removes it in favor of older g_hash_table_find() for better compatibility with RHEL5. Signed-off-by: NODA, Kai <nodakai@gmail.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
db58f9c060
commit
57a33d8967
1 changed files with 17 additions and 8 deletions
|
@ -87,20 +87,29 @@ static void qmp_input_push(QmpInputVisitor *qiv, QObject *obj, Error **errp)
|
|||
qiv->nb_stack++;
|
||||
}
|
||||
|
||||
/** Only for qmp_input_pop. */
|
||||
static gboolean always_true(gpointer key, gpointer val, gpointer user_pkey)
|
||||
{
|
||||
*(const char **)user_pkey = (const char *)key;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void qmp_input_pop(QmpInputVisitor *qiv, Error **errp)
|
||||
{
|
||||
GHashTableIter iter;
|
||||
gpointer key;
|
||||
assert(qiv->nb_stack > 0);
|
||||
|
||||
if (qiv->strict && qiv->stack[qiv->nb_stack - 1].h) {
|
||||
g_hash_table_iter_init(&iter, qiv->stack[qiv->nb_stack - 1].h);
|
||||
if (g_hash_table_iter_next(&iter, &key, NULL)) {
|
||||
error_set(errp, QERR_QMP_EXTRA_MEMBER, (char *) key);
|
||||
if (qiv->strict) {
|
||||
GHashTable * const top_ht = qiv->stack[qiv->nb_stack - 1].h;
|
||||
if (top_ht) {
|
||||
if (g_hash_table_size(top_ht)) {
|
||||
const char *key;
|
||||
g_hash_table_find(top_ht, always_true, &key);
|
||||
error_set(errp, QERR_QMP_EXTRA_MEMBER, key);
|
||||
}
|
||||
g_hash_table_unref(top_ht);
|
||||
}
|
||||
g_hash_table_unref(qiv->stack[qiv->nb_stack - 1].h);
|
||||
}
|
||||
|
||||
assert(qiv->nb_stack > 0);
|
||||
qiv->nb_stack--;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue