get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2230054,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2230054/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260429062004.36582-2-guobin@linux.alibaba.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20260429062004.36582-2-guobin@linux.alibaba.com>",
    "date": "2026-04-29T06:20:02",
    "name": "[1/3] qom/object: merge double hash table traversal in object_property_del_child",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "4156a63fe24d805b144ca7a75489fb1e832adcf3",
    "submitter": {
        "id": 91693,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/91693/?format=api",
        "name": "Bin Guo",
        "email": "guobin@linux.alibaba.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260429062004.36582-2-guobin@linux.alibaba.com/mbox/",
    "series": [
        {
            "id": 501994,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501994/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501994",
            "date": "2026-04-29T06:20:01",
            "name": "Minor cleanups: eliminate redundant code in QOM, block-backend and vl.c",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501994/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2230054/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2230054/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=linux.alibaba.com header.i=@linux.alibaba.com\n header.a=rsa-sha256 header.s=default header.b=qaPq+dnt;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g56dm6rJnz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 16:21:48 +1000 (AEST)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wHyIO-0004an-5O; Wed, 29 Apr 2026 02:21:27 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <guobin@linux.alibaba.com>)\n id 1wHyHv-0004Vk-34; Wed, 29 Apr 2026 02:20:51 -0400",
            "from out30-101.freemail.mail.aliyun.com ([115.124.30.101])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <guobin@linux.alibaba.com>)\n id 1wHyHl-00077C-EA; Wed, 29 Apr 2026 02:20:46 -0400",
            "from localhost(mailfrom:guobin@linux.alibaba.com\n fp:SMTPD_---0X1wRJXH_1777443612 cluster:ay36) by smtp.aliyun-inc.com;\n Wed, 29 Apr 2026 14:20:22 +0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linux.alibaba.com; s=default;\n t=1777443622; h=From:To:Subject:Date:Message-ID:MIME-Version;\n bh=wpsQePTv0btTrCLyqE5kqL0DTPlWHThu8xlylHlpxhs=;\n b=qaPq+dntt/OqqMDlomsSmPYNpKpsz92jXSMAVhfgA9RkUdTD1Qlkr3uY9LHJeBrAwsTx3Iv8pJ7rRatNz1hg/h/g6pn1VDjvPCLKYaPQBBCqQ+adT74wh1NpPeb3ce3VMohbWSN07MfQy1plImPz2qzHWkn4/2ADqWcujlUI4ro=",
        "X-Alimail-AntiSpam": "AC=PASS; BC=-1|-1; BR=01201311R111e4; CH=green;\n DM=||false|;\n DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=maildocker-contentspam033037026112;\n MF=guobin@linux.alibaba.com; NM=1; PH=DS; RN=6; SR=0;\n TI=SMTPD_---0X1wRJXH_1777443612;",
        "From": "Bin Guo <guobin@linux.alibaba.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "pbonzini@redhat.com, berrange@redhat.com, kwolf@redhat.com,\n hreitz@redhat.com, qemu-block@nongnu.org",
        "Subject": "[PATCH 1/3] qom/object: merge double hash table traversal in\n object_property_del_child",
        "Date": "Wed, 29 Apr 2026 14:20:02 +0800",
        "Message-ID": "<20260429062004.36582-2-guobin@linux.alibaba.com>",
        "X-Mailer": "git-send-email 2.50.1",
        "In-Reply-To": "<20260429062004.36582-1-guobin@linux.alibaba.com>",
        "References": "<20260429062004.36582-1-guobin@linux.alibaba.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=115.124.30.101;\n envelope-from=guobin@linux.alibaba.com;\n helo=out30-101.freemail.mail.aliyun.com",
        "X-Spam_score_int": "-174",
        "X-Spam_score": "-17.5",
        "X-Spam_bar": "-----------------",
        "X-Spam_report": "(-17.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n UNPARSEABLE_RELAY=0.001, USER_IN_DEF_DKIM_WL=-7.5,\n USER_IN_DEF_SPF_WL=-7.5 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "object_property_del_child() previously performed two full iterations\nover obj->properties: the first to find the matching child property and\ncall its release callback, the second to find the same property again\nand remove it from the hash table.\n\nMerge the two loops into one: when the matching property is found, call\nthe release callback and immediately remove the entry via\ng_hash_table_iter_remove(), then break.  This halves the number of hash\ntable operations in the common case and avoids the redundant second scan.\n\nSigned-off-by: Bin Guo <guobin@linux.alibaba.com>\n---\n qom/object.c | 7 -------\n 1 file changed, 7 deletions(-)",
    "diff": "diff --git a/qom/object.c b/qom/object.c\nindex f981e27044..9c0e8dfd02 100644\n--- a/qom/object.c\n+++ b/qom/object.c\n@@ -629,13 +629,6 @@ static void object_property_del_child(Object *obj, Object *child)\n                 prop->release(obj, prop->name, prop->opaque);\n                 prop->release = NULL;\n             }\n-            break;\n-        }\n-    }\n-    g_hash_table_iter_init(&iter, obj->properties);\n-    while (g_hash_table_iter_next(&iter, &key, &value)) {\n-        prop = value;\n-        if (object_property_is_child(prop) && prop->opaque == child) {\n             g_hash_table_iter_remove(&iter);\n             break;\n         }\n",
    "prefixes": [
        "1/3"
    ]
}