[Gambas-user] Abort on (strange) Picture load

Benoît Minisini gambas at ...1...
Sat Jan 19 16:00:04 CET 2013


Le 16/01/2013 16:41, Tobias Boege a écrit :
> Hi Benoit,
>
> converting an old Gambas2 project of a certain Mr. Fuchs I found gbx3
> aborting from QT when we do a rather strange Picture load:
>
> Static P As Picture = Picture["url"]
>
> in an _exported class_. The test project isolating the issue is attached.
>
> GDB shows the following:
>
> --8<---------------
>
> ...
> (gdb) r
> ...
> QPixmap: Must construct a QApplication before a QPaintDevice
>
> Program received signal SIGABRT, Aborted.
> 0x00007ffff713d2c5 in raise () from /usr/lib/libc.so.6
> (gdb) bt
> #0  0x00007ffff713d2c5 in raise () from /usr/lib/libc.so.6
> #1  0x00007ffff713e748 in abort () from /usr/lib/libc.so.6
> #2  0x00007ffff435d334 in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4
> #3  0x00007ffff435d4e8 in ?? () from /usr/lib/libQtCore.so.4
> #4  0x00007ffff435d674 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4
> #5  0x00007ffff4a54a6e in ?? () from /usr/lib/libQtGui.so.4
> #6  0x00007ffff4a55fe1 in QPixmap::QPixmap() () from /usr/lib/libQtGui.so.4
> #7  0x00007ffff6170fcb in CPICTURE_new (_object=0x7e82d8, _param=0x7ffff65d5040) at CPicture.cpp:230
> #8  0x0000000000412495 in EXEC_native () at gbx_exec.c:1332
> #9  0x000000000041343c in EXEC_special (special=0, class=0x6a6d38, object=0x7e82d8, nparam=0, drop=1 '\001') at gbx_exec.c:1640
> #10 0x00000000004136c8 in EXEC_special_inheritance (special=0, class=0x6a6d38, object=0x7e82d8, nparam=0, drop=1 '\001') at gbx_exec.c:1696
> #11 0x00000000004445a5 in OBJECT_create (class=0x6a6d38, name=0x0, parent=0x0, nparam=0) at gbx_object.c:404
> #12 0x0000000000437f68 in GB_New (class=0x6a6d38, name=0x0, parent=0x0) at gbx_api.c:1864
> #13 0x00007ffff61703bf in create () at CPicture.cpp:55
> #14 0x00007ffff6170a9e in get_picture (path=0x7b3017 "knob.png", len=8) at ../share/gb.form.picture.h:177
> #15 0x00007ffff6170e2f in CPICTURE_get (_object=0x0, _param=0x7ffff65d5020) at CPicture.cpp:188
> #16 0x0000000000412495 in EXEC_native () at gbx_exec.c:1332
> #17 0x000000000041343c in EXEC_special (special=2, class=0x6a6d38, object=0x0, nparam=1, drop=0 '\000') at gbx_exec.c:1640
> #18 0x0000000000416235 in EXEC_push_array (code=770) at gbx_exec_push.c:637
> #19 0x000000000045a3f8 in EXEC_loop () at gbx_exec_loop.c:570
> #20 0x0000000000410750 in EXEC_function_loop () at gbx_exec.c:906
> #21 0x00000000004103a7 in EXEC_function_real () at gbx_exec.c:870
> #22 0x000000000041fa66 in CLASS_run_inits (class=0x73f478) at gbx_class_load.c:1267
> #23 0x000000000041fb85 in CLASS_load_real (class=0x73f478) at gbx_class_load.c:1303
> #24 0x000000000043dd23 in ARCHIVE_load_exported_class (arch=0x68ff58) at gbx_archive.c:148
> #25 0x000000000043df79 in ARCHIVE_load_main () at gbx_archive.c:235
> #26 0x000000000042761c in PROJECT_load_finish () at gbx_project.c:476
> #27 0x0000000000441fe9 in init (file=0x464598 ".", argc=1, argv=0x7fffffffe6e8) at gbx.c:108
> #28 0x0000000000442a02 in main (argc=1, argv=0x7fffffffe6e8) at gbx.c:348
>
> --8<---------------
>
> gbx3 revision is #5499. This report is just in case you care fixing it. A
> (more sane) workaround is simple.

The exported class is loaded before qt4 is initialized, and so the 
library aborts the program.

Maybe I can initialize qt4 sooner, I will see...

>
> BTW: I found some elementary (means: only Gambas keywords involved) syntax
> in this project which wasn't recognised by the automatic converter. Do you
> want to have a report for this, too?

Yes. If I can make the conversion automatic, I will do it.

Regards,

-- 
Benoît Minisini




More information about the User mailing list