Show a patch.

GET /api/1.1/patches/2502/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2502,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/2502/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/2502/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20200104050947.7673-7-laurent.pinchart@ideasonboard.com>",
    "date": "2020-01-04T05:09:39",
    "name": "[libcamera-devel,06/14] libcamera: bound_method: Move sequence and generator to BoundMethodBase",
    "commit_ref": "d0cca54d4ae578801da7e261d3d9687bd0dd5cce",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "dd5634744435cc07e8a429b8d54397080bfb405d",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/2502/mbox/",
    "series": [
        {
            "id": 600,
            "url": "https://patchwork.libcamera.org/api/1.1/series/600/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=600",
            "date": "2020-01-04T05:09:33",
            "name": "object: Propagate return value of invoked method",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/600/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/2502/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/2502/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<laurent.pinchart@ideasonboard.com>",
        "Received": [
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E6BDE60466\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  4 Jan 2020 06:10:04 +0100 (CET)",
            "from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 843C930F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  4 Jan 2020 06:10:04 +0100 (CET)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1578114604;\n\tbh=Gw7AjzkQmim4HYDBhzJyjHUFX8b21zk9VkxOsgqCxOc=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=fm7N/CvRMUVVbm0DChrzRRWMSxL973D84mwuUZGiShR5u+m6GtMx5UUm4sE/K3daQ\n\tsg72bVyA/R3ZJx6ViJ/GZ3PWifYf7qW1s7SL7m30PaUTo1BOHWTBuRRU8IRp5zo8/E\n\tE67pKSvOEKaJSiyRMv55GPfHgL3rx7mZpLBp6PbA=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Sat,  4 Jan 2020 07:09:39 +0200",
        "Message-Id": "<20200104050947.7673-7-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.24.1",
        "In-Reply-To": "<20200104050947.7673-1-laurent.pinchart@ideasonboard.com>",
        "References": "<20200104050947.7673-1-laurent.pinchart@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 06/14] libcamera: bound_method: Move\n\tsequence and generator to BoundMethodBase",
        "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>",
        "X-List-Received-Date": "Sat, 04 Jan 2020 05:10:06 -0000"
    },
    "content": "The sequence and generator member types of BoundMethodArgs are not\ndependent on the template arguments of BoundMethodArgs. To prepare for\ntemplate specialization of BoundMethodArgs and avoid code duplication,\nmove them to the BoundMethodBase class.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/libcamera/bound_method.h | 30 +++++++++++++++---------------\n 1 file changed, 15 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/include/libcamera/bound_method.h b/include/libcamera/bound_method.h\nindex a1541212ff3d..9fd58c69a0e9 100644\n--- a/include/libcamera/bound_method.h\n+++ b/include/libcamera/bound_method.h\n@@ -39,19 +39,6 @@ public:\n \tvirtual void invokePack(void *pack) = 0;\n \n protected:\n-\tvoid activatePack(void *pack, bool deleteMethod);\n-\n-\tvoid *obj_;\n-\tObject *object_;\n-\n-private:\n-\tConnectionType connectionType_;\n-};\n-\n-template<typename... Args>\n-class BoundMethodArgs : public BoundMethodBase\n-{\n-private:\n #ifndef __DOXYGEN__\n \t/*\n \t * This is a cheap partial implementation of std::integer_sequence<>\n@@ -71,10 +58,23 @@ private:\n \t};\n #endif\n \n+\tvoid activatePack(void *pack, bool deleteMethod);\n+\n+\tvoid *obj_;\n+\tObject *object_;\n+\n+private:\n+\tConnectionType connectionType_;\n+};\n+\n+template<typename... Args>\n+class BoundMethodArgs : public BoundMethodBase\n+{\n+private:\n \tusing PackType = std::tuple<typename std::remove_reference<Args>::type...>;\n \n \ttemplate<int... S>\n-\tvoid invokePack(void *pack, sequence<S...>)\n+\tvoid invokePack(void *pack, BoundMethodBase::sequence<S...>)\n \t{\n \t\tPackType *args = static_cast<PackType *>(pack);\n \t\tinvoke(std::get<S>(*args)...);\n@@ -87,7 +87,7 @@ public:\n \n \tvoid invokePack(void *pack) override\n \t{\n-\t\tinvokePack(pack, typename generator<sizeof...(Args)>::type());\n+\t\tinvokePack(pack, typename BoundMethodBase::generator<sizeof...(Args)>::type());\n \t}\n \n \tvirtual void activate(Args... args, bool deleteMethod = false) = 0;\n",
    "prefixes": [
        "libcamera-devel",
        "06/14"
    ]
}