Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Anm |
For instance, how do you detect the end of a stream? There isn’t even a has_next()
sort of method. The following test merrily returns a valid byte value (0
) after the end of the stream:
func test_end_of_buffer():
var stream = StreamPeerBuffer.new()
stream.data_array = PoolByteArray([1,2,3])
asserts.is_equal(1, stream.get_u8(), "First u8 value")
asserts.is_equal(2, stream.get_u8(), "Second u8 value")
asserts.is_equal(3, stream.get_u8(), "Third u8 value")
# End of buffer
# What? Why? 0 is a valid value!
asserts.is_equal(0, stream.get_u8(), "EOF u8 value")
Looks like it is now officially a bug: StreamPeer::get_<NumberFormat>() method ignore error from get_data() · Issue #45518 · godotengine/godot · GitHub
Anm | 2021-01-28 06:58