Skip to content

4.3 Bug fixes and a ton of refactoring

Compare
Choose a tag to compare
@facontidavide facontidavide released this 13 Jun 13:38
· 339 commits to master since this release

Important

This release is not ABI compatible with the previous one! Please recompile all your plugins, when updating.

Bug fix: Subtree "_autoremap"

This is related to #563 .
I realized that Subtree::_autoremap in V4.x was not an exact drop-in replacement of Subtree::__shared_blackboard in V3.X.

The main problem was that port remapping may not work properly if there is a subtree of a subtree (see this unit test).

To solve this problem, the implementation of the Blackboard and port remapping had to change considerably.

A nice side effect is that not TreeNode::getInput and TreeNode::setOutput is now actually more efficient.

Bug fix: default value for custom types

This solves #580. Note that it also required some radical changes in the Blackboard.

The user facing API did not change, but the internal one did; therefore, those users which use directly the Blackboard (something that is discouraged), might be affected.

Refactoring: Pimpl

To prevent more ABI compatibility issues in the future, we started using the PImpl idiom in multiple classes (TreeNode and BehaviorTreeFactory in particular).

New logger: FileLogger2

This is a replacement of the old FileLogger using Flatbuffers. This version will generate smaller logs and is compatible with the latest version of Groot2 (to be released soon).