Patch Detail
Show a patch.
GET /api/patches/26689/?format=api
{ "id": 26689, "url": "https://patchwork.libcamera.org/api/patches/26689/?format=api", "web_url": "https://patchwork.libcamera.org/patch/26689/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260508121843.196871-1-barnabas.pocze@ideasonboard.com>", "date": "2026-05-08T12:18:43", "name": "[v1] libcamera: base: signal: Disallow rvalue references", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "06fdc2f2c0e53f98f1d3cb7ee5194488d85e6c56", "submitter": { "id": 216, "url": "https://patchwork.libcamera.org/api/people/216/?format=api", "name": "Barnabás Pőcze", "email": "barnabas.pocze@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/26689/mbox/", "series": [ { "id": 5923, "url": "https://patchwork.libcamera.org/api/series/5923/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5923", "date": "2026-05-08T12:18:43", "name": "[v1] libcamera: base: signal: Disallow rvalue references", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5923/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/26689/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/26689/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 2AED5BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 8 May 2026 12:18:49 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7C2D162FE1;\n\tFri, 8 May 2026 14:18:48 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 992C862FD3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 8 May 2026 14:18:46 +0200 (CEST)", "from pb-laptop.local (185.221.140.217.nat.pool.zt.hu\n\t[185.221.140.217])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D530B9A4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 8 May 2026 14:18:41 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"I7H9OnRk\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1778242721;\n\tbh=JkmDQZIBnbSFfLdGlMzAmKuOO8CZRF6hcqsXzglHHzU=;\n\th=From:To:Subject:Date:From;\n\tb=I7H9OnRk4l3H4eO4ysyuBu1zbTgdx8bzwNUsN9+6JlJkitH41acPYhO3HW8aujJkN\n\tCLmteFAEls2vEHYKmHI4yQGIrBOB7QTADiOEwvOyWvve0W//gE8FMJ+lKUDOGOdMys\n\t/x7F8EmYvKissix/LmsAQUa8qKcsJI7hUFAd4PWU=", "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Subject": "[PATCH v1] libcamera: base: signal: Disallow rvalue references", "Date": "Fri, 8 May 2026 14:18:43 +0200", "Message-ID": "<20260508121843.196871-1-barnabas.pocze@ideasonboard.com>", "X-Mailer": "git-send-email 2.54.0", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "The main use of rvalue references is \"moving\", usually taking\nownership of the resources of an object and setting it to some\nkind of \"empty\" state. However, it is not clear how that could\n(or should) work with a signal that has multiple recipients,\nso disallow the use of rvalue references as signal arguments.\n\nSigned-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n---\n include/libcamera/base/signal.h | 2 ++\n 1 file changed, 2 insertions(+)", "diff": "diff --git a/include/libcamera/base/signal.h b/include/libcamera/base/signal.h\nindex ed1d81ea5c..2bac5a9832 100644\n--- a/include/libcamera/base/signal.h\n+++ b/include/libcamera/base/signal.h\n@@ -37,6 +37,8 @@ private:\n template<typename... Args>\n class Signal : public SignalBase\n {\n+\tstatic_assert((!std::is_rvalue_reference_v<Args> && ...));\n+\n public:\n \t~Signal()\n \t{\n", "prefixes": [ "v1" ] }