2007-05-06 16:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/source/vm/classes.c
    * changed __cls_IncData() to return index to newly allocated instance
      item and __cls_DecData() to return number of local (not inherited)
      instance items
This commit is contained in:
Przemyslaw Czerpak
2007-05-06 14:16:19 +00:00
parent 792dfee8c7
commit 0433f879a4
2 changed files with 15 additions and 10 deletions

View File

@@ -8,6 +8,12 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org> 2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/ */
2007-05-06 16:15 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/classes.c
* changed __cls_IncData() to return index to newly allocated instance
item and __cls_DecData() to return number of local (not inherited)
instance items
2007-05-06 11:42 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) 2007-05-06 11:42 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/source/rtl/hbrandom.c * harbour/source/rtl/hbrandom.c
! HB_RANDOMSEED() fixed to correctly handle passed parameter. ! HB_RANDOMSEED() fixed to correctly handle passed parameter.

View File

@@ -3235,12 +3235,12 @@ HB_FUNC( __CLS_DECDATA )
{ {
USHORT uiClass = ( USHORT ) hb_parni( 1 ); USHORT uiClass = ( USHORT ) hb_parni( 1 );
if( uiClass && uiClass <= s_uiClasses && s_pClasses[ uiClass ].uiDatas ) if( uiClass && uiClass <= s_uiClasses &&
s_pClasses[ uiClass ].uiDatas > s_pClasses[ uiClass ].uiDataFirst )
{ {
if( s_pClasses[ uiClass ].fLocked ) if( !s_pClasses[ uiClass ].fLocked )
hb_retni( s_pClasses[ uiClass ].uiDatas ); s_pClasses[ uiClass ].uiDatas--;
else hb_retni( s_pClasses[ uiClass ].uiDatas - s_pClasses[ uiClass ].uiDataFirst );
hb_retni( --s_pClasses[ uiClass ].uiDatas );
} }
else else
hb_retni( 0 ); hb_retni( 0 );
@@ -3248,7 +3248,7 @@ HB_FUNC( __CLS_DECDATA )
/* /*
* <nSeq> = __cls_IncData( <hClass> ) * <nSeq> = __cls_IncData( <hClass> )
* Increase number of datas and return new value * Increase number of datas and return offset to new value
*/ */
HB_FUNC( __CLS_INCDATA ) HB_FUNC( __CLS_INCDATA )
{ {
@@ -3256,10 +3256,9 @@ HB_FUNC( __CLS_INCDATA )
if( uiClass && uiClass <= s_uiClasses ) if( uiClass && uiClass <= s_uiClasses )
{ {
if( s_pClasses[ uiClass ].fLocked ) if( !s_pClasses[ uiClass ].fLocked )
hb_retni( s_pClasses[ uiClass ].uiDatas ); s_pClasses[ uiClass ].uiDatas++;
else hb_retni( s_pClasses[ uiClass ].uiDatas - s_pClasses[ uiClass ].uiDataFirst );
hb_retni( ++s_pClasses[ uiClass ].uiDatas );
} }
else else
hb_retni( 0 ); hb_retni( 0 );