From patchwork Fri Dec 14 16:57:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roman Kagan X-Patchwork-Id: 10731465 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CD7BD746 for ; Fri, 14 Dec 2018 16:58:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 34B9D28759 for ; Fri, 14 Dec 2018 16:58:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2072C2D3DD; Fri, 14 Dec 2018 16:58:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 91BEC2D395 for ; Fri, 14 Dec 2018 16:58:38 +0000 (UTC) Received: from localhost ([::1]:34498 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXqnN-0007ui-GS for patchwork-qemu-devel@patchwork.kernel.org; Fri, 14 Dec 2018 11:58:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXqm4-0005fZ-Ks for qemu-devel@nongnu.org; Fri, 14 Dec 2018 11:57:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXqm2-00024X-7y for qemu-devel@nongnu.org; Fri, 14 Dec 2018 11:57:16 -0500 Received: from mail-eopbgr80118.outbound.protection.outlook.com ([40.107.8.118]:22409 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXqm1-0001B5-RY for qemu-devel@nongnu.org; Fri, 14 Dec 2018 11:57:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eKM5IIDoFnP5W7dP0bARCtLt1iK8oWGTegqjKqceU6g=; b=R0sbl2+tTCMUWjVpwqz7fldxQOLemwlkO1jO5vaNIEnx4wPTWXo3qRB9laBXPlu2LmLVeSGLtASkXLfI4Jcit84vFZwcSU8flZF7jqcmpQ1PBzj4Q3R6GHY5XjDOoRr+zpOPhGpfDh0jx+KzPOqZN454OF//fhScmLuHGXPZxIw= Received: from DB8PR08MB4092.eurprd08.prod.outlook.com (20.179.10.210) by DB8PR08MB4010.eurprd08.prod.outlook.com (20.179.9.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.22; Fri, 14 Dec 2018 16:57:06 +0000 Received: from DB8PR08MB4092.eurprd08.prod.outlook.com ([fe80::d0e0:ff54:c6fe:1407]) by DB8PR08MB4092.eurprd08.prod.outlook.com ([fe80::d0e0:ff54:c6fe:1407%3]) with mapi id 15.20.1425.021; Fri, 14 Dec 2018 16:57:06 +0000 From: Roman Kagan To: "qemu-devel@nongnu.org" Thread-Topic: [RFC PATCH 1/5] qom: preserve get/set presence in aliased properties Thread-Index: AQHUk84LeeJQlcq0qUeD2xgF7dLiJA== Date: Fri, 14 Dec 2018 16:57:06 +0000 Message-ID: <20181214165657.749-2-rkagan@virtuozzo.com> References: <20181214165657.749-1-rkagan@virtuozzo.com> In-Reply-To: <20181214165657.749-1-rkagan@virtuozzo.com> Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [185.231.240.5] x-clientproxiedby: HE1PR0401CA0073.eurprd04.prod.outlook.com (2603:10a6:3:19::41) To DB8PR08MB4092.eurprd08.prod.outlook.com (2603:10a6:10:ab::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB8PR08MB4010; 20:8ib7rRtKLibqfTOvAnDqZ25gEemA7c1s3lFHIBFxruZgD35OMbX9RiTUq73WDurDT4VBFkwGV5hOEJZNTn2i4yRC8s2LGQ24H4YriIYJAb9uoGXp66I2p/5e/A7vgvjnfpm2F4mB6/jg2QLP8RBsUzX/w4q5tUJwGb4wub4wb2s= x-ms-office365-filtering-correlation-id: 82a20ab8-041e-43fc-9a0e-08d661e52d9a x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:DB8PR08MB4010; x-ms-traffictypediagnostic: DB8PR08MB4010: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(3230021)(999002)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231475)(944501520)(52105112)(148016)(149066)(150057)(6041310)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051)(76991095); SRVR:DB8PR08MB4010; BCL:0; PCL:0; RULEID:; SRVR:DB8PR08MB4010; x-forefront-prvs: 08864C38AC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(346002)(136003)(39850400004)(366004)(396003)(199004)(189003)(7736002)(486006)(2351001)(71190400001)(14444005)(305945005)(81166006)(5660300001)(81156014)(36756003)(217873002)(6916009)(102836004)(2501003)(105586002)(6486002)(256004)(26005)(106356001)(446003)(8936002)(6512007)(76176011)(1076002)(316002)(6506007)(14454004)(3846002)(6116002)(54906003)(186003)(99286004)(11346002)(97736004)(8676002)(25786009)(52116002)(53936002)(2906002)(68736007)(4326008)(86362001)(575784001)(476003)(2616005)(478600001)(5640700003)(71200400001)(386003)(66066001)(6436002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB8PR08MB4010; H:DB8PR08MB4092.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: yOm94qfLdwuoIpO6ZYFkwsAKoje6GsLpclyHAIFS+smHgG4wvPfRN4G1Yg7bvIGGbXK6GGai2GggFteg8BpK1E0UFVV80+ScQTwNLrbrpsJeOjSLhFBj6OIJnLW3Xi7EwZ5I6gTfdrENl4aG9SR5k/zEOVGVbitV5AoMPgnt7lQfAPLiJmDddJ9Z72xeTIPoKr38EUxOpcIUVjd9iKhNqbnrPZTvXuZF9KZepLyYNddwPcvOdxZTxJWduvgSunWYAnEU7TbuAQpObVNVkatBdkkOwBZWfMPVXWDHqulVSuHkbNmIC3sMopm2yntIfVnJ spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82a20ab8-041e-43fc-9a0e-08d661e52d9a X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2018 16:57:06.2515 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4010 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.8.118 Subject: [Qemu-devel] [RFC PATCH 1/5] qom: preserve get/set presence in aliased properties X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , "Michael S. Tsirkin" , Amit Shah , Markus Armbruster , Paolo Bonzini , =?iso-8859-1?q?Andreas_F=E4rber?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Usually in order to tell if a property is read-only, write-only, or read-write, one has to look at whether it has .get or .set methods. However, property aliases are always defined with both, and it's not until the call to the getter or setter when the support for the corresponding operation can be found out. To make it easier to determine if an operation is supported for an alias property, only assign it getter and setter if the target property has the corresponding method. Signed-off-by: Roman Kagan --- qom/object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qom/object.c b/qom/object.c index 17921c0a71..b362ebab19 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2382,8 +2382,8 @@ void object_property_add_alias(Object *obj, const char *name, prop->target_name = g_strdup(target_name); op = object_property_add(obj, name, prop_type, - property_get_alias, - property_set_alias, + target_prop->get ? property_get_alias : NULL, + target_prop->set ? property_set_alias : NULL, property_release_alias, prop, &local_err); if (local_err) {