Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#1255 closed bug (fixed)

georeferencer: refuses to delete some GCPs or deletes wrong ones, crashes at times

Reported by: msieczka Owned by: homann
Priority: critical: causes crash or data corruption Milestone:
Component: C++ Plugins Version: Trunk
Keywords: Cc:
Must Fix for Release: Yes Platform: Debian
Platform Version: Awaiting user input: no

Description

Trunk r9205, QT 4.4.0, Debian testing amd64.

  1. load a bitmap in georeferencer
  1. add 4 GCPs at corners
  1. pres "Create" ("Linear" transformation)
  1. you realise point coordinates are bogus
  1. try to delete all points - one of them will resist (at least for me); QGIS also sometimes deletes another point instead of the one you click

Sometimes deleting the points or if "Create and load" is done instead QGIS crashes:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f5771f887a0 (LWP 28789)]
0x00007f5762626f7e in QgsPointDialog::openImageFile (this=0x29afbd0, layerPath=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 3101}, alloc = 0, size = 0, data = 0x93339a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 62}, alloc = 0, size = 0, data = 0x7f577174085a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fff7a0bf310, static codecForCStrings = 0x0})
    at /home/shoofi/src/straight/qgis-trunk/src/plugins/georeferencer/qgspointdialog.cpp:101
101	    delete *it;
(gdb) bt
#0  0x00007f5762626f7e in QgsPointDialog::openImageFile (this=0x29afbd0, 
    layerPath=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 3101}, alloc = 0, size = 0, data = 0x93339a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 62}, alloc = 0, size = 0, data = 0x7f577174085a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fff7a0bf310, static codecForCStrings = 0x0})
    at /home/shoofi/src/straight/qgis-trunk/src/plugins/georeferencer/qgspointdialog.cpp:101
#1  0x00007f576261c253 in QgsGeorefPluginGui::on_pbnSelectRaster_clicked (
    this=0x23cdd40)
    at /home/shoofi/src/straight/qgis-trunk/src/plugins/georeferencer/plugingui.cpp:157
#2  0x00007f5762631bb5 in QgsGeorefPluginGui::qt_metacall (this=0x23cdd40, 
    _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fff7a0bf460)
    at /home/shoofi/src/straight/qgis-trunk/build/src/plugins/georeferencer/moc_plugingui.cxx:73
#3  0x00007f577146d764 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#4  0x00007f5770f066e7 in QAbstractButton::clicked ()
   from /usr/lib/libQtGui.so.4
#5  0x00007f5770c8c53b in ?? () from /usr/lib/libQtGui.so.4
#6  0x00007f5770c8c642 in QAbstractButton::click () from /usr/lib/libQtGui.so.4
#7  0x00007f5770d9a522 in QDialog::keyPressEvent () from /usr/lib/libQtGui.so.4
#8  0x00007f57709da26c in QWidget::event () from /usr/lib/libQtGui.so.4
#9  0x00007f5770987e5d in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#10 0x00007f57709909d4 in QApplication::notify () from /usr/lib/libQtGui.so.4
#11 0x00007f5771459411 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#12 0x00007f5770a15d04 in ?? () from /usr/lib/libQtGui.so.4
#13 0x00007f5770a17fbe in ?? () from /usr/lib/libQtGui.so.4
#14 0x00007f57709f1f10 in QApplication::x11ProcessEvent ()
   from /usr/lib/libQtGui.so.4
#15 0x00007f5770a199cc in ?? () from /usr/lib/libQtGui.so.4
#16 0x00007f576d521892 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#17 0x00007f576d52501d in ?? () from /usr/lib/libglib-2.0.so.0
#18 0x00007f576d5251db in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#19 0x00007f577148183f in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#20 0x00007f5770a1916f in ?? () from /usr/lib/libQtGui.so.4
#21 0x00007f5771457d22 in QEventLoop::processEvents ()
   from /usr/lib/libQtCore.so.4
#22 0x00007f5771457ead in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#23 0x00007f577145a37d in QCoreApplication::exec ()
   from /usr/lib/libQtCore.so.4
#24 0x00000000004b2599 in main (argc=1, argv=0x7fff7a0c1518)
    at /home/shoofi/src/straight/qgis-trunk/src/app/main.cpp:683

Change History (4)

comment:1 by msieczka, 16 years ago

... and, for some reason, the X coord in GCPs file is always integer while the Y is always floating point; example:

mapX	mapY	pixelX	pixelY
883500	236000.000000000000000	464.328	-452.326304572328695
883500	236800.000000000000000	13157	-446.548770001110540
883000	236800.000000000000000	13159.6	-8376.956679517299563
883000	236000.000000000000000	463.547	-8388.023781212841641

comment:2 by homann, 16 years ago

Owner: changed from nobody to homann
Status: newassigned

Please submit new bugs or change descriptions if you find unrelated bugs. Hard to search bug queue otherwise.

Fixed the last part in r9359.

comment:3 by homann, 16 years ago

Resolution: fixed
Status: assignedclosed

And fixed the bug in r9360.

comment:4 by (none), 15 years ago

Milestone: Version 1.0.0

Milestone Version 1.0.0 deleted

Note: See TracTickets for help on using tickets.