|
From: Joschka B. <jbo...@un...> - 2007-05-24 14:13:53
|
Hi Jan and all,
first of all, I also could apply Yuan's patch without any problems
(great work, Yuan!). I face similar problems and I will write in more
detail tomorrow, for now I just wanted to give the fix for the failed
assertion below.
>> (SimulationServer) entering runloop
>> lt-monitorspark: /usr/include/boost/shared_ptr.hpp:253: T* boost::shared_ptr<T>::operator->() const [with T = oxygen::SimControlNode]: Assertion `px != 0' failed.
>> Abgebrochen
>>
>
> monitorspark always exits with this message. The internal rendering
> seems to work, though. But with 6 local agents connected it doesn't
> react to mouse and keyboard any more. :-(
>
> Any ideas about why the assertion fails?
>
In lib/oxygen/simulationserver/simulationserver.cpp, in Method Run,
there is a test missing to see whether the shared pointer to the
AgentControlNode is non-zero. So instead of
shared_ptr<SimControlNode> agentCtrNode = GetControlNode("AgentControl");
agentCtrNode->Run();
insert a quick check and you should be fine (monitorspark uses the
simulationserver, but has no agentcontrol node...)
shared_ptr<SimControlNode> agentCtrNode = GetControlNode("AgentControl");
if (agentCtrNode.get())
agentCtrNode->Run();
Cheers,
Joschka
|