summaryrefslogtreecommitdiff
path: root/python/generator.cpp
AgeCommit message (Collapse)Author
2026-05-29[Python] Ensure that BNFreeParseError is used to free the error returned by ↵Mark Rowe
BNParseExpression
2026-01-20Other changes related to handling null strings.Alexander Taylor
This fixes the incorrect type hint and the other instance of the function. It also looks like type parsing could have the same issue, so I've updated that as well.
2026-01-20handle None cases when empty strings are returned from the core and fix ↵Jordan Wiens
associated coreversion usage
2026-01-01update copyrights for 2026Jordan Wiens
2025-12-12Generator: Detect flag enums and use IntFlag insteadGlenn Smith
Made possible by the new attributes in binja's type system.
2025-12-12Generator: Fix <4 byte signed enums with negative membersGlenn Smith
Literally only affects InvalidILViewType
2025-12-11Specify fixed underlying types for enums exposed by coreMark Rowe
This allows a few widely-used enums to be shrunk from 4 bytes to 1 byte, improving packing when they're used as struct members. To remain compatible with C, we follow CoreFoundation's approach and use a macro when defining the enum: ``` #if defined(__cplusplus) || __has_extension(c_fixed_enum) #define BN_ENUM(type, name) enum name : type #else #define BN_ENUM(type, name) typedef type name; enum #endif BN_ENUM(uint8_t, SomeEnum) { ... } ``` In C++ and C23 this will expand to an enum with a fixed underlying type. In older C language versions, this will result in the enum type being a typedef of the underlying type, with an unnamed enum providing the enum values. Minor changes were needed within the Python bindings to update places that made assumptions about the underlying type of the enums.
2025-12-09Python: Fix enums not being casted to their types in generatorGlenn Smith
2025-11-19Fix generated type hints for function params in _binaryninjacore.pyJosh Ferrell
2025-10-01better handling for when utf8 decoding failsJordan Wiens
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-03-28missed the older dates!Jordan Wiens
2024-06-26[Enterprise] Clean up initialization flowGlenn Smith
2024-05-13Move collaboration to coreJosh Ferrell
2024-01-08update copyright yearJordan Wiens
2023-05-31Simplify template simplifier API; remove cursed RustString stuffKyleMiles
2023-02-12Slightly clean up CMake outputJon Palmisciano
2023-01-10Fix generation of incorrect python type hints for enumsJosh Ferrell
2023-01-05Update copyright to 2023Josh F
2022-11-29generator.cpp: Don't even create a temp file, just use ephemeralGlenn Smith
2022-11-29generator.cpp: Use temporary Settings to prevent typeparser raceGlenn Smith
2022-11-11Fix some inconsistencies in python bindings between clang and core type parsersPeter LaFosse
2022-11-10Switch to using the Clang type parser for binding generationPeter LaFosse
2022-11-10Fix type parser setting name in generator.Brian Potchik
2022-05-11Clang+TypeParser APIsGlenn Smith
2022-01-28Format All FilesKyleMiles
2022-01-20Move generator fake architecture into coreRusty Wagner
2022-01-19Fancier generator.cpp with *types*Glenn Smith
2022-01-03update copyright yearsJordan Wiens
2021-11-18Enterprise apis and supportGlenn Smith
Also secrets provider + openUrl
2021-09-20Fix binaryninja-api#2646 'DataBuffer.base64_decode() throws exception'Peter LaFosse
2021-09-06Change NamedTypeReference.GetTypeClass to GetTypeReferenceClass as it was ↵Peter LaFosse
conflicting with Type.GetTypeClass
2021-09-05type hints for highlevelil.py, mediumlevelil.py and lowlevelil.py, workflow.pyPeter LaFosse
Fix linter error in scriptingprovider.py Update workflow.py using updated paradigms and type hints
2021-09-05add a core.free_string helperPeter LaFosse
2021-09-05Add type hints to basicblock.py, lowlevelil.py, architecture.pyPeter LaFosse
2021-08-17CMake option to set license for generatorGlenn Smith
2021-05-26Add the ability to automatically create struct membersXusheng
2021-01-18updating copyright yearJordan Wiens
2020-10-19Expose Template Simplifier to the API, Adds Tests, and Adds Rust String FFI ↵KyleMiles
support to Python (see note) This introduces the ability to receive and free string from Rust in Python. For it to work, your exposed function name needs to begin with "BNRust", and the generator will create the appropriate code for freeing string return values and arguments.
2020-03-28fix cygwin detectionJordan Wiens
2020-03-27support for cygwin pythonJordan Wiens
2020-01-01update copyright year to 2020Jordan Wiens
2019-07-08PluginManager refactor for supporting plugin installation uiPeter LaFosse
Expose additional PluginManager APIs and update documentation
2019-01-17update company name and copyright dateJordan Wiens
2018-10-05Fix generation of core.BNLogJosh Watson
Most of the BNLog API methods are just variable length arguments of strings. BNLog also includes a `level` parameter, which causes a `TypeError` when `binaryninja.log.log(level, msg)` is called, because it is expecting all parameters to be strings. This PR fixes it so that `BNLog` is correctly generated. Note: I haven't actually tested this to verify `generator` still works, because my Makefile is messed up currently.
2018-07-16Fix format of strings in python/log.pyKyleMiles
2018-07-13Python2/3 String Compatibility FixKyleMiles
2018-07-10Various Python 3 support changesKyleMiles
2018-07-10addition 3 compatibility changesJordan Wiens
2018-07-10working division, prints, and metaclasses, but imports broken, still needs workJordan Wiens