From 4a6c67d590f94c4bc09d4abbe8647ca0b2d71cc7 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Wed, 20 Jun 2012 23:36:26 +0000 Subject: [PATCH] 2012-06-20 16:30 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtcore/hbqt_bind.cpp * contrib/hbqt/qtcore/hbqt_misc.prg + Implemented: DESTRUCTOR FUNCTION * contrib/hbqt/qtgui/hbqt_init.cpp * contrib/hbqt/qtcore/hbqt_init.cpp ! Fixed: some rare signals issued by Qt with NULL pointers. This fixes regression reported on user-list a few days back. And probably fixes many-many unexplained GPF's. --- harbour/ChangeLog | 11 + harbour/contrib/hbqt/qtcore/hbqt_bind.cpp | 4 +- harbour/contrib/hbqt/qtcore/hbqt_init.cpp | 285 ++++++++------ harbour/contrib/hbqt/qtcore/hbqt_misc.prg | 12 +- harbour/contrib/hbqt/qtgui/hbqt_init.cpp | 450 ++++++++++++++-------- 5 files changed, 458 insertions(+), 304 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 1c140fb6c5..f1cb205619 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,17 @@ The license applies to all entries newer than 2009-04-28. */ +2012-06-20 16:30 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbqt/qtcore/hbqt_bind.cpp + * contrib/hbqt/qtcore/hbqt_misc.prg + + Implemented: DESTRUCTOR FUNCTION + + * contrib/hbqt/qtgui/hbqt_init.cpp + * contrib/hbqt/qtcore/hbqt_init.cpp + ! Fixed: some rare signals issued by Qt with NULL pointers. + This fixes regression reported on user-list a few days back. + And probably fixes many-many unexplained GPF's. + 2012-06-20 19:02 UTC+0200 Viktor Szakats (harbour syenar.net) * utils/hbmk2/hbmk2.prg * marked the file as UTF8 diff --git a/harbour/contrib/hbqt/qtcore/hbqt_bind.cpp b/harbour/contrib/hbqt/qtcore/hbqt_bind.cpp index d60f26f13d..4c163a5767 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_bind.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_bind.cpp @@ -928,9 +928,7 @@ void hbqt_bindDelChild( PHB_ITEM pObject, PHB_ITEM pChild ) */ HB_FUNC( __HBQT_DESTROY ) { - PHB_ITEM pObject = hb_param( 1, HB_IT_OBJECT ); - if( pObject == NULL ) - pObject = hb_stackSelfItem(); + PHB_ITEM pObject = hb_stackSelfItem(); if( pObject ) hbqt_bindDestroyHbObject( pObject ); } diff --git a/harbour/contrib/hbqt/qtcore/hbqt_init.cpp b/harbour/contrib/hbqt/qtcore/hbqt_init.cpp index 8e41fbb212..fcc6a97658 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_init.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_init.cpp @@ -105,47 +105,55 @@ HB_EXTERN_END static void hbqt_SlotsExecPointer( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , ( const char * ) pList.at( 0 ).data(), NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecPointerPointer( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , ( const char * ) pList.at( 0 ).data(), NULL, HBQT_BIT_QOBJECT ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , ( const char * ) pList.at( 0 ).data(), NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , ( const char * ) pList.at( 0 ).data(), NULL, HBQT_BIT_QOBJECT ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecPointerInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , ( const char * ) pList.at( 0 ).data(), NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmSend( 2 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecBool( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushLogical( *reinterpret_cast< bool( * ) >( arguments[ 1 ] ) ); @@ -155,7 +163,6 @@ static void hbqt_SlotsExecBool( PHB_ITEM * codeBlock, void ** arguments, QString static void hbqt_SlotsExecDouble( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushDouble( *reinterpret_cast< double( * ) >( arguments[ 1 ] ), 4 ); @@ -165,7 +172,6 @@ static void hbqt_SlotsExecDouble( PHB_ITEM * codeBlock, void ** arguments, QStri static void hbqt_SlotsExecInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 1 ] ) ); @@ -175,7 +181,6 @@ static void hbqt_SlotsExecInt( PHB_ITEM * codeBlock, void ** arguments, QStringL static void hbqt_SlotsExecIntInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 1 ] ) ); @@ -186,7 +191,6 @@ static void hbqt_SlotsExecIntInt( PHB_ITEM * codeBlock, void ** arguments, QStri static void hbqt_SlotsExecIntIntInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 1 ] ) ); @@ -198,7 +202,6 @@ static void hbqt_SlotsExecIntIntInt( PHB_ITEM * codeBlock, void ** arguments, QS static void hbqt_SlotsExecIntIntIntInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); hb_vmPush( codeBlock ); hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 1 ] ) ); @@ -211,7 +214,6 @@ static void hbqt_SlotsExecIntIntIntInt( PHB_ITEM * codeBlock, void ** arguments, static void hbqt_SlotsExecString( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - QString text = *reinterpret_cast< QString( * ) >( arguments[ 1 ] ); hb_vmPushEvalSym(); hb_vmPush( codeBlock ); @@ -222,187 +224,220 @@ static void hbqt_SlotsExecString( PHB_ITEM * codeBlock, void ** arguments, QStri static void hbqt_SlotsExecModel( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QModelIndex( ( *reinterpret_cast< QModelIndex( * ) >( arguments[ 1 ] ) ) ), "HB_QMODELINDEX", hbqt_del_QModelIndex, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecModelModel( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QModelIndex( ( *reinterpret_cast< QModelIndex( * ) >( arguments[ 1 ] ) ) ), "HB_QMODELINDEX", hbqt_del_QModelIndex, HBQT_BIT_OWNER ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, new QModelIndex( ( *reinterpret_cast< QModelIndex( * ) >( arguments[ 1 ] ) ) ), "HB_QMODELINDEX", hbqt_del_QModelIndex, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, new QModelIndex( ( *reinterpret_cast< QModelIndex( * ) >( arguments[ 1 ] ) ) ), "HB_QMODELINDEX", hbqt_del_QModelIndex, HBQT_BIT_OWNER ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecStringList( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QStringList( ( *reinterpret_cast< QStringList( * ) >( arguments[ 1 ] ) ) ), "HB_QSTRINGLIST", hbqt_del_QStringList, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQPoint( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QPoint( ( *reinterpret_cast< QPoint( * ) >( arguments[ 1 ] ) ) ), "HB_QPOINT", hbqt_del_QPoint, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQUrl( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QUrl( ( *reinterpret_cast< QUrl( * ) >( arguments[ 1 ] ) ) ), "HB_QURL", hbqt_del_QUrl, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQDate( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QDate( ( *reinterpret_cast< QDate( * ) >( arguments[ 1 ] ) ) ), "HB_QDATE", hbqt_del_QDate, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQDateTime( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QDateTime( ( *reinterpret_cast< QDateTime( * ) >( arguments[ 1 ] ) ) ), "HB_QDATETIME", hbqt_del_QDateTime, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQTime( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTime( ( *reinterpret_cast< QTime( * ) >( arguments[ 1 ] ) ) ), "HB_QTIME", hbqt_del_QTime, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQRectF( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRectF( ( *reinterpret_cast< QRectF( * ) >( arguments[ 1 ] ) ) ), "HB_QRECTF", hbqt_del_QRectF, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQRectInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRect( ( *reinterpret_cast< QRect( * ) >( arguments[ 1 ] ) ) ), "HB_QRECT", hbqt_del_QRect, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmSend( 2 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQRect( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRect( ( *reinterpret_cast< QRect( * ) >( arguments[ 1 ] ) ) ), "HB_QRECT", hbqt_del_QRect, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQSizeF( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QSizeF( ( *reinterpret_cast< QSizeF( * ) >( arguments[ 1 ] ) ) ), "HB_QSIZEF", hbqt_del_QSizeF, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecModelIndexIntInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QModelIndex( ( *reinterpret_cast< QModelIndex( * ) >( arguments[ 1 ] ) ) ), "HB_QMODELINDEX", hbqt_del_QModelIndex, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 3 ] ) ); - hb_vmSend( 3 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 3 ] ) ); + hb_vmSend( 3 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecModelIndexList( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QList< QModelIndex *>( ( *reinterpret_cast< QList< QModelIndex *> *>( arguments[ 1 ] ) ) ), "HB_QMODELINDEXLIST", hbqt_del_QList, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQObject( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QOBJECT", NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbqt/qtcore/hbqt_misc.prg b/harbour/contrib/hbqt/qtcore/hbqt_misc.prg index b0601f036e..2ce41cc0de 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_misc.prg +++ b/harbour/contrib/hbqt/qtcore/hbqt_misc.prg @@ -68,7 +68,7 @@ CREATE CLASS HbQtObjectHandler METHOD setSlots() METHOD setEvents() - DESTRUCTOR __destroy() + DESTRUCTOR FUNCTION __hbqt_destroy() ERROR HANDLER onError() ENDCLASS @@ -231,13 +231,3 @@ METHOD HbQtObjectHandler:disconnect( cnEvent ) /*----------------------------------------------------------------------*/ -METHOD HbQtObjectHandler:__destroy() - - HB_TRACE( HB_TR_DEBUG, " __destroy()", __objDerivedFrom( Self, "QOBJECT" ), __objGetClsName( Self ) ) - - __hbqt_destroy( Self ) - - RETURN NIL - -/*----------------------------------------------------------------------*/ - diff --git a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp index 0684c3ac3c..14b9a098d1 100644 --- a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp +++ b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp @@ -143,282 +143,402 @@ HB_EXTERN_END static void hbqt_SlotsExecQColor( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QColor( ( *reinterpret_cast< QColor( * ) >( arguments[ 1 ] ) ) ), "HB_QCOLOR", hbqt_del_QColor, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecItemSelItemSel( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 1 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 2 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER ) ; - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 2 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER ) ; + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQTextCharFormat( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextCharFormat( ( *reinterpret_cast< QTextCharFormat( * ) >( arguments[ 1 ] ) ) ), "HB_QTEXTCHARFORMAT", hbqt_del_QTextCharFormat, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQFont( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QFont( ( *reinterpret_cast< QFont( * ) >( arguments[ 1 ] ) ) ), "HB_QFONT", hbqt_del_QFont, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQTextCursor( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextCursor( ( *reinterpret_cast< QTextCursor( * ) >( arguments[ 1 ] ) ) ), "HB_QTEXTCURSOR", hbqt_del_QTextCursor, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQTextBlock( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextBlock( ( *reinterpret_cast< QTextBlock( * ) >( arguments[ 1 ] ) ) ), "HB_QTEXTBLOCK", hbqt_del_QTextBlock, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextBlock( *reinterpret_cast< QTextBlock( * ) >( arguments[ 1 ] ) ), "HB_QTEXTBLOCK", hbqt_del_QTextBlock, HBQT_BIT_OWNER ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } } static void hbqt_SlotsExecQAbstractButton( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QWidget( ( QAbstractButton * ) ( arguments[ 1 ] ) ), "HB_QABSTRACTBUTTON", hbqt_del_QWidget, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + QAbstractButton * obj = ( QAbstractButton * ) arguments[ 1 ]; + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QWidget( obj ), "HB_QABSTRACTBUTTON", hbqt_del_QWidget, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQAction( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QAction( ( QAction * ) ( arguments[ 1 ] ) ), "HB_QACTION", hbqt_del_QAction, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + QAction * obj = ( QAction * ) arguments[ 1 ]; + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QAction( obj ), "HB_QACTION", hbqt_del_QAction, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQMdiSubWindow( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QMDISUBWINDOW", NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj , "HB_QMDISUBWINDOW", NULL, HBQT_BIT_QOBJECT ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQTreeWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQTreeWidgetItemInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmSend( 2 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQPrinter( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QPRINTER", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QPRINTER", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQStandardItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QSTANDARDITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QSTANDARDITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQListWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQListWidgetItemQListWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQTableWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQTableWidgetItemQTableWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQTreeWidgetItemQTreeWidgetItem( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQWidget( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmSend( 1 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmSend( 1 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQWidgetQWidget( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); - PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmPush( p1 ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); - hb_itemRelease( p1 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); + if( p0 ) + { + PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); + if( p1 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPush( p1 ); + hb_vmSend( 2 ); + hb_itemRelease( p1 ); + } + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQWidgetInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); - PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); + void * obj = *reinterpret_cast< void*( * ) >( arguments[ 1 ] ); + if( obj ) + { + PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, obj, "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmSend( 2 ); + hb_itemRelease( p0 ); + } + } } static void hbqt_SlotsExecQRectInt( PHB_ITEM * codeBlock, void ** arguments, QStringList pList ) { Q_UNUSED( pList ); - hb_vmPushEvalSym(); - hb_vmPush( codeBlock ); PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRect( ( *reinterpret_cast< QRect( * ) >( arguments[ 1 ] ) ) ), "HB_QRECT", hbqt_del_QRect, HBQT_BIT_OWNER ); - hb_vmPush( p0 ); - hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); - hb_vmSend( 2 ); - hb_itemRelease( p0 ); + if( p0 ) + { + hb_vmPushEvalSym(); + hb_vmPush( codeBlock ); + hb_vmPush( p0 ); + hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) ); + hb_vmSend( 2 ); + hb_itemRelease( p0 ); + } }