From 847d94d4373ccbe13957da1c1849614fa6b787c7 Mon Sep 17 00:00:00 2001 From: zsien Date: Wed, 28 Apr 2021 16:28:02 +0800 Subject: [PATCH] fix(gir-generator): wrong return type for callback functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为回调函数的 extern 声明添加返回类型 Log: 修复回调函数声明返回类型错误 Change-Id: I157f074c456d254e41ee3b346cc133e5d6cdf542 --- src/gir-generator/binding_generator.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gir-generator/binding_generator.go b/src/gir-generator/binding_generator.go index 0def201..f2c8848 100644 --- a/src/gir-generator/binding_generator.go +++ b/src/gir-generator/binding_generator.go @@ -302,13 +302,15 @@ func (this *binding_generator) c_forward_declaration10(bi *gi.BaseInfo) { pc := printer_to(this.out_c) ctype := c_type_for_interface(bi, type_none) + ci := gi.ToCallableInfo(bi) + // type doesn't matter here, it's just a pointer after all p("typedef void* %s;\n", ctype) // and wrapper declarations for .c file only (cgo has problems // with that) - pc("extern void _%s_c_wrapper();\n", ctype) - pc("extern void _%s_c_wrapper_once();\n", ctype) + pc("extern %s _%s_c_wrapper();\n", c_type(ci.ReturnType(), type_none), ctype) + pc("extern %s _%s_c_wrapper_once();\n", c_type(ci.ReturnType(), type_none), ctype) } }