Skip to content

release of initial hpp files#51

Merged
TheRedDaemon merged 3 commits intomainfrom
refactor/first-release-of-hpps
May 1, 2026
Merged

release of initial hpp files#51
TheRedDaemon merged 3 commits intomainfrom
refactor/first-release-of-hpps

Conversation

@gynt
Copy link
Copy Markdown
Contributor

@gynt gynt commented Apr 30, 2026

No description provided.

@gynt gynt requested a review from TheRedDaemon April 30, 2026 22:48
@gynt
Copy link
Copy Markdown
Contributor Author

gynt commented Apr 30, 2026

I forgot the clang-format... Sorry about that. Will fix. But in theory, does this look good to you?

@TheRedDaemon
Copy link
Copy Markdown
Contributor

It looks good. I would just like to understand the general structure:

  • Object-Instances (STRUCT_RESOLVER) are all placed in "Globals"?
  • The FUNCTION_RESOLVERS are all placed next to their class headers?

My head is debating whether or not the FUNCTION_RESOLVERS are good to be "Mixed" with the headers. Although, I guess this will one day make it easier to switch the "normal" class headers.

One questions:

  • Where will the implementation files go?

@gynt
Copy link
Copy Markdown
Contributor Author

gynt commented May 1, 2026

Object-Instances (STRUCT_RESOLVER) are all placed in "Globals"?

Yes, although Ghidra allows moving global labels into namespaces, I am not very keen on doing that because it makes decompiled code more verbose. So defined data with a symbol (struct resolver) will go into Globals. I tried to identify the major structures as much as I could, but there still could be some gains to be made (nesting structs) in the future.

The FUNCTION_RESOLVERS are all placed next to their class headers?

Yes all placed next to the key .hpp files. This makes it easy to find them (to change the "implemented" parameter to true). They are all marked with .func. so easy to find and delete/move, etc.

Where will the implementation files go?

Method reimplementations go into a subfolder with the same name as the class:

Class.hpp
Class.func.hpp
Class/methodA.cpp
Class/methodB.cpp
Class/methodC.cpp

Function reimplementations go into the same folder as the namespace.hpp file: (but I guess this can be made identical to the method reimplementation)

Namespace/
Namespace/Namespace.hpp
Namespace/Namespace.func.hpp
Namespace/funcA.cpp
Namespace/funcB.cpp
Namespace/funcC.cpp

I could add an example already but then I will change the current one for xyAreValid etc. Is that okay with you?

@TheRedDaemon
Copy link
Copy Markdown
Contributor

Ah, so they will be mixed inside the folder structure. I guess that makes sense.

I would say, you rather finish this PR (fix formatting) and add another one with one, two implementation examples.

@gynt
Copy link
Copy Markdown
Contributor Author

gynt commented May 1, 2026

Ah, so they will be mixed inside the folder structure. I guess that makes sense.

I would say, you rather finish this PR (fix formatting) and add another one with one, two implementation examples.

Yes with the key benefit being that every file has a predictable location.

@gynt gynt force-pushed the refactor/first-release-of-hpps branch 2 times, most recently from 61e0780 to e985c76 Compare May 1, 2026 20:11
@gynt gynt force-pushed the refactor/first-release-of-hpps branch from e6dce0f to 41d2411 Compare May 1, 2026 21:46
Copy link
Copy Markdown
Contributor

@TheRedDaemon TheRedDaemon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All discussed. Failing linter accepted for this PR, since too big.
Should we run more often into size limitations, we might need to re-think the linter task.

@TheRedDaemon TheRedDaemon merged commit 2813b0f into main May 1, 2026
1 check failed
@TheRedDaemon TheRedDaemon deleted the refactor/first-release-of-hpps branch May 2, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants