| Age | Commit message (Collapse) | Author |
|
|
|
|
|
`Workflow::new` is replaced by `Workflow::build` that returns a
`Builder` type that supports the operations that mutate a workflow, such
as registering activities.
`Workflow::instance` is replaced by `Workflow::get` to make clear that
it is intended to look up an existing workflow.
`Workflow::cloned` is introduced to wrap the common pattern of
retrieving an existing workflow and cloning it with the same name in
order to modify it.
`Builder::activity_before` / `Builder::activity_after` are introduced to
wrap the common pattern of registering an activity then inserting it
before or after a given activity.
|
|
This makes it possible to see what structure the configuration takes and
eliminates errors due to typos in JSON string literals.
|
|
The names can simply be omitted since they are only mentioned in the
declaration of a function pointer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The `$<TARGET_FILE:binaryninjaapi>` syntax does not do what is intended
for Unix Makefiles.
In practice there's no reason for this custom command to depend on the
`binaryninjaapi` target. The Rust API uses core's C APIs directly rather
than via the C++ API, and it already depends on binaryninjacore.h via
`RUST_API_SOURCES`. Since it's running `cargo check` and not doing a
full compilation this header-only dependency is sufficient.
|
|
inserted
Instead of applying symbols and comments in the applier step, we will do it when the matched function is identified.
This has the side effect that if you turn off the apply activity names and comments will still be applied, more work to be done later.
|
|
|
|
|
|
`BNRelocationHandlerDefaultApplyRelocation` /
`BNRelocationHandlerApplyRelocation` /
`BNRelocationHandlerGetOperandForExternalRelocation` do not take
ownership of the reference that is passed to them. Instead they take
their own reference to the object. As a result, `Relocation` objects
passed into `RelocationHandler::ApplyRelocation` /
`CoreRelocationHandler::ApplyRelocation` /
`CoreRelocationHandler::GetOperandForExternalRelocation` were being
leaked.
|
|
ARM64 lifting replaces references to the zero register with constant
zeroes. The zero register is not intended to appear in any lifted IL.
In the case of the `mrs` instruction, the destination being a zero
register means the system register is accessed only for a side-effect,
and is not stored anywhere. The lifting is updated to specify no output
registers for the intrinsic in that case.
|
|
Was causing nightly tests to fail only on windows however which is strange
|
|
|
|
|
|
|
|
|
|
|
|
exception
|
|
stack trace associated with log messages, instead of creating large mutli-line messages for every exception
|
|
|
|
|
|
message
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This ensures that the Python source files are only generated and copied
into the output directory if inputs have changed, rather than being done
unconditionally.
|
|
This ensures that CMake detects when files that match the glob are added
or removed.
|
|
|
|
path arguments
|
|
|
|
|
|
|
|
|
|
Clang was taking around 30 seconds to compile assembler.cpp on my
machine, with most of its time spent in code generation for the global
initializer for `lookup`.
Changing the map key from `std::string` to `std::string_view` drops
compile time to under a second. This is because the compiler no longer
has to code gen the allocation, initialization, and moves of 2,100
`std::string`s. `std::string_view` is effectively free to initialize in
comparison.
While I was here I made the map `static const`. It's not required for
the build time improvement, but it is more correct and helped me check
that no-one is mutating the map.
|
|
|
|
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7194
|
|
"progress" like callbacks
Still need to add more, consider changing the boolean to an enum that describes it better, so we do not need to copy paste docs around.
|