diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 222a524c43..2432ffd31b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,20 @@ The license applies to all entries newer than 2009-04-28. */ +2011-05-24 11:59 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/src/rtl/arc4.c + ! changed size parameter passed by reference to sysctl() to size_t + ! fixed WINCE builds + % enable pid checking only in *nix systems. + If system does not support fork() or compatible operation + (i.e. vfork(), clone()) then PID checking is completely useless. + + * harbour/src/rtl/gtwvt/gtwvt.c + * pacified WINCE warnings + + * harbour/contrib/rddads/adsx.c + ! fixed potentially uninitialized pTag variable + 2011-05-23 11:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * src/rtl/arc4.c ! build error on osx diff --git a/harbour/contrib/rddads/adsx.c b/harbour/contrib/rddads/adsx.c index 4bfc4bcf73..fb8ec4c8bb 100644 --- a/harbour/contrib/rddads/adsx.c +++ b/harbour/contrib/rddads/adsx.c @@ -1180,63 +1180,48 @@ static HB_ERRCODE adsxOrderDestroy( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo ) static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO pOrderInfo ) { - LPMIXTAG pTag; + LPMIXTAG pTag = pArea->pTagCurrent; /* resolve any pending relations */ if( pArea->adsarea.lpdbPendingRel ) SELF_FORCEREL( ( AREAP ) pArea ); /* all others need an index handle */ - if( uiIndex != DBOI_ORDERCOUNT && pOrderInfo->itmOrder && !HB_IS_NIL( pOrderInfo->itmOrder ) ) + if( uiIndex != DBOI_ORDERCOUNT ) { - if( HB_IS_STRING( pOrderInfo->itmOrder ) ) + if( pOrderInfo->itmOrder ) { - pTag = pArea->pTagList; - while ( pTag ) + if( HB_IS_STRING( pOrderInfo->itmOrder ) ) { - if( ! hb_stricmp( hb_itemGetCPtr( pOrderInfo->itmOrder ), pTag->szName ) ) - break; + pTag = pArea->pTagList; + while ( pTag ) + { + if( ! hb_stricmp( hb_itemGetCPtr( pOrderInfo->itmOrder ), pTag->szName ) ) + break; - pTag = pTag->pNext; + pTag = pTag->pNext; + } } - - if( ! pTag ) - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); - } - else if( HB_IS_NUMERIC( pOrderInfo->itmOrder ) ) - { - UNSIGNED16 usOrder = 0, usSearch = ( UNSIGNED16 ) hb_itemGetNI( pOrderInfo->itmOrder ); - - AdsGetNumIndexes( pArea->adsarea.hTable, &usOrder ); - - if( usSearch <= usOrder ) - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); - - pTag = pArea->pTagList; - usOrder++; - while ( pTag ) + else if( HB_IS_NUMERIC( pOrderInfo->itmOrder ) ) { - if( usSearch == usOrder ) - break; + UNSIGNED16 usOrder = 0, usSearch = ( UNSIGNED16 ) hb_itemGetNI( pOrderInfo->itmOrder ); - pTag = pTag->pNext; - usOrder++; + AdsGetNumIndexes( pArea->adsarea.hTable, &usOrder ); + + pTag = usSearch <= usOrder ? NULL : pArea->pTagList; + while ( pTag ) + { + if( ++usOrder == usSearch ) + break; + + pTag = pTag->pNext; + } } - - if( ! pTag ) - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); } - } - else if( ! pArea->pTagCurrent && uiIndex != DBOI_ORDERCOUNT ) - { - return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); - } - else - pTag = pArea->pTagCurrent; - /* resolve any pending relations */ - if( pArea->adsarea.lpdbPendingRel ) - SELF_FORCEREL( ( AREAP ) pArea ); + if( ! pTag ) + return SUPER_ORDINFO( ( AREAP ) pArea, uiIndex, pOrderInfo ); + } switch( uiIndex ) { diff --git a/harbour/src/rtl/arc4.c b/harbour/src/rtl/arc4.c index 455769693c..eb113e97a1 100644 --- a/harbour/src/rtl/arc4.c +++ b/harbour/src/rtl/arc4.c @@ -99,16 +99,14 @@ struct arc4_stream HB_U8 s[ 256 ]; }; -#if defined( HB_OS_WIN ) -# if ! defined( __BORLANDC__ ) && ! defined( __WATCOMC__ ) -# define getpid _getpid -# endif -# define pid_t int +#if !defined( HB_OS_UNIX ) +# define NO_PID_CHECK +#else +static pid_t arc4_stir_pid; #endif static int rs_initialized; static struct arc4_stream rs; -static pid_t arc4_stir_pid; static HB_I32 arc4_count; static HB_CRITICAL_NEW( arc4_lock ); @@ -214,7 +212,7 @@ static int arc4_seed_sysctl_linux( void ) */ int mib[] = { CTL_KERN, KERN_RANDOM, RANDOM_UUID }; HB_U8 buf[ ADD_ENTROPY ]; - HB_SIZE len, n; + size_t len, n; unsigned int i; int any_set; @@ -255,7 +253,7 @@ static int arc4_seed_sysctl_bsd( void ) */ int mib[] = { CTL_KERN, KERN_ARND }; HB_U8 buf[ ADD_ENTROPY ]; - HB_SIZE len, n; + size_t len, n; int i, any_set; memset( buf, 0, sizeof( buf ) ); @@ -515,6 +513,10 @@ static void arc4_stir( void ) static void arc4_stir_if_needed( void ) { +#if defined( NO_PID_CHECK ) + if( arc4_count <= 0 || ! rs_initialized ) + arc4_stir(); +#else pid_t pid = getpid(); if( arc4_count <= 0 || ! rs_initialized || arc4_stir_pid != pid ) @@ -522,6 +524,7 @@ static void arc4_stir_if_needed( void ) arc4_stir_pid = pid; arc4_stir(); } +#endif } static _HB_INLINE_ HB_U8 arc4_getbyte( void ) diff --git a/harbour/src/rtl/gtwvt/gtwvt.c b/harbour/src/rtl/gtwvt/gtwvt.c index 420a361b3a..b3ce220b5d 100644 --- a/harbour/src/rtl/gtwvt/gtwvt.c +++ b/harbour/src/rtl/gtwvt/gtwvt.c @@ -1000,7 +1000,10 @@ static void hb_gt_wvt_SetMousePos( PHB_GTWVT pWVT, int iRow, int iCol ) static void hb_gt_wvt_Composited( PHB_GTWVT pWVT, HB_BOOL fEnable ) { -#if ! defined( HB_OS_WIN_CE ) +#if defined( HB_OS_WIN_CE ) + HB_SYMBOL_UNUSED( pWVT ); + HB_SYMBOL_UNUSED( fEnable ); +#else if( hb_iswinvista() && ! GetSystemMetrics( SM_REMOTESESSION ) ) { if( fEnable )