From c4cfaeed58b3e303d80665acc7900901d6c888ea Mon Sep 17 00:00:00 2001 From: xuhj Date: Sun, 25 Jan 2026 22:09:27 +0800 Subject: [PATCH] =?UTF-8?q?lbkit:=20=E6=94=AF=E6=8C=81=E4=BD=BF=E7=94=A8`s?= =?UTF-8?q?truct[self]`=E5=BC=95=E7=94=A8=E6=8E=A5=E5=8F=A3=E8=87=AA?= =?UTF-8?q?=E8=BA=AB=E5=AE=9A=E4=B9=89=E4=B9=89=E5=AE=9A=E4=B9=89(`struct?= =?UTF-8?q?=20=5F`)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lbkit/lbkit/codegen/idf_interface.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lbkit/lbkit/codegen/idf_interface.py b/lbkit/lbkit/codegen/idf_interface.py index 567300d..0474528 100644 --- a/lbkit/lbkit/codegen/idf_interface.py +++ b/lbkit/lbkit/codegen/idf_interface.py @@ -124,6 +124,8 @@ CTYPE_SIGNATURE_MAP = { } def get_intfname_and_ctype(class_alias: str, ctype: str): + if ctype == "self": + return class_alias, class_alias match = re.findall(r"([\w][\w\d]*)", ctype) intf = ".".join(match[:-1]) ctype = match[-1] @@ -426,6 +428,8 @@ class IdfCtypeRender(): if is_array: # 结构体数组初始化时为二级空指针,以空指针结束 return [f"{stru_name} **"] + elif stru_name == self.intf.alias: + return [f"struct _{stru_name} *"] else: # 结构体成员初始化时为空结构体,由反序列化时填充内容 return [f"{stru_name} *"] -- Gitee