forked from enlightenment/efl
eina debug - remove other swap and comment on the weirdness of this
This commit is contained in:
parent
eed23765f9
commit
256450d294
|
@ -311,18 +311,8 @@ _callbacks_register_cb(Eina_Debug_Session *session, int src_id EINA_UNUSED, void
|
||||||
|
|
||||||
uint64_t info_64;
|
uint64_t info_64;
|
||||||
memcpy(&info_64, buffer, sizeof(uint64_t));
|
memcpy(&info_64, buffer, sizeof(uint64_t));
|
||||||
// This is super dodgey. like really dodgey. it HAPPENS to work on
|
// cast to a ptr, so on 32bit we just take the lower 32bits and on 64
|
||||||
// little endian. definitely on 64bit because the SWAP is a nop and the
|
// we take all of it so we're fine
|
||||||
// pointer the buffer points to can be just used as-is, but if this
|
|
||||||
// was bigendian the swap would mess up the ptr and crash (on 64bit) as
|
|
||||||
// it'd swap everything around. on little endian 32bit it will happen to
|
|
||||||
// work as it takes the lower 32bits, but on big endian... bork bork.
|
|
||||||
//
|
|
||||||
// so obviously... don't swap, then it'll always take the LOWER 32bits
|
|
||||||
// on 32bit and should work... since buffer obviously is pointing to
|
|
||||||
// a 64bit type that contains a pointer to something... and on 64bit it'll
|
|
||||||
// just work as-is as sizes match.
|
|
||||||
// info_64 = SWAP_64(info_64);
|
|
||||||
info = (_opcode_reply_info *)info_64;
|
info = (_opcode_reply_info *)info_64;
|
||||||
|
|
||||||
if (!info) return EINA_FALSE;
|
if (!info) return EINA_FALSE;
|
||||||
|
@ -373,8 +363,9 @@ _opcodes_registration_send(Eina_Debug_Session *session,
|
||||||
|
|
||||||
buf = malloc(size);
|
buf = malloc(size);
|
||||||
|
|
||||||
|
// cast to a ptr, so on 32bit we just pad out the upper 32bits with 0
|
||||||
|
// and on 64bit we are fine as we use all of it
|
||||||
uint64_t info_64 = (uint64_t)(uintptr_t)info;
|
uint64_t info_64 = (uint64_t)(uintptr_t)info;
|
||||||
info_64 = SWAP_64(info_64);
|
|
||||||
memcpy(buf, &info_64, sizeof(uint64_t));
|
memcpy(buf, &info_64, sizeof(uint64_t));
|
||||||
int size_curr = sizeof(uint64_t);
|
int size_curr = sizeof(uint64_t);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue