Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GC bug: changing type from int8 to uint8 stops accepting new values #359

Open
DHLF opened this issue Nov 10, 2019 · 1 comment
Open

GC bug: changing type from int8 to uint8 stops accepting new values #359

DHLF opened this issue Nov 10, 2019 · 1 comment
Assignees
Milestone

Comments

@DHLF
Copy link

DHLF commented Nov 10, 2019

I added an address(type int8) in the lower window manually.
The game addressed those value as unsinged so I changed the type to uint8 in the address list.
The shown value changed(as expected) from -128 to the correct value 128.
From this point on I am free to type any value and hit the enter key but..
the new value is NOT written into the memory.
Instead the shown contempt switches back to the previous value. A quick look into the hexeditor proved also no change.
Again using hexedit I can enter different values(in hex of course) and the new value is shown.

The only "fix" at the moment is to switch the type back to int8, type in the new value and switch back to uint8 to see the "correct" value.

Those odd behaviour also happens to the other uint sizes like uint16/32.

@12345ieee
Copy link
Member

The issue here is that GC issues a write value unit8 addr, but libsm only recognizes signed types in the write handler.

I'll add that to libsm, because I don't want GC to convert back the type and value to unsigned.

This behaviour is indeed broken for all the unsigned integers (and only them).

@12345ieee 12345ieee added this to the v0.18 milestone Nov 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants