diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b16ed6f000..dd0ee66930 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,27 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-10-13 02:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/doc/destruct.txt + * update description for multiple inherited destructors + + * harbour/source/compiler/complex.c + * _HB_CLASS and _HB_MEMBER are not longer reserved words + + * harbour/include/hbclass.ch + * harbour/include/hbexprop.h + * harbour/include/hbexprb.c + * harbour/source/macro/macro.y + * harbour/source/compiler/harbour.y + * formatting and minor code cleanup + + * harbour/source/compiler/hbusage.c + * added missing information about -undef: switch to usage + description + + * harbour/source/compiler/gencc.c + ! fixed bug reported by Teo in code generated for SWITCH statement + 2007-10-10 21:11 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/tests/multifnc/t0.prg * harbour/tests/multifnc/t1.prg diff --git a/harbour/doc/destruct.txt b/harbour/doc/destruct.txt index 0eacd0f4d8..b13064e2ee 100644 --- a/harbour/doc/destruct.txt +++ b/harbour/doc/destruct.txt @@ -105,13 +105,9 @@ overwrite the error object created before destructor. Inheritance ----------- -Destructors can be inherited from the first super class in the -same way as ON ERROR message. Defining destructor in class overwrites -the inherited ones so they will not be executed. -Maybe in some spare time I'll add support for executing all inherited -super destructors. - - +If class has more then one destructor inherited from other classes +then all destructors are executed in reverted order. First current +class destructor (if any) and then super class destructors. Defining destructors in CLASS definition code diff --git a/harbour/include/hbclass.ch b/harbour/include/hbclass.ch index 6d56f961c8..baad5f5620 100644 --- a/harbour/include/hbclass.ch +++ b/harbour/include/hbclass.ch @@ -157,7 +157,7 @@ /* should we inherit from HBObject class by default ? */ #ifdef HB_CLS_NOTOBJECT - #xtranslate __HB_CLS_PAR([]) => { [] } + #xtranslate __HB_CLS_PAR([]) => { } #else #xtranslate __HB_CLS_PAR([]) => iif( <.cls.>, { }, { @HBObject() } ) #endif @@ -204,7 +204,7 @@ DECLARE HBClass ; * bindings it casts object to class in which current method were defined. */ #translate @:([]) => ; - ::realclass:([]) + ::realclass:([ ]) /* Indirect super casting translation */ #xtranslate :Super( ): => :: @@ -216,11 +216,11 @@ DECLARE HBClass ; #xtranslate __HB_CLS_ASSTRING( ) => <(FuncName)> #xtranslate __HB_CLS_ASSTRING( ([]) ) => <(FuncName)> #xtranslate __HB_CLS_ASFUNC( ) => () -#xtranslate __HB_CLS_ASFUNC( ([]) ) => ([]) +#xtranslate __HB_CLS_ASFUNC( ([]) ) => ([ ]) #xtranslate __HB_CLS_ASID( ) => #xtranslate __HB_CLS_ASID( ([]) ) => #xtranslate __HB_CLS_ASARGS( ) => -#xtranslate __HB_CLS_ASARGS( ([]) ) => [] +#xtranslate __HB_CLS_ASARGS( ([]) ) => [ ] #xtranslate __HB_CLS_ASARGSOPT( ) => #xtranslate __HB_CLS_ASARGSOPT( ([]) ) => [, ] #xtranslate __HB_CLS_ISVAR( ) => __HB_CLS_VARERR() @@ -375,7 +375,7 @@ DECLARE HBClass ; MESSAGE [ AS ] BLOCK {|Self __HB_CLS_ASARGSOPT() [,]| __HB_CLS_SYMBOL_UNUSED(Self), } #xcommand MESSAGE [ AS ] [LOCAL ] INLINE [] [] [] [