Repository navigation
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
WalkthroughThe changes update pointer-related types and conversions across engine, GUI, library, and tool code. They also change multi-select list output handling, use pointer subtraction for address differences, and add tree identifiers to ChangesPointer-width and tree identifier updates
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to
|
|
|
@coderabbitai Yeah reviewing this stuff is important thanks for the warning but I've had to deal with this on my computer as well and can verify this is actually accurate and 19 others have come to the same conclusion. I can reduce my diff between TSH and my branches with this pr. And it does not affect RELEASE or CRC. Nit: Scope might not be ideal. But the bug is real. |
|
Tip For best results, initiate chat on the files or code changes.
✏️ Learnings added
You are interacting with an AI system. |
|
Thank you. Please approve or close. #404 it was for example found in this pr. |
xezon
left a comment
There was a problem hiding this comment.
This is a very small change. Maybe can bunch a few more x64 fixes in Window/Gui? I expect there is more.
|
I think there's another x64 truncation here - |
…ated casts WindowMsgData is now pointer-sized, so window messages no longer truncate the pointers passed through them. Runtime fixes on 64-bit: - Listbox multi-select returned its selection array through an Int (chat and lobby crash). - IME candidate strings were located through a pointer truncated to 32 bits. - Locked-surface pointer arithmetic ran in unsigned int. - dbghelp function pointer tables were filled through 32-bit slots. - W3DView stored texture and alpha-vector pointers in DWORD user data and passed its module handle as an int. Compile fixes on 64-bit, identical on 32-bit: - Integer user data read back from void* (gadget item data, window user data, INI and thread callbacks) is cast through intptr_t. - Pointer differences are taken before narrowing. - Tool handles and item data use LPARAM/uintptr_t. - Removed a no-op ntohl on a truncated array address. Co-authored-by: Joey de Haas <joey.dehaas1991@gmail.com> Co-authored-by: Igor Pissolati <igo08an@hotmail.com> Co-authored-by: Mahdi <mahdipoormirzaie@gmail.com> Co-authored-by: Omar Aglan <omar.aglan91@yahoo.com> Co-authored-by: hogandhound <hogandhound@github.com> Co-authored-by: Okladnoj <dmytrijokladnoj@gmail.com> Co-authored-by: Prof. Zsolt Zoltán Fehér Dr. <feher.zsolt@agr.unideb.hu> Co-authored-by: Radim Vajchr <radim.vajchr@aaaauto.cz> Co-authored-by: Bobby Battista <bobtista@gmail.com> Co-authored-by: Felipe Keller Braz <fbraz3@gmail.com> Co-authored-by: Kevan Ahlquist <ahlqu039@umn.edu> Co-authored-by: dvcdsys <dvcdsys@gmail.com> Co-authored-by: Patrick Zacharias <1475802+Fighter19@users.noreply.github.com> Co-authored-by: Zach Reizner <zach297@gmail.com> Co-authored-by: DMJC <jcarthew@gmail.com> Co-authored-by: Mohamad Aljadaan <zerwoone@gmail.com> Co-authored-by: Sam Afshari <s_a@live.com> Co-authored-by: Ekliptor <Ekliptor1@yandex.com> Co-authored-by: Stephan Vedder <stephan.vedder@gmail.com> Co-authored-by: Jason Kelly <jason-kelly@live.dk>
8c31ab4 to
343effc
Compare
|
@greptile-apps review plz |
…ating their pointer WorldBuilder identified optimized trees in the tree buffer by the MapObject pointer narrowed to a 32-bit DrawableID. On 64-bit two objects could map to the same id, so a tree move could update the wrong tree. Map objects now get a unique id when they are created.
|
@greptile-apps review this pr again you beautiful bag of tokens |
Batch of x64 fixes.
Message data type, runtime truncations, cast-only sites, pointer differences, dead ntohl.
Something to do about x64 numbers being larger. Does not make x64 work.
Split into 2 commits.