* Keep scroll history in decompiler widget.
This commit adds a `scrollHistory` on top of the rizin-managed
history, that keeps track of the scroll position within decompiled
functions.
* Fix clearing history upon init.
This commit adds support for a `topOffset` history (on top of the
rizin-managed history), that keeps track of the offset of the top
instruction in the disassembly widget.
closes#2970
Adds Quick Filter and generic address-based context menu entries to the
existing ClassesWidget. The original ClassesWidget.ui is not used
anymore as the layout is provided by ListDockWidget and only adjusted.
The AddressableItemContextMenu may now also optionally be shown when
there no currently selected item by using
setShowItemContextMenuWithoutAddress(). This is used e.g. to display the
"Create Class" option when nothing is present in the list.
Fixes#2237
Co-authored-by: Tristan Crawford <tristanthtcrawford@gmail.com>
Analogous to 2d7fd02a62, parents of
dialogs shown from the DisassemblyContextMenu are consistent now and
windowing issues when lauched through shortcuts are fixed.
Crash dumps generated with breakpad were not made use of to an extent
that would justify the extra maintenance overhead that it comes with. As
Windows builds have recently been broken by it, now is a good time to
retire it.
In the TypesWidget, right-click+Load New Types was opening the dialog
for editing an existing type instead of creating a new one. This would
either result in an error (for atomic types) or the old type being
deleted on success.
The QByteArray must be kept alive as long as its contens are used. Also
in this function, Core()->renameFunction() is not used to avoid sending
multiple signals for a single edit action.
When triggered through a keyboard shortcut, the dialogs shown here would
be positioned at the last position of the context menu or (0, 0), which
is not desired. Using a currently shown widget as the parent fixes this.
* Updated GraphGridLayout documentation
* Don't use potentially misleading name "segment tree" .
Not exactly segment tree (although sometimes called that), and for the purpose of high level understanding how graph layout works doesn't matter what it is. Any data structure which provides required queries could be used.
Co-authored-by: Kārlis Seņko <karlis3p70l1ij@gmail.com>
This fixes a double-free in getSignatureInfo() when the string was
already freed by the intermediate CutterJson. But actually just using
this CutterJson makes more sense than the string anyway, so let's do
that.
The old JsonModel rebuilt the entire structure, defeating the main
purpose of a custom model in comparison to the existing QTreeWidget.
And since we are holding the json structures ourselves anyway, such a
custom model does not have many benefits anyway.
Using Q_GLOBAL_STATIC meant that the CutterCore was destructed late as
part of a binary destructor. It would then free the RzCore, calling for
example the fini callbacks of all plugins. However global destructors in
shared library plugins may have already been run at this point, leading
to for example rz-ghidra's decompiler_mutex being used after
destruction.
Instead of the Q_GLOBAL_STATIC-managed global object, we are now
handling the lifetime of the CutterCore ourselves and only injecting its
instance to be accessed globally. This can also be a first step towards
making the core instance completely local.
Hardcoded prediction of filenames for future releases is too prone to
break, which is what happened with v2.1.0.
So better to provide the link to the release page only.
* Convert `iCj` call to the API
* Convert `icj` call to the API
* Convert `iij` call to the API
* Convert `iej` call to the API
* Convert `CClj` call to the API
* Convert `iEj` call to the API
* Convert 'ihj' call to the API
* Convert 'iSSj' call to the API
* Download and install sigdb option and disable swift demangler when libswift is installed
* Remove dir.prefix and use rz_core_analysis_sigdb_list for sigdb
* Use a different color for flirts
* Updated to rizin dev
* Use rz_path_set_prefix to set the prefix path on OSX bundle
This fixes the dialog being placed weirdly when using the 'Y' shortcut
because it was parented to the DisassemblyContextMenu, which itself
might not be shown at all.