2009-02-24 13:49 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/include/hbsetup.h
    * minor modifications in macros
    * disabled some GCC function attributes when ICC is used

  * harbour/source/pp/ppcore.c
    * casting

  * harbour/source/vm/fm.c
    * destroy dlmalloc mspace in hb_xexit() when USE_DL_PREFIX is used
      otherwise call malloc_trim(0) to at least reduce allocated memory
This commit is contained in:
Przemyslaw Czerpak
2009-02-24 12:43:57 +00:00
parent d12ccc6bad
commit 87cfa641b7
4 changed files with 58 additions and 9 deletions

View File

@@ -8,6 +8,18 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-02-24 13:49 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbsetup.h
* minor modifications in macros
* disabled some GCC function attributes when ICC is used
* harbour/source/pp/ppcore.c
* casting
* harbour/source/vm/fm.c
* destroy dlmalloc mspace in hb_xexit() when USE_DL_PREFIX is used
otherwise call malloc_trim(0) to at least reduce allocated memory
2009-02-24 13:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* config/win/msvc.cf
* config/win/msvc64.cf

View File

@@ -208,8 +208,9 @@
#define HB_OS_ALLFILE_MASK "*"
#undef HB_OS_DRIVE_DELIM_CHR
#undef HB_OS_HAS_DRIVE_LETTER
#define HB_OS_OPT_DELIM_LIST "-"
#define HB_OS_EOL_LEN 1
#define HB_OS_OPT_DELIM_LIST "-"
#define HB_ISOPTSEP( c ) ( ( c ) == '-' )
#else
/* we are assuming here the DOS compatible OS */
#define HB_OS_PATH_LIST_SEP_CHR ';'
@@ -219,16 +220,15 @@
#define HB_OS_ALLFILE_MASK "*.*"
#define HB_OS_DRIVE_DELIM_CHR ':'
#define HB_OS_HAS_DRIVE_LETTER
#define HB_OS_OPT_DELIM_LIST "/-"
#define HB_OS_EOL_LEN 2 /* # of bytes in End of Line marker */
#define HB_OS_OPT_DELIM_LIST "/-"
#define HB_ISOPTSEP( c ) ( ( c ) == '-' || ( c ) == '/' )
#endif
#ifndef _POSIX_PATH_MAX
#define _POSIX_PATH_MAX 255
#endif
#define HB_ISOPTSEP( c ) ( strchr( HB_OS_OPT_DELIM_LIST, ( c ) ) != NULL )
/* NOTE:
Compiler _MSC_VER value
-------- --------------
@@ -407,13 +407,15 @@
# else
#define HB_NORETURN_ATTR
# endif
# if ( ( __GNUC__ > 4 ) || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 1 ) )
# if ( ( __GNUC__ > 4 ) || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 1 ) ) && \
!defined( __ICC )
#define HB_FLATTEN_ATTR \
__attribute__ (( flatten ))
# else
#define HB_FLATTEN_ATTR
# endif
# if ( ( __GNUC__ > 4 ) || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 3 ) )
# if ( ( __GNUC__ > 4 ) || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 3 ) ) && \
!defined( __ICC )
#define HB_ALLOC_SIZE_ATTR( _nParam ) \
__attribute__ (( alloc_size (_nParam)))
# else

View File

@@ -326,12 +326,12 @@ static void hb_membufRemove( PHB_MEM_BUFFER pBuffer, ULONG ulLeft )
}
#endif
static ULONG hb_membufLen( PHB_MEM_BUFFER pBuffer )
static ULONG hb_membufLen( const PHB_MEM_BUFFER pBuffer )
{
return pBuffer->ulLen;
}
static char * hb_membufPtr( PHB_MEM_BUFFER pBuffer )
static char * hb_membufPtr( const PHB_MEM_BUFFER pBuffer )
{
return pBuffer->pBufPtr;
}

View File

@@ -134,7 +134,7 @@
# pragma warn -rch
# elif defined( HB_OS_WIN_CE ) && defined( __POCC__ )
# define ABORT TerminateProcess( GetCurrentProcess(), 0 )
# elif defined( _MSC_VER )
# elif defined( _MSC_VER ) && !defined( USE_DL_PREFIX )
# define USE_DL_PREFIX
# endif
# include "dlmalloc.c"
@@ -793,6 +793,25 @@ void hb_xinit( void ) /* Initialize fixed memory subsystem */
#endif /* HB_FM_NEED_INIT */
}
#if defined( HB_FM_DL_ALLOC ) && defined( USE_DL_PREFIX )
static void dlmalloc_destroy( void )
{
if( ok_magic(gm) )
{
msegmentptr sp = &gm->seg;
while(sp != 0 )
{
char* base = sp->base;
size_t size = sp->size;
flag_t flag = sp->sflags;
sp = sp->next;
if( (flag & IS_MMAPPED_BIT) && !(flag & EXTERN_BIT) )
CALL_MUNMAP(base, size);
}
}
}
#endif
/* Returns pointer to string containing printable version
of pMem memory block */
@@ -908,6 +927,14 @@ void hb_xexit( void ) /* Deinitialize fixed memory subsystem */
fclose( hLog );
}
}
#if defined( HB_FM_DL_ALLOC )
# if defined( USE_DL_PREFIX )
dlmalloc_destroy();
# else
malloc_trim( 0 );
# endif
#endif
}
#else
@@ -915,6 +942,14 @@ void hb_xexit( void ) /* Deinitialize fixed memory subsystem */
void hb_xexit( void ) /* Deinitialize fixed memory subsystem */
{
HB_TRACE(HB_TR_DEBUG, ("hb_xexit()"));
#if defined( HB_FM_DL_ALLOC )
# if defined( USE_DL_PREFIX )
dlmalloc_destroy();
# else
malloc_trim( 0 );
# endif
#endif
}
#endif