From 7f5400d2ba9538c91b35ba3f984ffa1cf5cd4e0b Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Thu, 24 Sep 2009 11:26:33 +0000 Subject: [PATCH] 2009-09-24 13:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbthread.h * modified some internal structure definitions (used nameless unions) to pacify possible warnings on structure initialization. --- harbour/ChangeLog | 5 +++++ harbour/include/hbthread.h | 39 ++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7974f137f9..b5c9e8d9c2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,11 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-09-24 13:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbthread.h + * modified some internal structure definitions (used nameless unions) + to pacify possible warnings on structure initialization. + 2009-09-24 11:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbpp.h * harbour/include/hbcompdf.h diff --git a/harbour/include/hbthread.h b/harbour/include/hbthread.h index 9ad45466d8..9f14ce9eae 100644 --- a/harbour/include/hbthread.h +++ b/harbour/include/hbthread.h @@ -157,7 +157,6 @@ HB_EXTERN_BEGIN # define HB_CRITICAL_NEED_INIT # endif # define HB_CRITICAL_GET(v) ( &( (v)->critical ) ) -# define HB_CRITICAL_INITVAL { } # endif # if defined( PTHREAD_COND_INITIALIZER ) && !defined( HB_COND_NEED_INIT ) @@ -170,7 +169,6 @@ HB_EXTERN_BEGIN # define HB_COND_NEED_INIT # endif # define HB_COND_GET(v) ( &( (v)->cond ) ) -# define HB_COND_INITVAL { } # endif #elif defined( HB_OS_WIN ) @@ -199,12 +197,6 @@ HB_EXTERN_BEGIN # define HB_THREAD_SELF() GetCurrentThreadId() -# if defined( __GNUC__ ) -# define HB_CRITICAL_INITVAL { 0, 0, 0, 0, 0, 0 } -# else -# define HB_CRITICAL_INITVAL { 0 } -# endif - # define HB_CRITICAL_INIT(v) InitializeCriticalSection( &(v) ) # define HB_CRITICAL_DESTROY(v) DeleteCriticalSection( &(v) ) # define HB_CRITICAL_LOCK(v) EnterCriticalSection( &(v) ) @@ -236,7 +228,6 @@ HB_EXTERN_BEGIN # define HB_THREAD_END _endthread(); return; # define HB_THREAD_RAWEND return; -# define HB_CRITICAL_INITVAL ( ( HMTX ) 0 ) # if defined( __GNUC__ ) # define HB_THREAD_SELF() ( ( TID ) _gettid() ) # else @@ -314,9 +305,13 @@ HB_EXTERN_BEGIN typedef struct { BOOL fInit; - HB_RAWCRITICAL_T critical; + union + { + int dummy; + HB_RAWCRITICAL_T critical; + }; } HB_CRITICAL_T; -# define HB_CRITICAL_NEW( name ) HB_CRITICAL_T name = { FALSE, HB_CRITICAL_INITVAL } +# define HB_CRITICAL_NEW( name ) HB_CRITICAL_T name = { FALSE, { 0 } } #endif /* HB_CRITICAL_NEED_INIT */ #ifdef HB_COND_NEED_INIT @@ -324,18 +319,30 @@ HB_EXTERN_BEGIN typedef struct { BOOL fInit; - HB_RAWCOND_T cond; + union + { + int dummy; + HB_RAWCOND_T cond; + }; } HB_COND_T; -# define HB_COND_NEW( name ) HB_COND_T name = { FALSE, HB_COND_INITVAL } +# define HB_COND_NEW( name ) HB_COND_T name = { FALSE, { 0 } } # else typedef struct { BOOL fInit; int waiters; - HB_RAWCOND_T cond; - HB_RAWCRITICAL_T critical; + union + { + int dummycond; + HB_RAWCOND_T cond; + }; + union + { + int dummy; + HB_RAWCRITICAL_T critical; + }; } HB_COND_T; -# define HB_COND_NEW( name ) HB_COND_T name = { FALSE, 0, HB_COND_INITVAL, HB_CRITICAL_INITVAL } +# define HB_COND_NEW( name ) HB_COND_T name = { FALSE, 0, { 0 }, { 0 } } # endif #endif /* HB_COND_NEED_INIT */