git » sdk » commit a5c76d3

Fix generation for Null<Array

author Stephen Paul Weber
2025-11-23 20:09:11 UTC
committer Stephen Paul Weber
2025-11-23 20:09:11 UTC
parent d1b3eefa00a0998805cceded3990d24b84364811

Fix generation for Null<Array

HaxeCBridge.hx +5 -5
borogove/Chat.hx +0 -1
borogove/Config.hx +1 -1
borogove/Form.hx +1 -0

diff --git a/HaxeCBridge.hx b/HaxeCBridge.hx
index 815a8f0..28e85d1 100644
--- a/HaxeCBridge.hx
+++ b/HaxeCBridge.hx
@@ -378,9 +378,9 @@ class HaxeCBridge {
 						}
 					}
 			case FVar(t, e):
-					switch (t) {
-					case TPath(path) if (path.name == "Array" || path.name == "ReadOnlyArray"):
-						final ptrT = TPath({name: "RawPointer", pack: ["cpp"], params: [TPType(convertSecondaryType(t).args[0])]});
+					final convertedType = convertSecondaryType(t);
+					if (convertedType.retainType == "Array") {
+						final ptrT = TPath({name: "RawPointer", pack: ["cpp"], params: [TPType(convertedType.args[0])]});
 						fields.insert(insertTo, {
 							name: field.name + "__fromC",
 							doc: field.doc,
@@ -390,7 +390,7 @@ class HaxeCBridge {
 							kind: FFun({ret: TPath({name: "SizeT", pack: ["cpp"]}), params: [], args: [{name: "outPtr", type: ptrT}], expr: macro { final x = $i{field.name}; if (outPtr != null) { cpp.Pointer.fromRaw(outPtr).set_ref(x); } return x.length; } })
 						});
 						if (!field.access.contains(AFinal)) {
-							final cptrT = TPath({name: "ConstPointer", pack: ["cpp"], params: path.params.map(tp -> convertSecondaryTP(tp))});
+							final cptrT = TPath({name: "ConstPointer", pack: ["cpp"], params: [TPType(convertedType.args[0])]});
 							fields.insert(insertTo, {
 								name: "set_" + field.name + "__fromC",
 								doc: field.doc,
@@ -401,7 +401,7 @@ class HaxeCBridge {
 							});
 						}
 						insertTo++;
-					default:
+					} else {
 						fields.insert(insertTo, {
 							name: field.name + "__fromC",
 							doc: field.doc,
diff --git a/borogove/Chat.hx b/borogove/Chat.hx
index 70593c2..61b2449 100644
--- a/borogove/Chat.hx
+++ b/borogove/Chat.hx
@@ -1234,7 +1234,6 @@ class Channel extends Chat {
 		return disco?.data?.find(d -> d.field("FORM_TYPE")?.value?.at(0) == "http://jabber.org/protocol/muc#roominfo");
 	}
 
-	@HaxeCBridge.noemit // on superclass as abstract
 	override public function canSend() {
 		if (!super.canSend()) return false;
 		if (_nickInUse == null) return true;
diff --git a/borogove/Config.hx b/borogove/Config.hx
index 5156803..b6b7dac 100644
--- a/borogove/Config.hx
+++ b/borogove/Config.hx
@@ -17,7 +17,7 @@ class Config {
 
 		This can be useful eg for intercepting with a Service Worker.
 	**/
-	public static var relativeHashUri = false;
+	public static var relativeHashUri: Bool = false;
 
 	@:allow(borogove)
 	private static var constrainedMemoryMode = false;
diff --git a/borogove/Form.hx b/borogove/Form.hx
index 5f0669d..143b863 100644
--- a/borogove/Form.hx
+++ b/borogove/Form.hx
@@ -26,6 +26,7 @@ class FormItem {
 	public final section: Null<FormSection>;
 	public final status: Null<String>;
 	public final tableHeader: Null<Array<FormField>>;
+	@HaxeCBridge.noemit
 	public final tableRows: Null<Array<Array<FormField>>>;
 
 	@:allow(borogove)