Fix JavaScriptBridge.eval() never returning PackedByteArray

It wrongly returned 20 on array buffers, which used to be the enumerator
value of Godot 3.x's type PoolByteArray, and now is the value of type Color,
while it should return 29 which is the enumerator value for PackedByteArray.
This commit is contained in:
Emmanouil Papadeas 2023-08-26 16:20:58 +03:00 committed by Rémi Verschelde
parent 6da4ad1662
commit c662491bd4
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -109,7 +109,7 @@ const GodotJSWrapper = {
return 2; // INT
}
GodotRuntime.setHeapValue(p_exchange, p_val, 'double');
return 3; // REAL
return 3; // FLOAT
} else if (type === 'string') {
const c_str = GodotRuntime.allocString(p_val);
GodotRuntime.setHeapValue(p_exchange, c_str, '*');
@ -313,7 +313,7 @@ const GodotEval = {
case 'number':
GodotRuntime.setHeapValue(p_union_ptr, eval_ret, 'double');
return 3; // REAL
return 3; // FLOAT
case 'string':
GodotRuntime.setHeapValue(p_union_ptr, GodotRuntime.allocString(eval_ret), '*');
@ -333,7 +333,7 @@ const GodotEval = {
const func = GodotRuntime.get_func(p_callback);
const bytes_ptr = func(p_byte_arr, p_byte_arr_write, eval_ret.length);
HEAPU8.set(eval_ret, bytes_ptr);
return 20; // POOL_BYTE_ARRAY
return 29; // PACKED_BYTE_ARRAY
}
break;