Axel Dörfler a écrit :
Korli <korli@xxxxxxxx> wrote:
I'm having problems with BMessage::AddData(), typically when used with a B_UINT8_TYPE and with a size.
Is it used in the same way in BeOS? To me, using B_UINT8_TYPE with a size different of sizeof(uint8) looks wrong. And obviously, Eric (who wrote BMessage) thought in the same way.
Of course, maybe AddData() shouldn't care about this, but B_RAW_TYPE looks more appropriate here.
This code works on R5. This is a bad assumption.
As I don't understand fully this code, could someone have a look at this method ? It doesn't handle every type codes the same way which is very weird.
It can't treat every type in the same way, as all types have a special handling, ie. number types need to be endian-aware, same for entry_refs but even more complicated.
I'm not sure about this.
I didn't find unit tests for this method. Having one would also be great.
As every type adder uses this method, there are indirect unit tests for it - but that's obviously not enough :-)
A bad functional assumption leads to incorrect tests :)
Input addons and input_server work as is on R5, that's the reason why I believe this implementation is wrong.
The problem appears in input_server : no key_states is found in input messages, applications depending on these key states can't work as expected.