From nobody Mon Feb 9 19:06:21 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1612600428; cv=none; d=zohomail.com; s=zohoarc; b=lXgpjjIdZ1is7pfF/GurX3J2ASTjUqDi694juXPo4PzlF8chgfJiaZ/s3dK1JskDTPbyPRxBgptzQncj+qZFFdk1QKLFJyXOENGEJKIkWAC0kyndvZeIcPlrZpm0vnxw7kyS0EIkuhd+vtHNoupxzE3OP7mh/ol4CV97hsdfjHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1612600428; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q+7klrTFh3e3HipJEUX1v97ptgwmgfEC2kk/stFWHVg=; b=DDdYGBKCltLrL2zBl1X4oaaYK0cfzTmRnSLUW4so9HVjlpfuTduTEtOezWmWe3AxK/ybDCk5XYhhFzsMInUW1oXDY7p11nLjhvtKVJxaRmBKpy/+OVisyO5tVVMaIDv7yemoU7zdE80rYsI7N69MyVZbnX2pJUQ5zJeCMwlrHP0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1612600428674423.0933601741309; Sat, 6 Feb 2021 00:33:48 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-266-Kihr09xNOXKKusN4Zhb27g-1; Sat, 06 Feb 2021 03:33:45 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BF1D9192AB80; Sat, 6 Feb 2021 08:33:39 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9CF7A5D9CC; Sat, 6 Feb 2021 08:33:39 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3E4625807A; Sat, 6 Feb 2021 08:33:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1168XRMo004770 for ; Sat, 6 Feb 2021 03:33:27 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7E75660C78; Sat, 6 Feb 2021 08:33:27 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id C574A60C77 for ; Sat, 6 Feb 2021 08:33:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612600427; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Q+7klrTFh3e3HipJEUX1v97ptgwmgfEC2kk/stFWHVg=; b=UYy5Ojqf3x9VRfR1qGHhTEizBOdkNPbqGqhsCA2TL+e4Kw3/KJ8IA9CcxZ1bcBsiTG6dwc E5lVU8qdaXWdiHlZXdouiay5Xy0vVLL+57z3nAuTj9p/Qi1en5Bw7tb+TLL6R3rZ0oOqjf iJ7selQxbYJNhd/c0hwehGvfgHne+nQ= X-MC-Unique: Kihr09xNOXKKusN4Zhb27g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 11/40] virCPUDefCheckFeatures: Don't use 'virStringListAdd' to construct list Date: Sat, 6 Feb 2021 09:32:33 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" We already know the upper bound of items we might need so we can allocate the array upfront and avoid the quadratic complexity of 'virStringListAdd'. In this instance the returned data is kept only temporarily so a potential unused space due to filtered-out entries doesn't impose a long-term burden on memory. Signed-off-by: Peter Krempa --- src/conf/cpu_conf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index f98b0a0eb3..1de4c1e417 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -985,21 +985,21 @@ virCPUDefCheckFeatures(virCPUDefPtr cpu, void *opaque, char ***features) { - g_auto(GStrv) list =3D NULL; size_t n =3D 0; size_t i; *features =3D NULL; + if (cpu->nfeatures =3D=3D 0) + return 0; + + *features =3D g_new0(char *, cpu->nfeatures + 1); + for (i =3D 0; i < cpu->nfeatures; i++) { - if (filter(cpu->features[i].name, cpu->features[i].policy, opaque)= ) { - if (virStringListAdd(&list, cpu->features[i].name) < 0) - return -1; - n++; - } + if (filter(cpu->features[i].name, cpu->features[i].policy, opaque)) + (*features)[n++] =3D g_strdup(cpu->features[i].name); } - *features =3D g_steal_pointer(&list); return n; } --=20 2.29.2