Fix function macros with empty params list #189
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes a bug in compiling function macros without params that was present in ctypesgen since at least 2008 according to git blame.
Previously, e.g. the following macro from pymacro.h
would translate to
which (without try/except guards) promptly raises an exception when importing the module, rendering the macro unusable.
i.e. macros without params were not translated to a function, but the action was called once on import time, and the symbol name merely got assigned the return value of that call.
With this patch, it now correctly translates to
This was discovered during development of the pypdfium2-team fork, thanks to a new option to disable macro guards.
I thought I'd also submit it here because it's a very simple, standalone fix.