For more information about this bug, visit
A new bug was added:
Summary: ports()->removePort does not remove associated
TaskObject from interface.
Product: RTT
Version: rtt-trunk
Platform: All
OS/Version: All
Status: NEW
Severity: major
Priority: P2
Component: Real-Time Toolkit (RTT)
AssignedTo: orocos-dev [..] ...
ReportedBy: peter [dot] soetens [..] ...
When removePort() is called and the removed port is freed, the associated
port's TaskObject remains in the TaskContext, pointing to invalid memory,
and causing a crash when used.
The DataFlowInterface implementation did not get in good shape before the 1.0
release. Especially the relation TaskObject(scripting) <-> DataPort(C++) is not
well handled. This can be fixed without modifying the interface.
[Bug 401] ports()->removePort does not remove associated TaskObj
For more information about this bug, visit
A comment was added:
------- Comment #4 from wim [dot] meeussen [..] ... 2007-05-14 15:19
> You need to re-run cmake in your RTT build directory as a new file was added.
> Newly added files are not automatically detected by cmake if you do not start
> a new build directory.
Okay! For CMake's defense: if you list all the cpp files in your CMakeList, it
will automatically re-configure to include the new file. If you only include
*.cpp it will not...
[Bug 401] ports()->removePort does not remove associated TaskObj
For more information about this bug, visit
A comment was added:
------- Comment #3 from peter [dot] soetens [..] ... 2007-05-14 15:02
(In reply to comment #2)
> Does this problem have anything to do with your commit?
>
> make in ocl:
>
> [100%] Building CXX object tests/CMakeFiles/toolkittest.dir/toolkittest.o
> Linking CXX executable toolkittest
> /install/build-gnulinux/lib/liborocos-rtt.so: undefined reference to
> `RTT::DataFlowInterface::getPorts() const'
>
You need to re-run cmake in your RTT build directory as a new file was added.
Newly added files are not automatically detected by cmake if you do not start a
new build directory.
Peter
[Bug 401] ports()->removePort does not remove associated TaskObj
For more information about this bug, visit
A comment was added:
------- Comment #2 from wim [dot] meeussen [..] ... 2007-05-14 14:49
Does this problem have anything to do with your commit?
make in ocl:
[100%] Building CXX object tests/CMakeFiles/toolkittest.dir/toolkittest.o
Linking CXX executable toolkittest
/install/build-gnulinux/lib/liborocos-rtt.so: undefined reference to
`RTT::DataFlowInterface::getPorts() const'
[Bug 401] ports()->removePort does not remove associated TaskObj
For more information about this bug, visit
peter [dot] soetens [..] ... changed:
What |Removed |Added
---------------------------------------------------------------------------
Target Milestone|--- |1.2.0
Resolution| |FIXED
Status|NEW |RESOLVED
------- Comment #1 from peter [dot] soetens [..] ... 2007-05-14 14:22
$ svn ci -m"Fix bug #401: ports()->removePort does not remove associated
TaskObject from interface.
> This patch fixes that issue and adds a unit test as well.
> It also deprecates some 'utility' functions for 'exporting' ports, which is now done automatically when the port is added.
> "
Sending rtt/src/BufferPort.hpp
Adding rtt/src/DataFlowInterface.cpp
Sending rtt/src/DataFlowInterface.hpp
Sending rtt/src/DataPort.hpp
Sending rtt/src/TaskContext.cpp
Sending rtt/src/TaskContext.hpp
Sending rtt/tests/generictask_test_3.cpp
Sending rtt/tests/generictask_test_3.hpp
Transmitting file data ........
Committed revision 28119.