[Qt-interest] Problem with QHash and QThread
Andrei Cimpean
andreiamenta at gmail.com
Sat Jun 18 14:02:21 CEST 2011
I went through the code and this is were the problem appears to be:
QHash<QPoint,int>::const_iterator i = rhombus.points.constBegin();
while (i != rhombus.points.constEnd()) {
//first search through the entire hash and for new
points calculate the SSD
if(i.value() == -1){
//position the coordinates of the block at the
top left corner
//for easier calculations
blockTested_x = i.key().x() - this->blockSize/2;
blockTested_y = i.key().y() - this->blockSize/2;
sum = 0;
//calculate ssd for the current block
for(int block_i = 0 ; block_i < this->blockSize
; block_i++){
for(int block_j = 0 ; block_j <
this->blockSize ; block_j++){
//check if block is out of bonds
if(blockTested_x > 0 && blockTested_x <
this->secondFrame->width()-this->blockSize
&& blockTested_y>0 &&
blockTested_y < this->secondFrame->height()-this->blockSize){
//if block is valid calculate the
ssd
valuesInTestedBlock =
currentBlockPreparedVals[block_i][block_j]
-qGray(this->secondFrame->pixel(block_i+blockTested_x,block_j+blockTested_y));
sum += valuesInTestedBlock *
valuesInTestedBlock;
}
}
}
//update the sum value for the current key
rhombus.points.insert(i.key(),sum);
}
++i;
}
Thanks.
On Thu, Jun 16, 2011 at 8:19 PM, Bo Thorsen <bo at fioniasoftware.dk> wrote:
> Your problem is in code you didn't send here. There is nothing in the
> code you sent that will crash the application.
>
> Bo.
>
> Den 15-06-2011 00:43, Andrei Sebastian Cîmpean skrev:
> > Hello everybody,
> >
> > I have stumbled upon a problem that I don't quite understand and I was
> hoping
> > someone can help me get to the bottom of it.
> > I have a class that inherits QThread. In the header file I have:
> >
> > inline uint qHash(const QPoint& p)
> > {
> > return qHash(p.x()+p.y());
> > }
> > struct Hexagon{
> > QPoint center;
> > int centerSSD;
> > QHash<QPoint,int> points;
> > };
> > class HexagonalSearch : public QThread, public BlockMatching
> > {
> > Q_OBJECT
> > (...)
> >
> > , with BlockMatching being a simple class that just has some functions
> preset.
> > It compiles without any warnings, although I know that's not necessarily
> a
> > condition for no problems.
> > When I run the app and it gets to part where it has to execute the run()
> > function the app crashes. I can't debug using Qt Creator (don't know why
> it
> > freezes at setting breakpoints even after reinstall) but when I run the
> > debugger it instantly crashes with the message "The inferior stopped
> ...." ->
> > Segmentation fault, and it displays assembly code with a flag set for a
> > compare (cmpq).
> > I have attached a screenshot with the result.
> > Any help would be greatly appreciated and would probably save my life.
> >
> > Thank you for your time and patience,
> > Andrei Sebastian Cîmpean
> >
> >
> >
> > _______________________________________________
> > Qt-interest mailing list
> > Qt-interest at qt.nokia.com
> > http://lists.qt.nokia.com/mailman/listinfo/qt-interest
>
>
> Bo Thorsen,
> Fionia Software.
>
> --
>
> Expert Qt and C++ developer for hire
> Contact me if you need expert Qt help
> http://www.fioniasoftware.dk
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20110618/bc575365/attachment.html
More information about the Qt-interest-old
mailing list