From e10d60c65c253c12bb924abc1754e4cf486d15c1 Mon Sep 17 00:00:00 2001 From: Maurilio Longo Date: Fri, 27 Nov 2009 15:07:19 +0000 Subject: [PATCH] 2009-11-27 16:05 UTC+0100 Maurilio Longo (maurilio.longo@libero.it) src/vm/fm.c - commented out section for OS/2 critical section usage src/vm/dlmalloc.c * always use dlmalloc.c under OS/2. --- harbour/ChangeLog | 20 +++++++++++++------- harbour/src/vm/dlmalloc.c | 17 +++++++++-------- harbour/src/vm/fm.c | 4 ++-- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 81c863ca3a..f383aa0504 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,12 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-11-27 16:05 UTC+0100 Maurilio Longo (maurilio.longo@libero.it) + src/vm/fm.c + - commented out section for OS/2 critical section usage + src/vm/dlmalloc.c + * always use dlmalloc.c under OS/2. + 2009-11-27 02:58 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + contrib/hbide/hbide.ch + Added new header to manage hbide constants, expected to grow fast. @@ -28,19 +34,19 @@ option. * contrib/hbide/hbide.prg - + Started managing HBIDE properties via "hbide.ini". + + Started managing HBIDE properties via "hbide.ini". The order of loading hbide.ini file is : - 1. Supplied as first parameter to hbide.exe ( with fully qualified path ), then + 1. Supplied as first parameter to hbide.exe ( with fully qualified path ), then 2. The start-in folder from where hbide.exe is executed, last 3. The folder where hbide.exe is resident as returned by hb_DirBase(). If hbide.ini is not located as above, new file is created on exit. - Hbide.ini holds the various elements belonging to IDE operations and + Hbide.ini holds the various elements belonging to IDE operations and is expedted to grow in contents with further development. Right now it may look-like as: - + hbide.ini ========= - + [HBIDE] MainWindowGeometry = 135,36,1099,682, @@ -65,8 +71,8 @@ Next invocation of ide will retain the location and size of the windows, files opened, last tab in focus, state of and per visibility. There are a lot of notes on my drawing-board to implement. - Just for now please report back your opinions. - + Just for now please report back your opinions. + 2009-11-27 09:25 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/hbqt/detect.mk diff --git a/harbour/src/vm/dlmalloc.c b/harbour/src/vm/dlmalloc.c index 7774cd1afd..94ec87faa0 100644 --- a/harbour/src/vm/dlmalloc.c +++ b/harbour/src/vm/dlmalloc.c @@ -363,9 +363,9 @@ MALLINFO_FIELD_TYPE default: size_t size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set REALLOC_ZERO_BYTES_FREES default: not defined - This should be set if a call to realloc with zero bytes should - be the same as a call to free. Some people think it should. Otherwise, - since this malloc returns a unique pointer for malloc(0), so does + This should be set if a call to realloc with zero bytes should + be the same as a call to free. Some people think it should. Otherwise, + since this malloc returns a unique pointer for malloc(0), so does realloc(p, 0). LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H @@ -1465,7 +1465,6 @@ static int win32munmap(void* ptr, size_t size) { #endif /* HB_SPINLOCK_T */ #ifdef HB_SPINLOCK_USE - static int spin_acquire_lock( HB_SPINLOCK_T *l ) { HB_SPINLOCK_ACQUIRE( l ); @@ -1478,6 +1477,7 @@ static int spin_acquire_lock( HB_SPINLOCK_T *l ) #define RELEASE_LOCK(l) HB_SPINLOCK_RELEASE(l) #define MLOCK_INIT HB_SPINLOCK_INIT +/* #elif defined( HB_OS_OS2 ) #define MLOCK_T HB_RAWCRITICAL_T @@ -1485,6 +1485,7 @@ static int spin_acquire_lock( HB_SPINLOCK_T *l ) #define ACQUIRE_LOCK(l) HB_CRITICAL_LOCK(*(l)) #define RELEASE_LOCK(l) HB_CRITICAL_UNLOCK(*(l)) #define MLOCK_INIT { 0 } +*/ #elif !defined( WIN32 ) @@ -3551,7 +3552,7 @@ static void* sys_alloc(mstate m, size_t nb) { m->seg.sflags = mmap_flag; m->magic = mparams.magic; init_bins(m); - if (is_global(m)) + if (is_global(m)) init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); else { /* Offset top by embedded malloc_state */ @@ -3702,7 +3703,7 @@ static int sys_trim(mstate m, size_t pad) { } /* Unmap any unused mmapped segments */ - if (HAVE_MMAP) + if (HAVE_MMAP) released += release_unused_segments(m); /* On failure, disable autotrim to avoid repeated failed future calls */ @@ -3910,7 +3911,7 @@ static void* internal_memalign(mstate m, size_t alignment, size_t bytes) { while (a < alignment) a <<= 1; alignment = a; } - + if (bytes >= MAX_REQUEST - alignment) { if (m != 0) { /* Test isn't needed but avoids compiler warning */ MALLOC_FAILURE_ACTION; @@ -5156,5 +5157,5 @@ History: Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) * Based loosely on libg++-1.2X malloc. (It retains some of the overall structure of old version, but most details differ.) - + */ diff --git a/harbour/src/vm/fm.c b/harbour/src/vm/fm.c index 443039a960..e05278bd04 100644 --- a/harbour/src/vm/fm.c +++ b/harbour/src/vm/fm.c @@ -119,8 +119,7 @@ # undef HB_FM_WIN_ALLOC #elif !defined( HB_FM_DL_ALLOC ) && !defined( HB_FM_WIN_ALLOC ) # if defined( _MSC_VER ) || defined( __BORLANDC__ ) || defined( __MINGW32__ ) || \ - ( defined( __WATCOMC__ ) && \ - ( defined( HB_OS_WIN ) || defined( HB_OS_OS2 ) ) ) || \ + ( defined( __WATCOMC__ ) && defined( HB_OS_WIN ) ) || defined( HB_OS_OS2 ) || \ ( defined( HB_FM_DLMT_ALLOC ) && defined( HB_MT_VM ) ) # define HB_FM_DL_ALLOC # else @@ -381,6 +380,7 @@ typedef struct static mspace s_gm = NULL; static HB_MSPACE s_mspool[ HB_MSPACE_COUNT ]; + static mspace hb_mspace( void ) { PHB_MSPACE pm = ( PHB_MSPACE ) hb_stackAllocator();