Hi all,
after using the random tracker for a while now I switched back to the
MedSAFE tracker. And here I solved the problem I encountered and
mentioned in my previous email.
The reason why the error occurs is the following.
When closing the MainApp, every smartpointer destructor is called.
The call of ~TrackingDeviceSource leads to the call of
TrackingDeviceSource::Disconnect();
which then calls MedSAFETrackingDevice::CloseConnection();
In this CloseConnection(), the members m_TransmitterConfig and
m_SensorConfig are deleted but NOT set to NULL.
if (m_TransmitterConfig)
delete [] m_TransmitterConfig;
if (m_SensorConfig)
delete [] m_SensorConfig;
This will be also done by the destructor of the tracking device, in this
case ~MedSAFEtrackingDevice(); which , if I'm not mistaken, always is
preceded by the above CloseConnection(); call .The condition "if
(m_TransmitterConfig)" stays true and delete will be called again even
if the array is already deleted. Hence m_TransmitterConfig and
m_SensorConfig have to be set to NULL within the
MedSAFETrackingDevice::CloseConnection(); or the member array deletion
has to be removed completely.
The same problem subsists in the core code of MircoBird and should be
changed.
Regards,
Matthias
Neuhaus Jochen wrote:
> Hi Matthias,
>
> we do not have a MedSave/MicroBird tracker at our institution, so I cannot
> debug into it. Does it happen in the destructor or in the CloseConnection()
> method?
> Maybe you can debug into the code and see what is wrong with
> m_TransmitterConfig. It should be initialized in OpenConnection and deleted
> in CloseConnection().
>
> Regards,
> Jochen
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: Matthias Noll [mailto:[email protected]]
>> Gesendet: Donnerstag, 4. Juni 2009 16:02
>> An: Mitk Mailingliste
>> Betreff: [mitk-users] Problem with the destruction of a functionality
>> which makes use of the MedSAFE tracking device
>>
>> Hi,
>>
>> I have a problem with a functionality, which makes use of the MedSAFE
>> tracking device. As soon as I close the MainApp and having previously
>> selected/clicked my functionality, I get a debug assertion failure
>> thrown from within the dbgdel.cpp:
>>
>> Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
>>
>> The problem seems to be caused by one of the following calls. I have
>> tried various combinations with them, in my functionality code:
>>
>> m_Source->StopTracking();
>> m_Source->Disconnect();
>> m_Source = NULL;
>> m_Tracker = NULL;
>>
>> I tried to go through the calls as well and the problem seems to
>> originate from:
>>
>> delete [] m_TransmitterConfig;
>>
>> I dont't know how I can prevent this form happening.
>>
>> Regards,
>> Matthias
>>
>>
------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge
This is your chance to win up to $100,000 in prizes! For a limited time,
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users