2010-03-13 01:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
% declare hb_stack TLS pointer in MT HVM as static when HVM is compiled
with HB_HVM_ALL=yes
* harbour/src/compiler/hbcomp.c
! added protection against multiple freeing the same expression on
some errors in compiled code. It's necessary after removing reference
counters which made such protection indirectly. It fixed bug reported
by Teo.
* harbour/include/hbsetup.h
! check GCC version for hot and cold function attribute macros
This commit is contained in:
@@ -17,6 +17,21 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-13 01:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/include/hbstack.h
|
||||
* harbour/src/vm/estack.c
|
||||
% declare hb_stack TLS pointer in MT HVM as static when HVM is compiled
|
||||
with HB_HVM_ALL=yes
|
||||
|
||||
* harbour/src/compiler/hbcomp.c
|
||||
! added protection against multiple freeing the same expression on
|
||||
some errors in compiled code. It's necessary after removing reference
|
||||
counters which made such protection indirectly. It fixed bug reported
|
||||
by Teo.
|
||||
|
||||
* harbour/include/hbsetup.h
|
||||
! check GCC version for hot and cold function attribute macros
|
||||
|
||||
2010-03-12 14:32 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbqt/doc/en/class_qapplication.txt
|
||||
* contrib/hbqt/qtgui/QApplication.cpp
|
||||
|
||||
@@ -468,10 +468,6 @@
|
||||
__attribute__ (( format (printf, _nStr, _nParam)))
|
||||
#define HB_MALLOC_ATTR \
|
||||
__attribute__ (( malloc ))
|
||||
#define HB_HOT_ATTR \
|
||||
__attribute__ (( hot ))
|
||||
#define HB_COLD_ATTR \
|
||||
__attribute__ (( cold ))
|
||||
#define HB_PURE_ATTR \
|
||||
__attribute__ (( pure ))
|
||||
#define HB_CONST_ATTR \
|
||||
@@ -494,8 +490,14 @@
|
||||
!defined( __ICC ) && !defined( __OPENCC__ )
|
||||
#define HB_ALLOC_SIZE_ATTR( _nParam ) \
|
||||
__attribute__ (( alloc_size (_nParam)))
|
||||
#define HB_HOT_ATTR \
|
||||
__attribute__ (( hot ))
|
||||
#define HB_COLD_ATTR \
|
||||
__attribute__ (( cold ))
|
||||
# else
|
||||
#define HB_ALLOC_SIZE_ATTR( _nParam )
|
||||
#define HB_HOT_ATTR
|
||||
#define HB_COLD_ATTR
|
||||
# endif
|
||||
#define HB_RESTRICT __restrict
|
||||
|
||||
|
||||
@@ -194,10 +194,18 @@ typedef struct
|
||||
#if defined( HB_STACK_MACROS )
|
||||
# if defined( HB_MT_VM )
|
||||
# if defined( HB_USE_TLS )
|
||||
# if defined( __BORLANDC__ )
|
||||
extern PHB_STACK HB_TLS_ATTR hb_stack_ptr;
|
||||
# if defined( HB_STACK_LOCAL_MACROS )
|
||||
# if defined( __BORLANDC__ )
|
||||
static PHB_STACK HB_TLS_ATTR hb_stack_ptr;
|
||||
# else
|
||||
static HB_TLS_ATTR PHB_STACK hb_stack_ptr;
|
||||
# endif
|
||||
# else
|
||||
extern HB_TLS_ATTR PHB_STACK hb_stack_ptr;
|
||||
# if defined( __BORLANDC__ )
|
||||
extern PHB_STACK HB_TLS_ATTR hb_stack_ptr;
|
||||
# else
|
||||
extern HB_TLS_ATTR PHB_STACK hb_stack_ptr;
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
extern HB_TLS_KEY hb_stack_key;
|
||||
|
||||
@@ -88,6 +88,8 @@ static void hb_compExprDealloc( HB_COMP_DECL, HB_EXPR_PTR pExpr )
|
||||
}
|
||||
hb_xfree( pExpItm );
|
||||
}
|
||||
else
|
||||
pExpr->ExprType = HB_ET_NONE;
|
||||
}
|
||||
|
||||
static HB_EXPR_PTR hb_compExprNew( HB_COMP_DECL, HB_EXPRTYPE iType )
|
||||
|
||||
@@ -87,14 +87,12 @@
|
||||
# ifdef HB_USE_TLS
|
||||
|
||||
/* compiler has native support for TLS */
|
||||
# if defined( HB_STACK_MACROS )
|
||||
# if defined( HB_STACK_MACROS ) && !defined( HB_STACK_LOCAL_MACROS )
|
||||
# if defined( __BORLANDC__ )
|
||||
PHB_STACK HB_TLS_ATTR hb_stack_ptr = NULL;
|
||||
# else
|
||||
HB_TLS_ATTR PHB_STACK hb_stack_ptr = NULL;
|
||||
# endif
|
||||
# else
|
||||
static HB_TLS_ATTR PHB_STACK hb_stack_ptr = NULL;
|
||||
# endif
|
||||
|
||||
# define hb_stack_alloc() do { hb_stack_ptr = ( PHB_STACK ) \
|
||||
@@ -136,8 +134,6 @@
|
||||
/* no MT mode */
|
||||
# if defined( HB_STACK_MACROS ) && !defined( HB_STACK_LOCAL_MACROS )
|
||||
HB_STACK hb_stack;
|
||||
# elif !defined( __cplusplus )
|
||||
static HB_STACK hb_stack;
|
||||
# endif
|
||||
|
||||
# define hb_stack_alloc()
|
||||
|
||||
Reference in New Issue
Block a user