[Qt-interest] assert error in qmap "item_exists()"

Ulf-Alexander v. Ceumern-Lindenstjerna ceumern at vrmagic.com
Mon Apr 12 17:15:47 CEST 2010


You forgot one small detail:

>     while (i.hasNext()) {
          i.next(); // <---------- insert this line
>         if (i.value() == currentChannel) {...

Also:
Checking if the item exists is not required before inserting
This line will already do it for you:
>         stageToChannelMap[stage] = channel;

This should simplify your mapStageToChannel function:

> void PiezoJenaController::mapStageToChannel(PiezoStage stage, int
> channel)
> {
>     stageToChannelMap[stage] = channel;
> }

Cheers, Ulf

> -----Original Message-----
> From: qt-interest-bounces at trolltech.com [mailto:qt-interest-
> bounces at trolltech.com] On Behalf Of Matthias Pospiech
> Sent: Monday, April 12, 2010 4:58 PM
> To: qt-interest at trolltech.com
> Subject: [Qt-interest] assert error in qmap "item_exists()"
> 
> The assert error happens in qmap.h in this line:
> Q_DECLARE_ASSOCIATIVE_ITERATOR(Map)
> 
> The QMap I am using contains 3 values which I can insert with no
> problem
> or error.
> However if I try to access the value (last line) I get this assertion:
> 
>     QMapIterator<PiezoStage, int> i(stageToChannelMap);
>     while (i.hasNext()) {
>         if (i.value() == currentChannel) {...
> 
> 
> The map is filled using:
> 
>     piezoController->mapStageToChannel(PiezoJenaController::X, 0);
>     piezoController->mapStageToChannel(PiezoJenaController::Y, 1);
>     piezoController->mapStageToChannel(PiezoJenaController::Z, 2);
> 
> with:
> 
> void PiezoJenaController::mapStageToChannel(PiezoStage stage, int
> channel)
> {
>     if (stageToChannelMap.contains(stage)) {
>         stageToChannelMap[stage] = channel;
>     } else {
>         stageToChannelMap.insert(stage, channel);
>     }
> }
> 
> 
> What am I possibly doing wrong?
> Matthias
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest




More information about the Qt-interest-old mailing list