From a8d6337d7c5e00128177bd17d01cf97d658387d0 Mon Sep 17 00:00:00 2001 From: Jean-Francois Lefebvre Date: Thu, 23 Nov 2000 21:17:23 +0000 Subject: [PATCH] 2000-11-23 23:11 UTC+0100 jfl (mafact) --- harbour/ChangeLog | 5 +++++ harbour/source/vm/classes.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 67aee76d6b..dadaaf041b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,8 @@ +2000-11-23 23:11 UTC+0100 jfl (mafact) + * source/vm/classes.c + * corrected hb___msgClsParent( void ) + where some pointer was badly deallocated + 2000-11-23 11:11 UTC+0800 Ron Pinkas * source/rtl/idle.c ! Added Reset Logic to HB_IDLESTATE() diff --git a/harbour/source/vm/classes.c b/harbour/source/vm/classes.c index 217ade85b2..bb35b2608f 100644 --- a/harbour/source/vm/classes.c +++ b/harbour/source/vm/classes.c @@ -1867,6 +1867,7 @@ static HARBOUR hb___msgClsParent( void ) PCLASS pClass; char * szParentName = 0; USHORT uiClass, i; + BOOL lClass=FALSE; if( HB_IS_BYREF( hb_stack.pBase + 1 ) ) /* Variables by reference */ pItemRef = hb_itemUnRef( hb_stack.pBase + 1 ); @@ -1882,14 +1883,18 @@ static HARBOUR hb___msgClsParent( void ) if( HB_IS_OBJECT( pItemParam ) ) szParentName = hb_objGetClsName( pItemParam ); else if( HB_IS_STRING( pItemParam ) ) + { szParentName = hb_itemGetC( pItemParam ); + lClass=TRUE; + } for( i = 0; szParentName[ i ] != '\0'; i++ ) szParentName[ i ] = ( char ) toupper( szParentName[ i ] ); hb_retl( hb_clsIsParent( pClass, szParentName ) ); - hb_itemFreeC( szParentName ); + if (lClass) + hb_itemFreeC( szParentName ); }