diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7f08f53278..6d56406908 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,16 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ + hb_stack.pPos <= hb_stack.pBase + The old condition was generating usable error message only in the + startup function. In deeply called functions it was only waste of + CPU time on one of the most often call functions. Before it was + activated internal stack structures were corrupted. + If we were leaving for many years without really working stack + underflow protection then maybe we should think about disabling + it at when HB_STACK_MACROS are used and keep it only in real + stack functions for HVM developers. Single protection in + hb_stackOldFrame() I've just added is enough for basic C code validation. I created the second version of stack macros without it in hbstack.h but I would like to hear other developers opinion. diff --git a/harbour/include/hbclass.ch b/harbour/include/hbclass.ch index 186d5bd053..d6b491947d 100644 --- a/harbour/include/hbclass.ch +++ b/harbour/include/hbclass.ch @@ -473,9 +473,11 @@ DECLARE HBClass ; _HB_MEMBER {[AS ] } ;; s_oClass:AddMultiData( <(type)>, , __HB_CLS_SCOPE( <.export.>, <.protect.>, <.hidde.> ) + iif( <.ro.>, HB_OO_CLSTP_READONLY, 0 ) + iif( <.persistent.>, HB_OO_CLSTP_PERSIST, 0 ), {<(DataNames)>}, __HB_CLS_NOINI ) + /* Warning! For backward compatibility this CLASSDATA ignores the + SHARED clause and always create shared class variables */ #xcommand CLASSDATA [ AS ] [ INIT ] [] [] [