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:
parent
6da4ad1662
commit
c662491bd4
|
@ -109,7 +109,7 @@ const GodotJSWrapper = {
|
||||||
return 2; // INT
|
return 2; // INT
|
||||||
}
|
}
|
||||||
GodotRuntime.setHeapValue(p_exchange, p_val, 'double');
|
GodotRuntime.setHeapValue(p_exchange, p_val, 'double');
|
||||||
return 3; // REAL
|
return 3; // FLOAT
|
||||||
} else if (type === 'string') {
|
} else if (type === 'string') {
|
||||||
const c_str = GodotRuntime.allocString(p_val);
|
const c_str = GodotRuntime.allocString(p_val);
|
||||||
GodotRuntime.setHeapValue(p_exchange, c_str, '*');
|
GodotRuntime.setHeapValue(p_exchange, c_str, '*');
|
||||||
|
@ -313,7 +313,7 @@ const GodotEval = {
|
||||||
|
|
||||||
case 'number':
|
case 'number':
|
||||||
GodotRuntime.setHeapValue(p_union_ptr, eval_ret, 'double');
|
GodotRuntime.setHeapValue(p_union_ptr, eval_ret, 'double');
|
||||||
return 3; // REAL
|
return 3; // FLOAT
|
||||||
|
|
||||||
case 'string':
|
case 'string':
|
||||||
GodotRuntime.setHeapValue(p_union_ptr, GodotRuntime.allocString(eval_ret), '*');
|
GodotRuntime.setHeapValue(p_union_ptr, GodotRuntime.allocString(eval_ret), '*');
|
||||||
|
@ -333,7 +333,7 @@ const GodotEval = {
|
||||||
const func = GodotRuntime.get_func(p_callback);
|
const func = GodotRuntime.get_func(p_callback);
|
||||||
const bytes_ptr = func(p_byte_arr, p_byte_arr_write, eval_ret.length);
|
const bytes_ptr = func(p_byte_arr, p_byte_arr_write, eval_ret.length);
|
||||||
HEAPU8.set(eval_ret, bytes_ptr);
|
HEAPU8.set(eval_ret, bytes_ptr);
|
||||||
return 20; // POOL_BYTE_ARRAY
|
return 29; // PACKED_BYTE_ARRAY
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue