From patchwork Sat Apr 21 13:41:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "NODA, Kai" X-Patchwork-Id: 154214 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4720CB6FC8 for ; Sat, 21 Apr 2012 23:42:51 +1000 (EST) Received: from localhost ([::1]:49443 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLaaO-0001Kf-PO for incoming@patchwork.ozlabs.org; Sat, 21 Apr 2012 09:42:48 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34934) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLaaI-0001KL-Dx for qemu-devel@nongnu.org; Sat, 21 Apr 2012 09:42:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SLaaG-0004LS-Ie for qemu-devel@nongnu.org; Sat, 21 Apr 2012 09:42:41 -0400 Received: from mail-pz0-f46.google.com ([209.85.210.46]:64358) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLaaG-0004LG-9F for qemu-devel@nongnu.org; Sat, 21 Apr 2012 09:42:40 -0400 Received: by dadz9 with SMTP id z9so16456593dad.33 for ; Sat, 21 Apr 2012 06:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=+2EixlbicJsFKnhHguZyPxenZamO/FHTEkqdz8al/ik=; b=jbq9zCLFQxgLvcu/kBXacTDaS3ogfnHRkYThEYBUONhz5lIKdbqrKmsLMmp85pKXrv qoBIpFn8FuovYqMUAv0RtDaqjHDAKcrn0xKSvOQGT4gWW+g13sqODCRKmhLtPtkhZKEH vW/jbLeHTO/NzB44btvfr69uy64h0UpM+p08coAYOasi7IKCYFURVn3EhjP60EAdxRkA 6AL1zn7Cye3kRuIOmYgJeRMStIW4lcPaMuc7Rpm7X242ugnDuLOhe5tCUqWXelGPNAJF eCMJl6D+xdnMI+AQoO0PAGl9ihVwGEQVL8YT9ZDe9T0ZUiuPjaeSYkfMeFcZR1NApCqv GCVw== Received: by 10.68.220.232 with SMTP id pz8mr20947393pbc.87.1335015757545; Sat, 21 Apr 2012 06:42:37 -0700 (PDT) Received: from localhost.localdomain (z169241.dynamic.ppp.asahi-net.or.jp. [110.4.169.241]) by mx.google.com with ESMTPS id ox2sm8487630pbc.55.2012.04.21.06.42.34 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 21 Apr 2012 06:42:36 -0700 (PDT) From: "NODA, Kai" To: qemu-devel@nongnu.org, lcapitulino@redhat.com Date: Sat, 21 Apr 2012 22:41:27 +0900 Message-Id: <1335015687-23987-1-git-send-email-nodakai@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <20120417142303.0d3370e9@doriath.home> References: <20120417142303.0d3370e9@doriath.home> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.210.46 Cc: "NODA, Kai" , pbonzoni@redhat.com Subject: [Qemu-devel] [PATCH] qapi: g_hash_table_find() instead of GHashTableIter. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: "NODA, Kai" 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 --- Added sign-off. Sorry for inconvenience! qapi/qmp-input-visitor.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/qapi/qmp-input-visitor.c b/qapi/qmp-input-visitor.c index 74386b9..4cdc47d 100644 --- a/qapi/qmp-input-visitor.c +++ b/qapi/qmp-input-visitor.c @@ -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--; }