Plugins can use .before('BlockFinisher') to edit blocks before they are locked.
Description
If any plugin wants to edit control flow graph after BlockProcessor, blocks are locked. This PR moves mth.finishBasicBlocks(); line to another visitor called BlockFinisher. So plugins can use .before('BlockFinisher') to edit blocks before they are locked.
BlockProcessor adds many informations to methodnode, loops, dominators etc.. These are very useful for tracing control flow and editing (for example removing control flow flattening)
Fixes : https://github.com/skylot/jadx/issues/2335
Plugins can use .before('BlockFinisher') to edit blocks before they are locked.
Description
If any plugin wants to edit control flow graph after BlockProcessor, blocks are locked. This PR moves
mth.finishBasicBlocks();
line to another visitor called BlockFinisher. So plugins can use .before('BlockFinisher') to edit blocks before they are locked.BlockProcessor adds many informations to methodnode, loops, dominators etc.. These are very useful for tracing control flow and editing (for example removing control flow flattening) Fixes : https://github.com/skylot/jadx/issues/2335