| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-01-12 20:37:33 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-01-12 20:37:33 UTC |
| parent | ac24f64fd9f4d2f58f3bb0b7c5d55d89da571814 |
| HaxeCBridge.hx | +8 | -1 |
diff --git a/HaxeCBridge.hx b/HaxeCBridge.hx index 28e85d1..9cbb072 100644 --- a/HaxeCBridge.hx +++ b/HaxeCBridge.hx @@ -282,16 +282,23 @@ class HaxeCBridge { final atype = convertSecondaryTPtoType(path.params[0]); final aargs = atype.args; args.push({name: "handler", type: TPath({name: "Callable", pack: ["cpp"], params: [TPType(TFunction(aargs.concat([TNamed("handler__context", TPath({name: "RawPointer", pack: ["cpp"], params: [TPType(TPath({ name: "Void", pack: ["cpp"] }))]}))]), TPath({name: "Void", pack: []})))]})}); - promisify.push(macro v); if (atype.retainType == null) { promisifyE.push(macro false); } else { promisifyE.push(macro null); } if (atype.retainType == "Array") { + promisify.push(macro v); promisify.push(macro v.length); promisifyE.push(macro 0); + } else if (atype.retainType == "String") { + promisify.push(macro HaxeCBridge.retainHaxeString(v)); + } else if (atype.retainType == "Object") { + promisify.push(macro HaxeCBridge.retainHaxeObject(v)); + } else { + promisify.push(macro v); } + args.push({name: "handler__context", type: TPath({name: "RawPointer", pack: ["cpp"], params: [TPType(TPath({ name: "Void", pack: ["cpp"] }))]})}); promisify.push(macro handler__context); promisifyE.push(macro handler__context);