Results 1 to 14 of 14

Thread: Bugs in QwtMatrixRasterData?

  1. #1
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Exclamation Bugs in QwtMatrixRasterData?

    Hello,

    I encountered 3 bugs in (or related to) QwtMatrixRasterData (I'm using Qwt6 SVN). My emails always get lost on sourceforge so I'm writing this here.
    I'm attaching a screenshot and a modified "rasterview" example to demonstrate.

    1. There seems to be a bug with Bilinear interpolation. I get these mosaic-like pictures (nearest-neighbor looks ok). Seems to be dependent on intervals and number of matrix elements. See attached screenshot, segment 2 (top right).

    2. There seems to be a bug when QwtMatrixRasterData's default pixelHint() implementation is used as it is. Randomly colored lines start to appear at interval borders (see picture segments 1 and 4). They're not always visible, but usually appear at the top and right sides, usually when zooming. Overriding pixelHint() in QwtMatrixRasterData's child class and returning QRectF() fixes this problem (see the commented block in the example), BUT introduces another one, which is probably a hidden bug because of QwtMatrixRasterData's default pixelHint():

    3. If returning QRectF() from QwtMatrixRasterData's pixelHint(), a solid line (with a small corner to the right) appears to at top of the interval. I overrode QwtMatrixRasterData's value() function and did a range check before getting the data from QVector, and it seems to have helped. So I guess it's an out-of-bounds problem.

    Thanks,
    Alexander

    qwt_matrix_bugs.jpg
    rasterview_modified.tar.gz
    Last edited by alex_sh; 12th December 2010 at 19:59. Reason: updated contents

  2. #2
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    1 is fixed in SVN trunk, but I couldn't reproduce the bugs described in 2 and 3 ?

    Uwe

  3. The following user says thank you to Uwe for this useful post:

    alex_sh (14th December 2010)

  4. #3
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Thanks a lot for fixing bug #1.

    I ran my modified rasterview example through valgrind (--num-callers=50 --track-origins=yes) and I think I found the cause for #2. It seems that qwtExpandImage() creates an image that has uninitialized data in it.

    Valgrind output for #2: rasteview-valgrind_default_hint.zip

    I'll try to find the cause of #3.

    P.S. I forgot to mention I use Qt 4.7.2 pre-release on openSUSE 11.3 x86-64 (it used to happen with 4.7.1 as well).


    Added after 20 minutes:


    I was able to trigger the out-of-bounds condition with #3. To reproduce:

    a) Add the following code to plot.cpp line 31 of my example before "for (int i = 0; i < numColumns * numColumns; ++i) {":
    values.reserve(numColumns * numColumns);
    This will make sure further reallocations don't occur during operator<< and at() (see below) actually checks the size (otherwise it's harder to detect).

    b) In qwt_matrix_raster_data.cpp line 25, instead of "return values.data()[ row * numColumns + col ];" write:
    return values.at(row * numColumns + col);
    So that it checks the index against allocated size.

    And of course uncomment the "virtual QRectF pixelHint(...)" function so that it returns QRectF().

    This will trigger an error when running the example:
    ASSERT failure in QVector<T>::at: "index out of range", file /usr/include/QtCore/qvector.h, line 339.

    I haven't tried to find out yet why exactly that out of range error happens.

    Thanks
    Last edited by alex_sh; 14th December 2010 at 20:57. Reason: updated contents

  5. #4
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    I can't reproduce any of your problems ( beside 2 ) - here SuSE 11.3 x86-32 with Qt 4.7.1.

    Uwe

  6. #5
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Hello,

    Quote Originally Posted by Uwe View Post
    I can't reproduce any of your problems ( beside 2 ) - here SuSE 11.3 x86-32 with Qt 4.7.1.

    Uwe
    You meant #1, right?

    The attached trivial patch fixes #2 for me (gets rid of on-screen random lines, as well as valgrind errors). Seeing that lots of qRound() call results are used as indices in qwtExpandImage(), I kind of expect that sometimes not all of them succeed in filling the resulting image completely. Hence the need for fill().

    qwt_rasteritem2.diff


    Added after 30 minutes:


    I'm also attaching a patch that fixes memory errors and black lines in #3.
    I'm not sure whether this is a correct solution (or, if it simply hides the original problem). However, that check should be there anyway IMHO.

    qwt_matrix_data3.diff
    Last edited by alex_sh; 18th December 2010 at 14:16. Reason: reformatted to look better

  7. #6
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    The first patch initializes the image so that you can't see, when a line of the image is not filled - but of course it doesn't solve anything. And the second one adds out of bounds checks, that are already checked at the beginning of the method.

    If your second patch really changes something I would expect a problem with the internally cached step sizes, that should be solved instead of adding workarounds.

    Please add the following code instead of your second patch:

    Qt Code:
    1. if ( row < 0 || row >= d_data->numRows ||
    2. col < 0 || col >= d_data->numColumns )
    3. {
    4. qDebug() << QPointF(x, y) << " -> " << QPoint(col, row);
    5. qDebug() << d_data->numColumns << d_data->numRows
    6. qDebug() << xInterval << yInterval;
    7. qDebug() << d_data->dx << d_data->dy;
    8. abort();
    9. }
    To copy to clipboard, switch view to plain text mode 
    Uwe

  8. #7
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Quote Originally Posted by Uwe View Post
    The first patch initializes the image so that you can't see, when a line of the image is not filled - but of course it doesn't solve anything.
    Of course it's just used to clean up the image. However, with all that CPU-specific floating point rounding I doubt a perfect fill can be achieved the way the code is implemented now.

    And the second one adds out of bounds checks, that are already checked at the beginning of the method.
    Again, rounding floating points and using them as indices - that's too platform-, compiler- and CPU-specific in corner cases. Even if there are floating point checks there, I would still leave the integer checks, the floats/doubles are just too error-prone.

    If your second patch really changes something I would expect a problem with the internally cached step sizes, that should be solved instead of adding workarounds.
    Of course. That's what I meant in my previous post when I said that it probably just hides the original problem. But even if the original problem is fixed, I would still leave it here, I trust integer checks a lot more than I trust float/double comparisons (especially when followed by operations on them).

    Please add the following code instead of your second patch:
    Qt Code:
    1. if ( row < 0 || row >= d_data->numRows ||
    2. col < 0 || col >= d_data->numColumns )
    3. {
    4. qDebug() << QPointF(x, y) << " -> " << QPoint(col, row);
    5. qDebug() << d_data->numColumns << d_data->numRows
    6. qDebug() << xInterval << yInterval;
    7. qDebug() << d_data->dx << d_data->dy;
    8. abort();
    9. }
    To copy to clipboard, switch view to plain text mode 
    Here you go, crashed on startup (keep in mind that I'm returning QRectF() from pixelHint() in plot.cpp):
    ./rasterview
    QPointF(1, 0) -> QPoint(100,50)
    100 100
    QwtInterval([-1,1]) QwtInterval([-1,1])
    0.02 0.02
    Aborted

    Thanks

  9. #8
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Quote Originally Posted by alex_sh View Post
    ./rasterview
    QPointF(1, 0) -> QPoint(100,50)
    100 100
    QwtInterval([-1,1]) QwtInterval([-1,1])
    0.02 0.02
    Aborted
    QwtMatrixRasterData splits the intervals into the following 100 subintervals:
    Qt Code:
    1. [-1, -0.98[, [-0.98, -0.96], ..., [0.96, 0.98[, [0.98, 1.0[
    To copy to clipboard, switch view to plain text mode 

    Now the problem is, when you request the value for the (here explicitly included !) maximum of the interval ( = 1.0 ), because its is mapped to the subinterval [1.0, 1.02[, what is out of bounds. The intended solution for such an interval definition is to have a last subinterval including the maximum:
    Qt Code:
    1. [-1, -0.98[, [-0.98, -0.96], ..., [0.96, 0.98[, [0.98, 1.0]
    To copy to clipboard, switch view to plain text mode 

    This bug explains the black lines at the top and the right from your screenshots as a random value is returned - fixed in SVN.
    ---

    Two comments:

    1) Your abort happens at QPoint(100,50). The 50 indicates, that the first row to be rendered is at y position 0.0. In the code, that you have posted, the scales are from -1.0 to 1.0, so obviously your image is rendered for a completely different scale.

    Are you running a different application than the one you have posted or initiates your environment an unwanted early replot - maybe for the initial scales 0.0 - 1000.0 ?

    2) qwtExpandImage is a special way to scale an image taking rounding errors at the pixel borders into count ( the pixel borders should exactly match the ticks ! ). I don't see any reason, why this can't be written properly - and so far I have no indication, that it isn't.

    But even if it has a bug ( please tell me if there is still something wrong ) your patch is no solution. A gap in an image returning pixels from some initialization is as wrong as returning uninitialized ones.

    Uwe

  10. #9
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Hello,

    Quote Originally Posted by Uwe View Post
    QwtMatrixRasterData splits the intervals into the following 100 subintervals:
    Qt Code:
    1. [-1, -0.98[, [-0.98, -0.96], ..., [0.96, 0.98[, [0.98, 1.0[
    To copy to clipboard, switch view to plain text mode 

    Now the problem is, when you request the value for the (here explicitly included !) maximum of the interval ( = 1.0 ), because its is mapped to the subinterval [1.0, 1.02[, what is out of bounds. The intended solution for such an interval definition is to have a last subinterval including the maximum:
    Qt Code:
    1. [-1, -0.98[, [-0.98, -0.96], ..., [0.96, 0.98[, [0.98, 1.0]
    To copy to clipboard, switch view to plain text mode 

    This bug explains the black lines at the top and the right from your screenshots as a random value is returned - fixed in SVN.
    ---
    Thanks, the latest SVN fixes #3 (the black line at the top). Unfortunately, #2 (the multi-colored lines) still appears when QwtMatrixRasterData's default pixelHint() is in action. I can usually reproduce it by panning the plot so that only its right top quarter is visible, and then zoom in / zoom out. At one point or another either the right or the top line appears.

    Two comments:

    1) Your abort happens at QPoint(100,50). The 50 indicates, that the first row to be rendered is at y position 0.0. In the code, that you have posted, the scales are from -1.0 to 1.0, so obviously your image is rendered for a completely different scale.

    Are you running a different application than the one you have posted or initiates your environment an unwanted early replot - maybe for the initial scales 0.0 - 1000.0 ?
    No, I didn't change anything to reproduce #3 (other than uncommenting pixelHint() in plot.cpp to return QRectF()). Maybe it's multithreading in action (that tile is rendered first)?

    2) qwtExpandImage is a special way to scale an image taking rounding errors at the pixel borders into count ( the pixel borders should exactly match the ticks ! ). I don't see any reason, why this can't be written properly - and so far I have no indication, that it isn't.

    But even if it has a bug ( please tell me if there is still something wrong ) your patch is no solution. A gap in an image returning pixels from some initialization is as wrong as returning uninitialized ones.
    Unfortunately, bug #2 is still present and valgrind points to qwtExpandImage() as the source of uninitialized pixels. The lines always appear to the right or the top.
    If you're unable to reproduce it or run it in valgrind, maybe you could try filling the expanded image with black pixels to see whether they show up sometimes?

    Thanks
    Last edited by alex_sh; 19th December 2010 at 19:39. Reason: wrong bbcode tag usage

  11. #10
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Quote Originally Posted by alex_sh View Post
    Unfortunately, #2 (the multi-colored lines) still appears when QwtMatrixRasterData's default pixelHint() is in action. I can usually reproduce it by panning the plot so that only its right top quarter is visible, and then zoom in / zoom out. At one point or another either the right or the top line appears.
    Indeed now I can see this one too.

    It looks like the expanded image is filled without gaps, but at the borders one row or column is sometimes unfilled. I will try to understand where this misalignment happens.

    Uwe

  12. #11
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Quote Originally Posted by Uwe View Post
    It looks like the expanded image is filled without gaps, but at the borders one row or column is sometimes unfilled. I will try to understand where this misalignment happens.
    Fixed in SVN.

    Uwe

  13. #12
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Thanks, but now I get segfaults (program aborted, looks like a double-free corruption).
    This happens with my originally attached example (but not with stock rasterview). Just run it and drag the plot around a bit. Usually it happens when the plot is back in the center.

    Thanks in advance!

    Here's a gdb backtrace:

    Qt Code:
    1. Program received signal SIGABRT, Aborted.
    2. 0x00007ffff5ffe9e5 in raise () from /lib64/libc.so.6
    3. #0 0x00007ffff5ffe9e5 in raise () from /lib64/libc.so.6
    4. #1 0x00007ffff5fffee6 in abort () from /lib64/libc.so.6
    5. #2 0x00007ffff6039c53 in __libc_message () from /lib64/libc.so.6
    6. #3 0x00007ffff603f226 in malloc_printerr () from /lib64/libc.so.6
    7. #4 0x00007ffff6043fcc in free () from /lib64/libc.so.6
    8. #5 0x00007ffff73db0cd in QImageData::~QImageData() ()
    9. from /usr/lib64/libQtGui.so.4
    10. #6 0x00007ffff73deea8 in QImage::operator=(QImage const&) ()
    11. from /usr/lib64/libQtGui.so.4
    12. #7 0x000000000042f69c in QwtPlotRasterItem::draw (this=0x72f420, painter=
    13. 0x7fffffffa360, xMap=..., yMap=..., canvasRect=...)
    14. at qwt_plot_rasteritem.cpp:682
    15. #8 0x00000000004224ab in QwtPlotSpectrogram::draw (this=0x72f420, painter=
    16. 0x7fffffffa360, xMap=..., yMap=..., canvasRect=...)
    17. at qwt_plot_spectrogram.cpp:635
    18. #9 0x00000000004180b5 in QwtPlot::drawItems (this=0x70e970, painter=
    19. 0x7fffffffa360, canvasRect=..., map=0x7fffffffa1d0) at qwt_plot.cpp:507
    20. #10 0x0000000000417ec2 in QwtPlot::drawCanvas (this=0x70e970, painter=
    21. 0x7fffffffa360) at qwt_plot.cpp:480
    22. #11 0x000000000042ac80 in QwtPlotCanvas::drawCanvas (this=0xb1f670, painter=
    23. 0x7fffffffa4f0) at qwt_plot_canvas.cpp:625
    24. #12 0x000000000042a8fa in QwtPlotCanvas::drawContents (this=0xb1f670, painter=
    25. 0x7fffffffa4f0) at qwt_plot_canvas.cpp:574
    26. #13 0x0000000000429f69 in QwtPlotCanvas::paintEvent (this=0xb1f670, event=
    27. 0x7fffffffad50) at qwt_plot_canvas.cpp:445
    28. #14 0x00007ffff737364e in QWidget::event(QEvent*) ()
    29. from /usr/lib64/libQtGui.so.4
    30. #15 0x00007ffff7702436 in QFrame::event(QEvent*) ()
    31. from /usr/lib64/libQtGui.so.4
    32. #16 0x0000000000429d30 in QwtPlotCanvas::event (this=0xb1f670, event=
    33. 0x7fffffffad50) at qwt_plot_canvas.cpp:406
    34. #17 0x00007ffff7321c94 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    35. () from /usr/lib64/libQtGui.so.4
    36. #18 0x00007ffff732a22a in QApplication::notify(QObject*, QEvent*) ()
    37. from /usr/lib64/libQtGui.so.4
    38. #19 0x00007ffff6e2562c in QCoreApplication::notifyInternal(QObject*, QEvent*)
    39. () from /usr/lib64/libQtCore.so.4
    40. #20 0x00007ffff7370522 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
    41. from /usr/lib64/libQtGui.so.4
    42. #21 0x00007ffff73710ef in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/libQtGui.so.4
    43. #22 0x00007ffff737028a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
    44. from /usr/lib64/libQtGui.so.4
    45. #23 0x00007ffff73710ef in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/libQtGui.so.4
    46. #24 0x00007ffff737028a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
    47. from /usr/lib64/libQtGui.so.4
    48. #25 0x00007ffff7535431 in QWidgetBackingStore::sync() ()
    49. from /usr/lib64/libQtGui.so.4
    50. #26 0x00007ffff7365150 in QWidgetPrivate::syncBackingStore() ()
    51. from /usr/lib64/libQtGui.so.4
    52. #27 0x00007ffff7373b52 in QWidget::event(QEvent*) ()
    53. from /usr/lib64/libQtGui.so.4
    54. #28 0x00007ffff771c00b in QMainWindow::event(QEvent*) ()
    55. from /usr/lib64/libQtGui.so.4
    56. #29 0x00007ffff7321c94 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    57. () from /usr/lib64/libQtGui.so.4
    58. #30 0x00007ffff732a22a in QApplication::notify(QObject*, QEvent*) ()
    59. from /usr/lib64/libQtGui.so.4
    60. #31 0x00007ffff6e2562c in QCoreApplication::notifyInternal(QObject*, QEvent*)
    61. () from /usr/lib64/libQtCore.so.4
    62. #32 0x00007ffff7531d2d in QWidgetBackingStore::markDirty(QRect const&, QWidget*, bool, bool) () from /usr/lib64/libQtGui.so.4
    63. #33 0x00007ffff7366058 in QWidget::repaint(QRect const&) ()
    64. from /usr/lib64/libQtGui.so.4
    65. #34 0x000000000042aed1 in QwtPlotCanvas::replot (this=0xb1f670)
    66. at qwt_plot_canvas.cpp:660
    67. #35 0x00000000004173df in QwtPlot::replot (this=0x70e970) at qwt_plot.cpp:330
    68. #36 0x000000000042d1e3 in QwtPlotPanner::moveCanvas (this=0x827650, dx=-19, dy=
    69. -9) at qwt_plot_panner.cpp:162
    70. #37 0x0000000000435f07 in QwtPlotPanner::qt_metacall (this=0x827650, _c=
    71. QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffc7d0)
    72. at moc/moc_qwt_plot_panner.cpp:72
    73. #38 0x00007ffff6e3a87f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
    74. #39 0x000000000045806f in QwtPanner::panned (this=0x827650, _t1=-19, _t2=-9)
    75. at moc/moc_qwt_panner.cpp:87
    76. #40 0x000000000043d73d in QwtPanner::widgetMouseReleaseEvent (this=0x827650,
    77. me=0x7fffffffcef0) at qwt_panner.cpp:425
    78. #41 0x000000000043d0ab in QwtPanner::eventFilter (this=0x827650, o=0xb1f670, e=
    79. 0x7fffffffcef0) at qwt_panner.cpp:301
    80. #42 0x00007ffff6e257b7 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
    81. #43 0x00007ffff7321c61 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    82. () from /usr/lib64/libQtGui.so.4
    83. #44 0x00007ffff732aaaa in QApplication::notify(QObject*, QEvent*) ()
    84. from /usr/lib64/libQtGui.so.4
    85. #45 0x00007ffff6e2562c in QCoreApplication::notifyInternal(QObject*, QEvent*)
    86. () from /usr/lib64/libQtCore.so.4
    87. #46 0x00007ffff7322c95 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
    88. from /usr/lib64/libQtGui.so.4
    89. #47 0x00007ffff73a1668 in QETWidget::translateMouseEvent(_XEvent const*) ()
    90. from /usr/lib64/libQtGui.so.4
    91. #48 0x00007ffff739fd49 in QApplication::x11ProcessEvent(_XEvent*) ()
    92. from /usr/lib64/libQtGui.so.4
    93. #49 0x00007ffff73c7942 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/libQtGui.so.4
    94. #50 0x00007ffff5d25083 in g_main_dispatch (context=0x687440) at gmain.c:2149
    95. #51 g_main_context_dispatch (context=0x687440) at gmain.c:2702
    96. #52 0x00007ffff5d25860 in g_main_context_iterate (context=0x687440, block=1,
    97. dispatch=1, self=<value optimized out>) at gmain.c:2780
    98. #53 0x00007ffff5d25b00 in g_main_context_iteration (context=0x687440,
    99. may_block=1) at gmain.c:2843
    100. #54 0x00007ffff6e5031f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
    101. #55 0x00007ffff73c75de in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtGui.so.4
    102. #56 0x00007ffff6e24a62 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
    103. #57 0x00007ffff6e24c75 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
    104. #58 0x00007ffff6e290db in QCoreApplication::exec() ()
    105. from /usr/lib64/libQtCore.so.4
    106. #59 0x0000000000413ea7 in main (argc=1, argv=0x7fffffffdd08) at main.cpp:61
    To copy to clipboard, switch view to plain text mode 

  14. #13
    Join Date
    Feb 2006
    Location
    Munich, Germany
    Posts
    3,312
    Thanked 879 Times in 827 Posts
    Qt products
    Qt3 Qt4 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Quote Originally Posted by alex_sh View Post
    Thanks, but now I get segfaults (program aborted, looks like a double-free corruption).
    Wow this is really a "schwere Geburt". Again its qwtExpandImage - I had removed some boundary checks that are still necessary.

    Fixed in SVN,
    Uwe

  15. The following user says thank you to Uwe for this useful post:

    alex_sh (23rd January 2011)

  16. #14
    Join Date
    Sep 2010
    Posts
    46
    Thanks
    14
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Bugs in QwtMatrixRasterData?

    Thanks a lot, your work is really appreciated!

Similar Threads

  1. Qwt 6.0.0-rc3 bugs
    By Vortex in forum Qwt
    Replies: 1
    Last Post: 30th October 2010, 09:24
  2. [OT] closing of qt bugs
    By luf in forum Qt Programming
    Replies: 0
    Last Post: 26th July 2010, 13:55
  3. 4.3.1 vs 4.1.4 setfixedwidth (bugs??)
    By zorro68 in forum Qt Programming
    Replies: 1
    Last Post: 23rd September 2007, 14:21
  4. Qt 4.3.0 lots of Bugs!
    By VireX in forum Qt Programming
    Replies: 69
    Last Post: 20th June 2007, 22:05
  5. Bugs, style changes in 4.1.0?
    By simk in forum Qt Programming
    Replies: 13
    Last Post: 13th February 2006, 11:05

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.