[Bug 401] New: ports()->removePort does not remove associated TaskObject from interface.
| Submitted by sspr on Sat, 2007-05-12 19:10. |
For more information about this bug, visit <http://www.fmtc.be/orocos-bugzilla/show_bug.cgi?id=401>
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 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 <http://www.fmtc.be/orocos-bugzilla/show_bug.cgi?id=401>
peter soetens [..] changed:
What |Removed |Added --------------------------------------------------------------------------- Target Milestone|--- |1.2.0 Resolution| |FIXED Status|NEW |RESOLVED------- Comment #1 from peter 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.
[Bug 401] ports()->removePort does not remove associated TaskObj
For more information about this bug, visit <http://www.fmtc.be/orocos-bugzilla/show_bug.cgi?id=401>
A comment was added:
------- Comment #2 from wim meeussen [..] 2007-05-14 14:49Does 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 <http://www.fmtc.be/orocos-bugzilla/show_bug.cgi?id=401>
A comment was added:
------- Comment #3 from peter 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 <http://www.fmtc.be/orocos-bugzilla/show_bug.cgi?id=401>
A comment was added:
------- Comment #4 from wim 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