diff --git a/harbour/ChangeLog b/harbour/ChangeLog index efa1f88f6d..7b91654ae2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,13 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-11-08 12:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbapigt.h + * harbour/src/rtl/hbgtcore.c + * harbour/src/vm/estack.c + * harbour/src/vm/garbage.c + ! fixed marking GC items stored in thread local GT windows + 2009-11-08 02:43 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/vm/set.c ! fixed small typos in returned values (FALSE instead of NULL and 0) diff --git a/harbour/include/hbapigt.h b/harbour/include/hbapigt.h index e1d502d4aa..e921076c48 100644 --- a/harbour/include/hbapigt.h +++ b/harbour/include/hbapigt.h @@ -153,7 +153,7 @@ typedef struct /* Public interface. These should never change, only be added to. */ -extern void hb_gtIsGtRef( void ); +extern void hb_gtIsGtRef( void * ); extern HB_EXPORT void hb_gtStartupInit( void ); extern HB_EXPORT void * hb_gtAlloc( void * hGT ); diff --git a/harbour/src/rtl/hbgtcore.c b/harbour/src/rtl/hbgtcore.c index 787f8c95a9..dce7f8658c 100644 --- a/harbour/src/rtl/hbgtcore.c +++ b/harbour/src/rtl/hbgtcore.c @@ -3251,9 +3251,9 @@ PHB_GT hb_gtLoad( const char * szGtName, PHB_GT pGT, PHB_GT_FUNCS pSuperTable ) return NULL; } -void hb_gtIsGtRef( void ) +void hb_gtIsGtRef( void * hGT ) { - PHB_GT pGT = ( PHB_GT ) hb_stackGetGT(); + PHB_GT pGT = ( PHB_GT ) hGT; if( pGT ) HB_GTSELF_MARK( pGT ); diff --git a/harbour/src/vm/estack.c b/harbour/src/vm/estack.c index 732f69f6a5..4133292f05 100644 --- a/harbour/src/vm/estack.c +++ b/harbour/src/vm/estack.c @@ -1296,4 +1296,6 @@ void hb_stackIsStackRef( void * pStackId, PHB_TSD_FUNC pCleanFunc ) if( pCleanFunc ) hb_stackIsTsdRef( pStack, pCleanFunc ); + + hb_gtIsGtRef( pStack->hGT ); } diff --git a/harbour/src/vm/garbage.c b/harbour/src/vm/garbage.c index 4d7c4d1bb5..622784fa8c 100644 --- a/harbour/src/vm/garbage.c +++ b/harbour/src/vm/garbage.c @@ -646,7 +646,6 @@ void hb_gcCollectAll( BOOL fForce ) hb_vmIsStackRef(); hb_vmIsStaticRef(); hb_clsIsClassRef(); - hb_gtIsGtRef(); /* check list of locked block for blocks referenced from * locked block