From ab02c791d5772a22aee7f33eb28c34c7cf997d33 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Wed, 17 Sep 2008 16:39:24 +0000 Subject: [PATCH] 2008-09-17 18:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbthread.h + added macros to disable default native compiler TLS support: HB_NO_TLS * harbour/source/vm/set.c ! fixed GPF when set listeners were removed --- harbour/ChangeLog | 8 ++++++++ harbour/include/hbthread.h | 4 +++- harbour/source/vm/set.c | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index ad57569ab2..3f2e1d946e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-09-17 18:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbthread.h + + added macros to disable default native compiler TLS support: + HB_NO_TLS + + * harbour/source/vm/set.c + ! fixed GPF when set listeners were removed + 2008-09-17 18:04 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * make_gcc.sh * contrib/make_gcc_all.sh diff --git a/harbour/include/hbthread.h b/harbour/include/hbthread.h index 3fede7cc18..744b9fe8cc 100644 --- a/harbour/include/hbthread.h +++ b/harbour/include/hbthread.h @@ -297,7 +297,9 @@ extern PHB_ITEM hb_threadMutexTimedSubscribe( PHB_ITEM pItem, ULONG ulMilliSec, extern void hb_threadMutexUnlockAll( void ); -#if !defined( HB_USE_TLS ) +#if defined( HB_NO_TLS ) +# undef HB_USE_TLS +#elif !defined( HB_USE_TLS ) /* enable native compiler TLS support be default for this compilers * which are known that it will work correctly */ diff --git a/harbour/source/vm/set.c b/harbour/source/vm/set.c index e85d4ca690..34b0d7b67d 100644 --- a/harbour/source/vm/set.c +++ b/harbour/source/vm/set.c @@ -1104,7 +1104,8 @@ void hb_setRelease( PHB_SET_STRUCT pSet ) /* Free all set listeners */ if( pSet->hb_set_listener ) { - PHB_SET_LISTENER pListener = ( PHB_SET_LISTENER ) pSet->hb_set_listener; + PHB_SET_LISTENER pListener = ( ( PHB_SET_LISTENER_LST ) + pSet->hb_set_listener )->first; while( pListener ) { PHB_SET_LISTENER pNext = pListener->next;