From patchwork Wed Jan 7 10:38:30 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 25679 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 39E9EBDCBF for ; Wed, 7 Jan 2026 10:38:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6124461FC1; Wed, 7 Jan 2026 11:38:45 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="dl7pjlfI"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0083D61F61 for ; Wed, 7 Jan 2026 11:38:43 +0100 (CET) Received: from neptunite.hamster-moth.ts.net (unknown [IPv6:2404:7a81:160:2100:35ba:7791:4fab:f7ec]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 4E65A593; Wed, 7 Jan 2026 11:38:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1767782302; bh=QqUhxtvzYF4A72etfsIzm95fW3nWHqIFkGgeg1X1Qbk=; h=From:To:Cc:Subject:Date:From; b=dl7pjlfIAW7rgBam3WsX39pUVIPJSKW3fIIRn8D4/MxznQW15SH8d+63qpyYcnTPO 48MY6enZagrntTVtYBZ6SoK4JCARwy8cKQ4sS+u/0ga/EfFXf5wEuIQdlnM0mpZRWQ zN407pgKHRZ9aC4JU80cmUhe3QDXDY849yv+/q3U= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH] libcamera: control_serializer: Remove unnecessary allocation Date: Wed, 7 Jan 2026 19:38:30 +0900 Message-ID: <20260107103830.1415267-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" In between versions of the patch "libcamera: control_serializer: Add array info to serialized ControlValue", ipa_control_value_entry was changed to be members of ipa_control_info_entry as opposed to being serialized at the same level. The binarySize/entriesSize computation was not updated, however, leaving some extra memory allocated for the serialized form of ControlInfoMap. Fix this by removing the extra size for 3 * ipa_control_value_entry.. Signed-off-by: Paul Elder Reviewed-by: Daniel Scally Reviewed-by: Barnabás Pőcze Reviewed-by: Laurent Pinchart --- src/libcamera/control_serializer.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp index 843e2772f848..8812e6e23d5a 100644 --- a/src/libcamera/control_serializer.cpp +++ b/src/libcamera/control_serializer.cpp @@ -164,8 +164,7 @@ size_t ControlSerializer::binarySize(const ControlInfo &info) size_t ControlSerializer::binarySize(const ControlInfoMap &infoMap) { size_t size = sizeof(struct ipa_controls_header) - + infoMap.size() * (sizeof(struct ipa_control_info_entry) + - 3 * sizeof(struct ipa_control_value_entry)); + + infoMap.size() * (sizeof(struct ipa_control_info_entry)); for (const auto &ctrl : infoMap) size += binarySize(ctrl.second); @@ -234,8 +233,7 @@ int ControlSerializer::serialize(const ControlInfoMap &infoMap, /* Compute entries and data required sizes. */ size_t entriesSize = infoMap.size() - * (sizeof(struct ipa_control_info_entry) + - 3 * sizeof(struct ipa_control_value_entry)); + * (sizeof(struct ipa_control_info_entry)); size_t valuesSize = 0; for (const auto &ctrl : infoMap) valuesSize += binarySize(ctrl.second);