From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485736; cv=none; d=zohomail.com; s=zohoarc; b=lC0kjD3SuMNvGYMoSqfOzUyscpI/q1vxjuF9oseq64LfD7uP+QbLbB0J+J8b7bsphSB2xxb1T1xmG/VUsfv7ev5fhCuEL3yt7ONYkji0VEUgjxHnq1F5S6WJyvtgS4j4OqGkrWT/FqoryB90wsrh/6WXwMKY/2PM2M+oGegLOEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485736; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hiZgm8pqiIPSqZSnhTLPdWvEW87iUNjwb11DtO5aXf4=; b=f3bzqq2tcfjD/tt5vSS9B9xzwDZKtLl0OrJOGVw+dc6PZGCkf8rtg3bsTymfStQLAkoXZuJOezrngwG59MCIsaNxAoY79rOK0hCO2BYiigtF2kRr7vvnqyEzawFPTawtpInaem2x09kS9AOGnLN9WZAzFCoJispNg6Hu1u2Z3vo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485736540193.85307355414147; Thu, 20 Mar 2025 08:48:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7r-0003rX-Cz; Thu, 20 Mar 2025 11:48:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7I-0003Qm-Jd for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:33 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7G-0007nZ-SR for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:32 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3913fdd003bso567891f8f.1 for ; Thu, 20 Mar 2025 08:47:30 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-395cb318acfsm24566973f8f.70.2025.03.20.08.47.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485649; x=1743090449; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hiZgm8pqiIPSqZSnhTLPdWvEW87iUNjwb11DtO5aXf4=; b=BjWjj6QVdYsWWyPqNTkP34NN0hE6wyq+pBBUglXXe9wbyfga+J87e8WUcvILQDVfgp 8k7PmY4r2IwtKd0uLp24JV/NTX0ZibwqO+mXqQrr+ttj+LxjLC3iGYiOZwFtNI+H2b2a j4NJhZoMgQGVm11o+A/zhtF8xNj5S4UrqIBi34X3XqHkNMLRtvC8TZcKiFidI2WP1jqU 0EMZ9gSCOF1ShBMC1m5a53DzjrnCBAFOynSx/q6m/ylIcwp2i0y64sEyIhMq6fK2pYk9 bmW3916rbkptR6fAiGQqhXdBZ1y0R8xO8Re7SHidyg7n221skOfZ37BKkZOwUYxyV0lf 2mZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485649; x=1743090449; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hiZgm8pqiIPSqZSnhTLPdWvEW87iUNjwb11DtO5aXf4=; b=tt6fyXGFT5CBKm623HcR0UUO3yeh+a6B2Bt9Q6h489WT/MdPz+x7OWJ863FQ2atpDV WBNp46DBnZD9NGK3gADCSyvEUCqY8nkCfdVUPFr+/4mqQf5qmozgW98C/MTn0PrRgSSt IgnYpqwYFVEVb84soWKRulrlljYEUjFOh8if68PmuuqTPNYLhZCIoUDSEcrm3MLALeYc fm02TOXktYEKe7uxGJ5cc/No/CJxSoKUeH3rpcxMVRRgsOOvF+BIEdmXhWnVPcQf1e+V cHIPF6MakbSQFaKGY3ntGPanDZIjqCTkP8cKojQuve987dFq2+c4D01M3Ru8s79+xAzQ 0fhw== X-Gm-Message-State: AOJu0Yxusqso36oFdUzzt/1MTw3xIfUemoHm6Z/JwW/Ea+TAwLi0g1tn SXYvKClEf2bgzXsBUNArnnDt8vQcxBiv1nwwwGzy494IO+yiwgStIXH4CDrtSPCanuKDjzC02+4 Q X-Gm-Gg: ASbGncvzeqz+PyGOLaPRQj0tpG0FDSCHUf8F/K9CqJSa24/UEQsyRnT142iIKsEs8mC BdKieXARztrLjlMSaNiPXK2XCcRrRA14zYwU2OuxE68viYYXQXB6/JebQELLRc4S+aiGIH7auMR 8cWNmyjGeLIC0jy4R6QnmKccmyaMQw26hMjLVW+HDHh527LQp36Jcyd1+yCRQdDVbyquCFI93fg +eMJZScAlDLyZ+d95HJhWsaVICU0HpBABRv3Hinb4As2VxHOiU8+gh6BVRiraSHufFZ7hpYtgo9 JQZuxVHiWKCnY+5qQcgMQilj3fRMaGEJB7KqwmVnmVgg7lUmiDm0BiYUniudbHWtpuOQMNMIZ7S jpm2KjhXxmrUJNu0yAAroYPU9ME+iscHjrAk= X-Google-Smtp-Source: AGHT+IEh4xmDb9UgaCiygGaku4fMnhFOdzN8ff7lw6Srk6HHkWH0iX1liYFja2LuiUOwAMDh1/US6w== X-Received: by 2002:a05:6000:178b:b0:390:f9e0:f0d0 with SMTP id ffacd0b85a97d-3997f8f751bmr13487f8f.6.1742485648791; Thu, 20 Mar 2025 08:47:28 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-10.1 1/6] qom: Factor object_class_dynamic_cast_ambiguous() out Date: Thu, 20 Mar 2025 16:47:17 +0100 Message-ID: <20250320154722.27349-2-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=philmd@linaro.org; helo=mail-wr1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485738316019000 In order to allow matching ambiguous types in the next commit, factor object_class_dynamic_cast_ambiguous() out of object_class_dynamic_cast(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- qom/object.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/qom/object.c b/qom/object.c index 01618d06bd8..1620a87ef44 100644 --- a/qom/object.c +++ b/qom/object.c @@ -940,8 +940,9 @@ out: return obj; } =20 -ObjectClass *object_class_dynamic_cast(ObjectClass *class, - const char *typename) +static ObjectClass *object_class_dynamic_cast_ambiguous(ObjectClass *class, + const char *typena= me, + bool *ambiguous) { ObjectClass *ret =3D NULL; TypeImpl *target_type; @@ -977,6 +978,9 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *cla= ss, } } =20 + if (ambiguous) { + *ambiguous =3D found > 0; + } /* The match was ambiguous, don't allow a cast */ if (found > 1) { ret =3D NULL; @@ -988,6 +992,12 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *cl= ass, return ret; } =20 +ObjectClass *object_class_dynamic_cast(ObjectClass *class, + const char *typename) +{ + return object_class_dynamic_cast_ambiguous(class, typename, NULL); +} + ObjectClass *object_class_dynamic_cast_assert(ObjectClass *class, const char *typename, const char *file, int line, --=20 2.47.1 From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485708; cv=none; d=zohomail.com; s=zohoarc; b=c1ECf/+Gr45TdVQmQPHDd+tuE4wrfeADvwkmxnvMOkgivf8HnoMb9X+i53Aay1GDDwWIUbUMwE+YoqwQ+IqOVj/TROM53mWvF8O71IN+SfVJQc+K+pC6ufFTUIjmqzk5eF8WI8KXV359xG0CaZ0UuoM6P1Ipr5+vNUG23lBzM1M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485708; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GC9BJXwZMB68nDcfXgqs95N9vIk0tB0Sm7nNBQ7VN3g=; b=SbbBGyPQKAEZvzQLzcnEKJoGSbOoF+8tBsWydZBnnXTOM25pIAa7T6iLaJ3YrWeHDcrNN/+n0EWVBFcHuInNGABrEtGoap+/K4xpHenM+W6SmQQcua8L9s6VfrFLSnJl5LvJUT7M51E0mHTL8Suh84GUGcvc+e60MU9KBbTpm1M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485708754224.29963799579002; Thu, 20 Mar 2025 08:48:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7w-00041z-7p; Thu, 20 Mar 2025 11:48:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7P-0003Tn-8W for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:49 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7N-0007oG-J3 for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:38 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-399744f74e9so643143f8f.1 for ; Thu, 20 Mar 2025 08:47:35 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-395cb40fa30sm24349899f8f.68.2025.03.20.08.47.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485653; x=1743090453; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GC9BJXwZMB68nDcfXgqs95N9vIk0tB0Sm7nNBQ7VN3g=; b=yKpkJ1Eo8LuQmzL6FJedANYlBo6nHsu8C7Hfubf1qpFm7vdYiLKIdCBj+yiev2bmzK xkWo9cWBpjcQ8YS8PAFJ9ducxqOCZPo+OO+m7nRHyYVLp3QlapiGRokTSm/7KHbgJnEs 7Jph4ioiv8xIz/2VfalEWDkORymU/GV0rf3qPNlJlt83EJaOiNd7R7Jgc05NdZkkslXE VGTBEMjNst64mGN71ffGBxjJ11o0ztYRlX756IX/abHQ48rBd0OIE1F0I4xSgDn4KzEm 3naY98FmGlipSrO1woSpIdKUsaPUCePhmRYYbKmscnWW2twNPwVma8P+spsd8T/U4FsA tcMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485653; x=1743090453; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GC9BJXwZMB68nDcfXgqs95N9vIk0tB0Sm7nNBQ7VN3g=; b=KzRK2amgE2KvPCS8NRgzrzZbuJxZ1cNWtAXmgHJUvOPA/JMV49xeeZFUSMrK20s4mQ iDtjcyZatNYZYgO0HE84cP06olRAros3dHDcfk+e89jFw4zz+j1gchwS4hhya6wx/xhv Qd9OFxMJQ7twwxs6fJpdJ1LaIm5oIjQclPjeEKyDOTDh6CiKg1uyH9d7PE2PLHmaaOim UKQRE/ZZYqDUHOUYRy3h4nWBJzxj8JRCtdr5KtlMwGwtoJ+QYBLRO86WQDELo+pict0S HXIuWOYIg+3g/ipoeAE8CcC/sgdRRrxk8GoKT1sNebgBfxNXPOHztZ6qouHW/0MQvZ+s g0mw== X-Gm-Message-State: AOJu0YxK5WvJLEB6yTekLlu1s0ZAqnabBXGkhaZapywFgikIp4KU9BuA j0E6bm0StxCnEFfdveKCqtJyIxaQbTwzf/6BuPvDa434lZkV6Hvt+cQ2z/gMDLKD1SITM7cj7yH N X-Gm-Gg: ASbGnctnh5WB2UbFysvx8R6swGJYPi7APTBDJImeVisCpdu76oWPVo+XklA+gZas8O4 KRROStJ9zVGP1Xs54ZqXjRPwO7bNfLfjC55TRg/7xN/VdYfSSAoAKRJfYrPoRVvgipLGfem++ZY H4L72q1W2HKDdvhWF9vADNoP6S9g1dm9HcV3L0nUjMuNfNxVEWgos+JmAuOWESB6rwQgYsbFeWY w11Q/dG6tpN2cXXbztqryOTQwJ/jUCx7jIWYKyqFeC8we8eoXv1Hb/dq9UcVy7ICHHnYduzoavk uxZbx34L295knzUctP4GnTCbIFA+C4ANyiqVfTvHNpQ4Wl7S62D7aVGt7KZFEaLtqI6bmYGPzZk BvTwg+IXhpqMPV1OXV86r+nhj X-Google-Smtp-Source: AGHT+IF6djAcd1lLvRp2p/RhIZ/hWfF6UWx0s42BFk2yoq7T2E2/r3C+EtXWa3aVpAGdaiV46louwQ== X-Received: by 2002:a5d:598f:0:b0:390:fb37:1ca with SMTP id ffacd0b85a97d-39973b04a9amr8653898f8f.53.1742485653445; Thu, 20 Mar 2025 08:47:33 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-10.1 2/6] qom: Add object_class_implements_type() Date: Thu, 20 Mar 2025 16:47:18 +0100 Message-ID: <20250320154722.27349-3-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=philmd@linaro.org; helo=mail-wr1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485710207019100 Add the object_class_implements_type() method to check whether a class implement a type, which can be ambiguous for interfaces. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/qom/object.h | 10 ++++++++++ qom/object.c | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 9192265db76..fd74d4be89f 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -995,6 +995,16 @@ const char *object_class_get_name(ObjectClass *klass); */ bool object_class_is_abstract(ObjectClass *klass); =20 +/** + * object_class_implements_type: + * @klass: The class to check the implementation for. + * @typename: The QOM typename of the implementation to check to. + * + * Returns: %true if @klass implements %typename, %false otherwise. + */ +bool object_class_implements_type(ObjectClass *class, + const char *typename); + /** * object_class_by_name: * @typename: The QOM typename to obtain the class for. diff --git a/qom/object.c b/qom/object.c index 1620a87ef44..b9948937935 100644 --- a/qom/object.c +++ b/qom/object.c @@ -992,6 +992,17 @@ static ObjectClass *object_class_dynamic_cast_ambiguou= s(ObjectClass *class, return ret; } =20 +bool object_class_implements_type(ObjectClass *class, + const char *typename) +{ + ObjectClass *k; + bool ambiguous =3D false; + + k =3D object_class_dynamic_cast_ambiguous(class, typename, &ambiguous); + + return k || ambiguous; +} + ObjectClass *object_class_dynamic_cast(ObjectClass *class, const char *typename) { --=20 2.47.1 From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485705; cv=none; d=zohomail.com; s=zohoarc; b=IhwrF+/WKlm03IBVcXy75ncwcv4zXHRmMt0wzdmhPXMS/V/a4OC6qs2unpGAMbg/K7M2I5CJxE+vpjMAPMdDmbCWTM1N4+7bx0lWd0KaWd5rZ5Tz1S80p805UMgB7jkxcchnrv22ECEexPkL17arizO+oVO8ydEI7BIB3i3QueQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485705; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/gSf0S4ib6Vee8Me5sVEAde29VMbctL8yWatlMbaa/I=; b=Eh21j1YxYZjxTWy6IUVSwNWnyubpaA7j7r1EWHG3weLaJPQM0ASpawJU77mRqxgWjSDVM3TBIt3NDOgjeEq/wV76LEfl0PwOQtvYDesPbsK3V+/3EiJ+5IdqWSdGMVUKPg1wdgdN5VV54ek88sis7yzgeJ+C9RqDDAKIchiNLuk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485705734608.5350929821857; Thu, 20 Mar 2025 08:48:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7w-000439-Ry; Thu, 20 Mar 2025 11:48:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7S-0003X1-Ht for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:53 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7Q-0007op-CS for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:42 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-399749152b4so440773f8f.3 for ; Thu, 20 Mar 2025 08:47:39 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-395c8e43244sm24726286f8f.60.2025.03.20.08.47.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485658; x=1743090458; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/gSf0S4ib6Vee8Me5sVEAde29VMbctL8yWatlMbaa/I=; b=Clty6wocDireKBZhtOaco9YY0nNFae1NN60XgQ6gOmnd3a4VgS77X0ThBRxBFKDhdw 0kAYlQlxDGeTHHDiKE12eDTkso895f+dwK7oOCw9e9udy3efRyJ0tekz7bygQtqku331 Q2qZkmvhQiVBPYMqVGpREPc7s6ah1DIQPubNck7laPioFaUxt1cMAMkxZ25jsvs8QJJ6 lALcIIprRXqm7N1aLpdOdKlH6z0JMpVetgsa3JB8UCv6I1qit35TJe1LG5mwXZm19P9d RSBQtz4m9WXSRqSBnADhHOoYu/jsLeqO6V5/HONgB2WtDTBAtVkAh8R0X3wM1blQqMOH hSjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485658; x=1743090458; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/gSf0S4ib6Vee8Me5sVEAde29VMbctL8yWatlMbaa/I=; b=JpMUnjxlYAIE2Yt+u36ljRL8BNEeGMhGFaEGNvYX4gEKewn33nUZK87zfJoZqM91Bi r+Y0zQZvR9PAf7qwG31qXgNuAQ6qvz/bIhKw3H7FK7J7gvTHtupZGeZ2Hsc+w+4Ag+N0 oMjmT/2bd2UDq+fJKIeEa6QuuXVn0wJZ80xLWtqeENRoPo6/hEm80dQCFiUCCly7g6MM Jifx57qLuZ7+aa1C6PVqgsiYYOeOuuDHHRmWnBIw4c4ABsno0ONaJkl8ZQKjbiWBOcWw f3C7zKraMvplPa/IPrzaXt/J/uwrFs+To1plzo7cZ3Tp8txxtNF32wZGr+NgkUDav76z nQFw== X-Gm-Message-State: AOJu0YzpTTO0EVQUXp+EK5CXukXx4AvUINurH5rXSsy1tfIX9SWPQFFJ GSMEEqBYbweitzT86sGUihSzYogtjACqocPDnTO0l7Eo1e0swbXcve/wTqxZRHnZN7HpSWP9Avx v X-Gm-Gg: ASbGncv0HR82vgsc5iKSCfqt+OnYxiSbnjLP4tJqFff5diwTuwHV8+rodC3xVAONdtK NrU7z/4jXhH8kyJGmp6hhJThEWRoy79/wiQnBQfM6GtjoljcDPxmH1z6DngM2Xq3e3JlFzX/j86 3Orb5q3BakbE6fTuyjrivT2PwnoVERI4TQXb27JMzigw/srCXVXkWCR5GDGwl1nWXACvwM1CCX5 olapqvBF7rAhKxUzi30Dl4Y4WTl7Ea2b2AatPKv/BDhh4YWSwouduqzgr1nUcpeVTs2D/9l4PnH yDiVGWmd4BU8nUxhv41RktagVUK5tY/hSatT0GFO041ILf4mzM2sFqe5pGg2vwVdekOV+MvJ02N ocv3OENmIKmTFsExmMBGur/Kj X-Google-Smtp-Source: AGHT+IHRAsnsJgAcXqM4Zxr6VJIFzbz2WKvKp+Wt8VDjEbtbw1uHiP+4ZJuTJB2NEZHpnpB3IDqZCQ== X-Received: by 2002:a5d:64af:0:b0:394:d0c3:da5e with SMTP id ffacd0b85a97d-39973b313demr7289619f8f.47.1742485658084; Thu, 20 Mar 2025 08:47:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-10.1 3/6] qom: Test object_class_implements_type() Date: Thu, 20 Mar 2025 16:47:19 +0100 Message-ID: <20250320154722.27349-4-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=philmd@linaro.org; helo=mail-wr1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485706166019000 Test TYPE_INDIRECT_IMPL (indirectly) implements TYPE_TEST_IF (via TYPE_TEST_IF2A or TYPE_TEST_IF2B interface). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/unit/check-qom-interface.c | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/unit/check-qom-interface.c b/tests/unit/check-qom-interf= ace.c index c99be97ed8b..c43a63e8b3c 100644 --- a/tests/unit/check-qom-interface.c +++ b/tests/unit/check-qom-interface.c @@ -36,6 +36,19 @@ static const TypeInfo test_if_info =3D { .class_size =3D sizeof(TestIfClass), }; =20 +#define TYPE_TEST_IF2A "test-interface-level2a" +#define TYPE_TEST_IF2B "test-interface-level2b" + +static const TypeInfo test_if2a_info =3D { + .name =3D TYPE_TEST_IF2A, + .parent =3D TYPE_TEST_IF, +}; + +static const TypeInfo test_if2b_info =3D { + .name =3D TYPE_TEST_IF2B, + .parent =3D TYPE_TEST_IF, +}; + #define PATTERN 0xFAFBFCFD =20 static void test_class_init(ObjectClass *oc, void *data) @@ -58,6 +71,18 @@ static const TypeInfo direct_impl_info =3D { } }; =20 +#define TYPE_INDIRECT_IMPL "indirect-impl" + +static const TypeInfo indirect_impl_info =3D { + .name =3D TYPE_INDIRECT_IMPL, + .parent =3D TYPE_DIRECT_IMPL, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_TEST_IF2A }, + { TYPE_TEST_IF2B }, + { } + } +}; + #define TYPE_INTERMEDIATE_IMPL "intermediate-impl" =20 static const TypeInfo intermediate_impl_info =3D { @@ -86,18 +111,33 @@ static void interface_intermediate_test(void) test_interface_impl(TYPE_INTERMEDIATE_IMPL); } =20 +static void interface_ambiguous_test(void) +{ + Object *obj =3D object_new(TYPE_INDIRECT_IMPL); + ObjectClass *klass =3D object_get_class(obj); + + g_assert(object_class_implements_type(klass, TYPE_TEST_IF2A)); + g_assert(object_class_implements_type(klass, TYPE_TEST_IF2B)); + g_assert(object_class_implements_type(klass, TYPE_TEST_IF)); + object_unref(obj); +} + int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); =20 module_call_init(MODULE_INIT_QOM); type_register_static(&test_if_info); + type_register_static(&test_if2a_info); + type_register_static(&test_if2b_info); type_register_static(&direct_impl_info); + type_register_static(&indirect_impl_info); type_register_static(&intermediate_impl_info); =20 g_test_add_func("/qom/interface/direct_impl", interface_direct_test); g_test_add_func("/qom/interface/intermediate_impl", interface_intermediate_test); + g_test_add_func("/qom/interface/ambiguous_impl", interface_ambiguous_t= est); =20 return g_test_run(); } --=20 2.47.1 From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485726; cv=none; d=zohomail.com; s=zohoarc; b=VsiEmiz3JH+CSsG5WRVjOBUt4ikXfB7DwHcWeLagsGB1djXZvx8KTNGHBKvi+15E+2dSuWTCM1VJVdvsnJJj+G/1DdLE35Tvmkwi1LSIt/5Fk5eLQ1SZut0pVDkwRqg1HvKnTjx5BOLw02Z73fuXiDJNijTyzB0rl7APPKZUhdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485726; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l5mdBkm56vK4L97ihZ1b8SZhbwJ9wIfLMxsKgv4QD5g=; b=lU1NxjZvbhFrMpruGGvMjBcHF23Tnmj3jrNdwEfqvqDMjxQDt8ugxcfMAR9N+cAu5stp+XJBfvu/cLdOITbD8s83UMkOWA5Go1WN5xoAzMYrg4l7QAtS47zDzD9Kyy0H7Tlv2/zvedSUVm0pbSEtjBML2w+H9eRh9SMZioel6/w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485726258475.3997719885177; Thu, 20 Mar 2025 08:48:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7s-0003wE-Tn; Thu, 20 Mar 2025 11:48:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7a-0003aa-Sw for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:48:03 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7X-0007pi-UU for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:50 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43ce71582e9so7100535e9.1 for ; Thu, 20 Mar 2025 08:47:44 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43f556a4sm52583585e9.22.2025.03.20.08.47.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485663; x=1743090463; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l5mdBkm56vK4L97ihZ1b8SZhbwJ9wIfLMxsKgv4QD5g=; b=gmw1NUQ82F2chX0U24J9bPhV27T29dXHEjEbc3Lvh5InLBnrT1TWxHaDo87Z1yyYel ZlTH3V3Vs33i5HrmuR+BML0gJzzFT9Ko5fGs6CeKwq1jIE38AR8nq3FpDcRWjLFrHphE VqSJ7CNZ3VsQrJgjonzP1ki5nbiJcZJKh0VND5t1xG6Hxo7c1+oXlpymex/oX9bILYNT pjzuwTuoY/qngP+k2xYEAjaR5DbJRFvHkiesFxlzxu6n/ZTUM1DIDtoHn5FswQ4cbATX I30E2wvBVFx0kiKd0xvGHuuGA/7p4vdFMsAlX/UNrlKRHUxCqVOZNf73JfqvdDwG12jR PLRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485663; x=1743090463; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l5mdBkm56vK4L97ihZ1b8SZhbwJ9wIfLMxsKgv4QD5g=; b=iCyeX1VYEoGN4RZoquHkz163+GVRkD3llurg7ZimlOekrle2nzcLf0KpF226OHUoJh fzC38dxXX2b5zaKOW6oWevVVGXR5XRS2+aZsJupTLSIeiTbOqP8w79YLHoki8LV/lVpf C4wn4DJUFaeHa7T1J4DrNvC5ifntjjmasusfEYdRUKT0Z/H7SModX7sMQaO7SCbfCXMd N6liG6Ir4MBLaE+VIvbsYUU3wg5yvSlaAUZS/WSqw35tVYoxLyT5N8PAZzJQUQVun8O4 SVZ0hZ5QJmh8xDmbYghzfje0/7TTDzNmIZ1p1bCDhaXJaE7P2/WyW0fsRdFyILWZ4ONe 1dtA== X-Gm-Message-State: AOJu0YwqjzZJg2dhmRGetV+n4GraOZEPzMoyoKTXU8Ar8R5gKmo5QflJ 0tS5/zchKjI/h2bkt98ZKErEdrGRRj3QDA8WN0gH1lPgOIJCCM9MVclNkod+0KilncLmvqFX0/i u X-Gm-Gg: ASbGncvc+9D3d3aKgnTB1WmLzZCjqnVg6OzMrdbhWB+YqdXZCbsyGD9ilbRkTMk+4u6 LJFsYu3MrXU0OZE2E9doq6UWudj76VApYuDg+EMSfTpioXCRdgJ7DFdSA6L6PPkjadxdJPszlwe XIcyyBkNFAfgz0ym7Kza21o018uTShsb4z64Mj9203SFT9TJpD0WLZx0YuOlW5AAaQcnIGwxOh9 0ywv1DeL7rYX0beuJr3jZe496aEkPuUNVW4W9LSVj6rbveuFeXm6V6pONWsaJBmWSw6ypchtgj9 grZXcojnWRhOSf1nPGt6CZv8j+FWZ97mh9yzZM5CGyyxYZywz3F4+Mddblz2emAA4hnMyB4M7c4 1oXsAG8hrmof2AKJtktoeXNao X-Google-Smtp-Source: AGHT+IE+kqkp5igri4QLGTSlgyQABCxPT6cQYVP63VFQ7+oyPYIEI6Y2yjS9nlxSJjbdJVspUMkb9w== X-Received: by 2002:a05:600c:3490:b0:43c:f70a:2af0 with SMTP id 5b1f17b1804b1-43d495462femr38111865e9.16.1742485662711; Thu, 20 Mar 2025 08:47:42 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-10.1 4/6] qom: Prefer object_class_implements_type() to check type implementation Date: Thu, 20 Mar 2025 16:47:20 +0100 Message-ID: <20250320154722.27349-5-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485728393019100 When we only want to check a type is implemented and are not interested by the returned class, prefer object_class_implements_type() over object_class_dynamic_cast(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char.c | 2 +- hw/arm/xlnx-versal-virt.c | 2 +- hw/core/cpu-common.c | 2 +- hw/core/machine.c | 4 ++-- hw/i386/xen/xen_platform.c | 2 +- hw/pci/pci.c | 6 +++--- qom/object.c | 2 +- qom/object_interfaces.c | 2 +- qom/qom-qmp-cmds.c | 4 ++-- system/qdev-monitor.c | 4 ++-- system/tpm.c | 2 +- target/alpha/cpu.c | 2 +- target/rx/cpu.c | 2 +- 13 files changed, 18 insertions(+), 18 deletions(-) diff --git a/chardev/char.c b/chardev/char.c index 5a9e9762adc..b7125e3aebe 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -528,7 +528,7 @@ static const ChardevClass *char_get_class(const char *d= river, Error **errp) oc =3D module_object_class_by_name(typename); g_free(typename); =20 - if (!object_class_dynamic_cast(oc, TYPE_CHARDEV)) { + if (!object_class_implements_type(oc, TYPE_CHARDEV)) { error_setg(errp, "'%s' is not a valid char driver name", driver); return NULL; } diff --git a/hw/arm/xlnx-versal-virt.c b/hw/arm/xlnx-versal-virt.c index 0c6f0359e3d..9313780a4c2 100644 --- a/hw/arm/xlnx-versal-virt.c +++ b/hw/arm/xlnx-versal-virt.c @@ -760,7 +760,7 @@ static void versal_virt_init(MachineState *machine) flash_klass =3D object_class_by_name(s->ospi_model); if (!flash_klass || object_class_is_abstract(flash_klass) || - !object_class_dynamic_cast(flash_klass, TYPE_M25P80)) { + !object_class_implements_type(flash_klass, TYPE_M25P80)) { error_report("'%s' is either abstract or" " not a subtype of m25p80", s->ospi_model); exit(1); diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c index 9064dd24f82..89c2dd53599 100644 --- a/hw/core/cpu-common.c +++ b/hw/core/cpu-common.c @@ -144,7 +144,7 @@ ObjectClass *cpu_class_by_name(const char *typename, co= nst char *cpu_model) assert(cc->class_by_name); assert(cpu_model); oc =3D cc->class_by_name(cpu_model); - if (object_class_dynamic_cast(oc, typename) && + if (object_class_implements_type(oc, typename) && !object_class_is_abstract(oc)) { return oc; } diff --git a/hw/core/machine.c b/hw/core/machine.c index f52a4f2273b..712d07e1593 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -735,7 +735,7 @@ bool device_type_is_dynamic_sysbus(MachineClass *mc, co= nst char *type) for (wl =3D mc->allowed_dynamic_sysbus_devices; !allowed && wl; wl =3D wl->next) { - allowed |=3D !!object_class_dynamic_cast(klass, wl->value); + allowed |=3D object_class_implements_type(klass, wl->value); } =20 return allowed; @@ -1553,7 +1553,7 @@ static bool is_cpu_type_supported(const MachineState = *machine, Error **errp) if (mc->valid_cpu_types) { assert(mc->valid_cpu_types[0] !=3D NULL); for (i =3D 0; mc->valid_cpu_types[i]; i++) { - if (object_class_dynamic_cast(oc, mc->valid_cpu_types[i])) { + if (object_class_implements_type(oc, mc->valid_cpu_types[i])) { break; } } diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c index dd648a2ee94..761357657f1 100644 --- a/hw/i386/xen/xen_platform.c +++ b/hw/i386/xen/xen_platform.c @@ -144,7 +144,7 @@ static void del_nic_peer(NICState *nic, void *opaque) ObjectClass *klass =3D module_object_class_by_name(nc->model); =20 /* Only delete peers of PCI NICs that we're about to delete */ - if (!klass || !object_class_dynamic_cast(klass, TYPE_PCI_DEVICE)) { + if (!klass || !object_class_implements_type(klass, TYPE_PCI_DEVICE)) { return; } =20 diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 2844ec55560..ff2373b9876 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2244,12 +2244,12 @@ static void pci_qdev_realize(DeviceState *qdev, Err= or **errp) /* initialize cap_present for pci_is_express() and pci_config_size(), * Note that hybrid PCIs are not set automatically and need to manage * QEMU_PCI_CAP_EXPRESS manually */ - if (object_class_dynamic_cast(klass, INTERFACE_PCIE_DEVICE) && - !object_class_dynamic_cast(klass, INTERFACE_CONVENTIONAL_PCI_DEVICE= )) { + if (object_class_implements_type(klass, INTERFACE_PCIE_DEVICE) && + !object_class_implements_type(klass, INTERFACE_CONVENTIONAL_PCI_DEV= ICE)) { pci_dev->cap_present |=3D QEMU_PCI_CAP_EXPRESS; } =20 - if (object_class_dynamic_cast(klass, INTERFACE_CXL_DEVICE)) { + if (object_class_implements_type(klass, INTERFACE_CXL_DEVICE)) { pci_dev->cap_present |=3D QEMU_PCIE_CAP_CXL; } =20 diff --git a/qom/object.c b/qom/object.c index b9948937935..536308c0553 100644 --- a/qom/object.c +++ b/qom/object.c @@ -894,7 +894,7 @@ bool object_set_propv(Object *obj, =20 Object *object_dynamic_cast(Object *obj, const char *typename) { - if (obj && object_class_dynamic_cast(object_get_class(obj), typename))= { + if (obj && object_class_implements_type(object_get_class(obj), typenam= e)) { return obj; } =20 diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index 1ffea1a7288..333c5f94e19 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -98,7 +98,7 @@ Object *user_creatable_add_type(const char *type, const c= har *id, return NULL; } =20 - if (!object_class_dynamic_cast(klass, TYPE_USER_CREATABLE)) { + if (!object_class_implements_type(klass, TYPE_USER_CREATABLE)) { error_setg(errp, "object type '%s' isn't supported by object-add", type); return NULL; diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c index e8665476182..1a1f0e1dfd6 100644 --- a/qom/qom-qmp-cmds.c +++ b/qom/qom-qmp-cmds.c @@ -134,7 +134,7 @@ ObjectPropertyInfoList *qmp_device_list_properties(cons= t char *typename, return NULL; } =20 - if (!object_class_dynamic_cast(klass, TYPE_DEVICE) + if (!object_class_implements_type(klass, TYPE_DEVICE) || object_class_is_abstract(klass)) { error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "typename", "a non-abstract device type"); @@ -193,7 +193,7 @@ ObjectPropertyInfoList *qmp_qom_list_properties(const c= har *typename, return NULL; } =20 - if (!object_class_dynamic_cast(klass, TYPE_OBJECT)) { + if (!object_class_implements_type(klass, TYPE_OBJECT)) { error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "typename", "a QOM type"); return NULL; diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index 5588ed2047d..7e4cfe0f0e5 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -246,7 +246,7 @@ static DeviceClass *qdev_get_device_class(const char **= driver, Error **errp) } } =20 - if (!object_class_dynamic_cast(oc, TYPE_DEVICE)) { + if (!object_class_implements_type(oc, TYPE_DEVICE)) { if (*driver !=3D original_name) { error_setg(errp, "'%s' (alias '%s') is not a valid device mode= l" " name", original_name, *driver); @@ -269,7 +269,7 @@ static DeviceClass *qdev_get_device_class(const char **= driver, Error **errp) return NULL; } =20 - if (object_class_dynamic_cast(oc, TYPE_SYS_BUS_DEVICE)) { + if (object_class_implements_type(oc, TYPE_SYS_BUS_DEVICE)) { /* sysbus devices need to be allowed by the machine */ MachineClass *mc =3D MACHINE_CLASS(object_get_class(qdev_get_machi= ne())); if (!device_type_is_dynamic_sysbus(mc, *driver)) { diff --git a/system/tpm.c b/system/tpm.c index 8df0f6e72b3..eeb1bd0e27c 100644 --- a/system/tpm.c +++ b/system/tpm.c @@ -34,7 +34,7 @@ tpm_be_find_by_type(enum TpmType type) oc =3D object_class_by_name(typename); g_free(typename); =20 - if (!object_class_dynamic_cast(oc, TYPE_TPM_BACKEND)) { + if (!object_class_implements_type(oc, TYPE_TPM_BACKEND)) { return NULL; } =20 diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c index 584c2aa76bd..f9ba199e794 100644 --- a/target/alpha/cpu.c +++ b/target/alpha/cpu.c @@ -136,7 +136,7 @@ static ObjectClass *alpha_cpu_class_by_name(const char = *cpu_model) int i; =20 oc =3D object_class_by_name(cpu_model); - if (oc !=3D NULL && object_class_dynamic_cast(oc, TYPE_ALPHA_CPU) !=3D= NULL) { + if (oc !=3D NULL && object_class_implements_type(oc, TYPE_ALPHA_CPU)) { return oc; } =20 diff --git a/target/rx/cpu.c b/target/rx/cpu.c index 0ba0d55ab5b..2cc4e1df7aa 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -119,7 +119,7 @@ static ObjectClass *rx_cpu_class_by_name(const char *cp= u_model) char *typename; =20 oc =3D object_class_by_name(cpu_model); - if (oc !=3D NULL && object_class_dynamic_cast(oc, TYPE_RX_CPU) !=3D NU= LL) { + if (oc !=3D NULL && object_class_implements_type(oc, TYPE_RX_CPU)) { return oc; } typename =3D g_strdup_printf(RX_CPU_TYPE_NAME("%s"), cpu_model); --=20 2.47.1 From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485699; cv=none; d=zohomail.com; s=zohoarc; b=hKKaNvO5l5TvQ+Iy9vqjTqUL4zdjZgbtIOjUy3WhuPwogg0uttJpoc41/EQ0oRgc/lOzovvuv2Dt9KmFWxmE1YTz7EjZpgQhg6ZoIKA0Nd3nhLy0eXeB2QL4sHtQLVnHrzQHTnn+MA6glKwLX5uIYMxSywaKqTrVHAkQ2t3os2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485699; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YQMafUmqG4jCB4tpUPdNT81l0E9rYtmlbZl+WPtco9M=; b=YwVL8k87JpZCe1AVB1Voz+664CeHoM7oRlvFOes/KO6nXFTnxIHsT1CqOaFgIesFMr0AOjtOepzpNk/T/xBMzvT1UsgTYKwULYTPXJQajxzimFYuWHS1Iqsls9HMSWMtmi0torxlKvNQSnrrlXJcovP1+Vm6TWYTks0O2eme4UU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485699267633.4729896154341; Thu, 20 Mar 2025 08:48:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7s-0003wN-Tq; Thu, 20 Mar 2025 11:48:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7c-0003ad-Dm for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:48:00 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7Z-0007qM-B5 for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:51 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-43cfdc2c8c9so6033655e9.2 for ; Thu, 20 Mar 2025 08:47:48 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43f43ecbsm52028545e9.10.2025.03.20.08.47.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485667; x=1743090467; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YQMafUmqG4jCB4tpUPdNT81l0E9rYtmlbZl+WPtco9M=; b=CyfBv4Q43ttytkp0Sf7OOkGge1f65BaOASrsihzsjB9dEQazIf7fSW38gDXksKcAXP 06Kp8TMt26gVRiBujM4pm6iIXs/5DG1sZhl0XXc0RlBaC45Yl2lZivpoayroCDKHECHV IFo5u4vqkJ+VYps+W+gxdyPveRpS7iT/+GEIlhcsDHMvaAGQeTh/dNZNshxr2S+JlCR/ X2xZdp2pX68FCBEpmKtN4NVynG/NvFY4aVOjm8d9QZR7FJ2htOyxZnoDRxqNJ7SRfnr8 HwwLABLdjzz4Vn8qFA1fYZCAS3V442l+7joOq96RiY+U5gcxttJ1i6/TxKf+lBqIMT/e tDOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485667; x=1743090467; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YQMafUmqG4jCB4tpUPdNT81l0E9rYtmlbZl+WPtco9M=; b=PkMn6eV4DkwijWtp9NrMXf+c6fpY5hxXKg7VrsXr5B7wRFfBu4MK9psCtjYs+v/W0O vsCAcIFy4GMD9WN7ydDdWDbt2RwZnkX7VQIG6NlqyxVcCN+gCm2iToRFMbgvcsSprSr0 b/TJUtI4qkwCqqYfgqe9A61r9oCa0aLjpseyNklE5AO8E09/uaN2JL4lQnfI/ZQFmBFL +x/KUK1E0VFkDoFRHf7bEU4p4XluZH6ssy65Ua+y8rRn4mh7EVU0atbXtbed1khP0tv0 OpjCHTTA2MdvnOFyX1nuErJfkzbTkLNyIq1RRKrHQqoot6hG8NMhOt6AC1KuMoaKOtmA fFhg== X-Gm-Message-State: AOJu0YyQdCAIOQQTnA/b3Zl6FCWXZzMs9WoJpai7x4bPDg4QmzxHllT9 507cLUTpe27WOMtT9C8E2uwqEblgBBtibPMcqWSAny9WrNUYHjVrKxeoEWiq8Th+veJ8GBcIHZy j X-Gm-Gg: ASbGncvudIYJRHI4YwGdySk2IPg7JMostmKETOt0LPaUcOgUWNCU/Puq6Ge8B1CMP22 HohPeog4LDaadVPdTKH6GiRz5k+bqZDnTCUmE1C/cvzAWn8BpcHB+Sbk5WEnFxciqAxhLfjVv9K MeyKJuihP7oHBOP/rpHp5uF+F8WoLnQ7wjgKM3iipWb0BX3/T32oattlmyAlPj/cq+BzEleeaUS JYUOQ2S9qNLuMDcbZIFBRg+8FuopmzbxVhpO+C56jZsD/ubR2ecDBtVt2aBc+Z8aaWntbuEv2Hz unzQVsdpZvZVH4AFlt0PvX/VktROOd2vLJmUWxI8Em3gE7KEfZRtYgbCAH3g1gzle2+r5fk/aT0 VXfrAAHiXTqX8bGadFKBs/gMy X-Google-Smtp-Source: AGHT+IE0GHXcwL1EPJLeySkkI5jBc+dj/Z7qRdcjOeD3/cW/0uwTCweFRNPEdpm+UjWYVJZkDKknrw== X-Received: by 2002:a05:600c:4503:b0:43c:fab3:4fad with SMTP id 5b1f17b1804b1-43d437c3354mr79362395e9.16.1742485667346; Thu, 20 Mar 2025 08:47:47 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-10.1 5/6] qom: Use object_class_implements_type() in object_class_foreach() Date: Thu, 20 Mar 2025 16:47:21 +0100 Message-ID: <20250320154722.27349-6-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=philmd@linaro.org; helo=mail-wm1-x333.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485701249019100 Previously classes indirectly implementing an interface more than once were triggering the ambiguous cast assertion. Since we are not interested in the returned class, but only whether it implements or not, use object_class_implements_type(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- qom/object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qom/object.c b/qom/object.c index 536308c0553..6733adcd6b2 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1136,7 +1136,7 @@ static void object_class_foreach_tramp(gpointer key, = gpointer value, } =20 if (data->implements_type &&=20 - !object_class_dynamic_cast(k, data->implements_type)) { + !object_class_implements_type(k, data->implements_type)) { return; } =20 --=20 2.47.1 From nobody Wed Apr 2 13:07:55 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1742485800; cv=none; d=zohomail.com; s=zohoarc; b=cyOQHhuFjNBLVrIhrbFYSsFY65f8y6xTFKy53ugwzbmMcUvjvBBCCw1J9YuxI8re8uTVeaLqN+EPNKlOM2IyHMz4DLgA+os6y5C6c/EbPyJhbvLxUA7LhY47h0ATsI2YoaPBI/Sps/PSlgLXonJv+ww1/SqQV2ChY+YxUUmmeK4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742485800; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hLsfjeKvzcqQzs8WcSuZ2zumUJNlo4E8yDOEHN/OK9Q=; b=DOLFSur5jZQ2BPvMsLhsTJpZDjRpp29iU/HCgONzpBfe86fREjiAOQ6Fo9dEG9TGVrrignCJ0QDH/C9fnQ+jk0jqh+YB78O/5AK2ev4/l/c1k3juvdgGBJMbea3gZcv9bzvsYOFnMap11nabbQUewd4lL866hki9O/+AVXfU/dg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1742485800281166.09406522502115; Thu, 20 Mar 2025 08:50:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvI7u-0003xh-LE; Thu, 20 Mar 2025 11:48:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvI7i-0003dO-2E for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:48:03 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvI7f-0007r9-GI for qemu-devel@nongnu.org; Thu, 20 Mar 2025 11:47:57 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43cfe63c592so10049185e9.2 for ; Thu, 20 Mar 2025 08:47:53 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d3ae04a94sm40779965e9.0.2025.03.20.08.47.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 20 Mar 2025 08:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742485672; x=1743090472; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hLsfjeKvzcqQzs8WcSuZ2zumUJNlo4E8yDOEHN/OK9Q=; b=E/uXN6ir9G4RAg1InPq+s+WQ1hBhaDE7tKGOZHFRfAhokOWOBZtVFVJQ+GyJOWdoRl 6pAIOjEH+eW4FBsGveM4WVbyuF4/fzlTh0cGCnCyTuD92RLVsK1Z6c7MRKHppIRjuBrN pUBWFdXI6KdxJxqnlBFUxxRAG8ez70oU8AYJkNxSlU9jLfkDo8+aS6NclnSn1509TWL6 LbhiSFW/vBLxw3IJi1hPeRVZAdBH45gj2V4QAG9YdiFhQ6Vg8USxgaR51vF+3YCJ6t/y ++Ecy7gsdpGly8l75w4y3piHOwJL65nmAg5D+ICaECIaJAwLsFfxoKl9QvLKB0c1Qt0R N7+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742485672; x=1743090472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hLsfjeKvzcqQzs8WcSuZ2zumUJNlo4E8yDOEHN/OK9Q=; b=sdhRCMr7Lym7urq5NPTaZ75HBPQL1K8EhRV3mDkf9sVnABP7ErG37URSp1wnFp0l5w JrRp3x67sJQmqIFR/ehgHe6o7UL2N7uJTypgG5XW0GGBQCl4xJ4tW1Ghd99ESgfh7EXd w0unLDtFU5cpKNrep9DwTcwccI60+jiWZpoeUvDHoAUeGWRa624fbBbvQh28ZKUJBp4H P74yX2AWoCXOJ1SsuvsScKD/Feh9QADzBZu6X6fgIvNj412WoIR7zTKn7HOUr2nq+4TY UvFNG4NrcRueiTXgBkDuOWtZEB5GsgD8xFlunc1ldu91C7Q00YP3sN7xOuGLoYbPrfQe xb4A== X-Gm-Message-State: AOJu0YzIhrxBUt5CeQYLO+hN/4L/EnceRvV9ZwlxXf5ParhcGgBJHSkl luja2TwUQQww7tlPboCwxoscYyozNGoiuF9HVd/bRLKvhGT2F5stmHWjMEdIUnTXSrdhX9cnRU5 W X-Gm-Gg: ASbGnctOfdYSS0rQFQ9EnVlm7mPfeDGc553kqhWlmSyPdBkHDaJuR+G7GefSIOr/EUK VrgXdacBIMm1cz1ozTPloCRV00W6CNZ/tzgI2XyoS+sZU43++EDv9wMnA11RL0SyOh1wdoqfygy 4IjONz66XabFgpvFJJYsjVxlUEDEH4WFBpuivxuspwI8WcAdlDDulFP1UFgY/0Vx14pCV8O1Klp McFjykq1AE+g+ZGGN0fj3phUE72olm5oU+9l/3rD4stgV9b5OCyPZkkohXcb/u6WhPraL5VNkzX re8KK0Sqqeb4z/tJ0ot61RV550VcGZjmc1NZVOKXtlvPBxZhpYIZo2drlrsgtxnOi/R9Ntj+UmF /SpjOZ+DX+1bLADv3NvnuKFpV X-Google-Smtp-Source: AGHT+IF8aYzjRgYgKSQFJmDxLMtD5eAA82xj5a2NHDZPCIVM6LRHldbiXoVMxxOIoc5KdxoslJKfIg== X-Received: by 2002:a05:600c:1d9f:b0:43c:f81d:f with SMTP id 5b1f17b1804b1-43d49542f51mr34329445e9.8.1742485672035; Thu, 20 Mar 2025 08:47:52 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Eduardo Habkost , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH-for-10.1 6/6] qom: Test object_class_get_list() Date: Thu, 20 Mar 2025 16:47:22 +0100 Message-ID: <20250320154722.27349-7-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250320154722.27349-1-philmd@linaro.org> References: <20250320154722.27349-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1742485802485019100 RFC FIXME: this doesn't work well :/ In the first iteration the TYPE_TEST_IF is ambiguous (matched 2 times) so OBJECT_CLASS_CHECK() triggers the cast exception. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/unit/check-qom-interface.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/unit/check-qom-interface.c b/tests/unit/check-qom-interf= ace.c index c43a63e8b3c..8a997220e06 100644 --- a/tests/unit/check-qom-interface.c +++ b/tests/unit/check-qom-interface.c @@ -115,10 +115,26 @@ static void interface_ambiguous_test(void) { Object *obj =3D object_new(TYPE_INDIRECT_IMPL); ObjectClass *klass =3D object_get_class(obj); + GSList *list, *el; =20 g_assert(object_class_implements_type(klass, TYPE_TEST_IF2A)); g_assert(object_class_implements_type(klass, TYPE_TEST_IF2B)); g_assert(object_class_implements_type(klass, TYPE_TEST_IF)); + list =3D object_class_get_list(TYPE_TEST_IF, true); + for (el =3D list; el; el =3D el->next) { + TestIfClass *ioc =3D el->data; + printf("%x %x\n", ioc->test, PATTERN); + //g_assert(ioc->test =3D=3D PATTERN); + } + g_free(list); + list =3D object_class_get_list(TYPE_TEST_IF2A, true); + for (el =3D list; el; el =3D el->next) { + TestIfClass *dc =3D OBJECT_CLASS_CHECK(TestIfClass, el->data, + TYPE_TEST_IF2A); + printf("%x %x\n", dc->test, PATTERN); + //g_assert(ioc->test =3D=3D PATTERN); + } + g_free(list); object_unref(obj); } =20 --=20 2.47.1