-
Notifications
You must be signed in to change notification settings - Fork 1
Fix pack size related marshal issues. #1
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
base: anycpu-2
Are you sure you want to change the base?
Fix pack size related marshal issues. #1
Conversation
And sorted Skippedlines
|
Unfortunately this has turned out more complex than I envisioned. I'm willing to take a look at the parser myself but finding time will take longer. My apologies for the delay. |
|
I have an idea about using C++ toolchain to find which one is really need to focus on. Since I have MSVC and WSL clang, why not? |
|
https://gist.github.com/Akarinnnnn/0a35bb1d250505aa98020138498cfbe4 Here is my result(in progress). Line format is |
A workaround of incorrect codegen of `SteamNetConnectionInfo_t` .
…-conditionalmarshal
…ps://github.com/Akarinnnnn/Steamworks.NET.AnyCPU into anycpu-packable-fix-align-by-conditionalmarshal
…-conditionalmarshal
Puropse is to exclude fake top level structs like CGameID::GameID_t. Maybe just add a table is enough?
|
Maybe it is too smart to my expectations for parser code. We just need to make it smart enough as git merge. I mean, some predefined special handling is enough just like old ways. |
|
Bad news here, I can't sync parser changes to my fork because git bugs. I did things below:
Would you guys meet this problem? This is very important for reviewing parser code changes. If you don't, would you help us to sync? I would gain write access of my fork to you. Additionally, my filesystem storing code is ReFS, working on NTFS might not meet this problem. |
|
@Chicken-Bones Incorrect marked pack aware structs should fixed a lot now. I've updated the gist to including the list. |
@Chicken-Bones Resolved, I pushed to GitHub directly on a NTFS drive, though some error messages thrown, it works. |
Simplify marshal fix #1 's review page, hide these `git subtree` imported commits from by merge them into base branch `anycpu-2`.
|
Reopen this, it's accidently closed by GitHub bots. |
Do we accept every time Steamworks SDK updates we regenerate special struct table by C++ compiler? Or we just using this method to debug marshal bugs when it happens again? |
Our goal is to fix most callback system related marshal issues.
Added a conditional marshalling table to decide which alignment to use at runtime, this should fix most callback-retrieve related issues.
Struct parameters in interface methods are
stillneed to fix. Edit: Completed.I think we
stillneed some effort to fix parameters, maybe we still have to ship different assembly for different platforms.Edit: Parameter marshal is done, through it looks ugly.
Now the only problem is to find out which struct we treat it specially, in generation process.