* source/rtl/seconds.c
* changed HB_CLOKS2SECS to make it return a double (like Seconds()) this way
profiler is able to show not only seconds spent inside a function but even
tenths and hundredths.
* source/rtl/profiler.prg
+ Added HB_Profile::ignoreSymbol().
* Changed HB_Profile::gather() to use HB_Profile::ignoreSymbol() to
decide if a symbol should be ignored. This will let developers
modify what is and isn't ignored by subclassing HB_Profile and
implementing their own version of HB_Profile::ignoreSymbol().
* source/rtl/tbrowse.prg
+ activated scoping
* include/hbapierr.h
include/hbapiitm.h
include/hbvm.h
source/rtl/errorapi.c
source/vm/hvm.c
source/vm/itemapi.c
! fixed va_start() use or, better, changed it to be compatible with OS/2 EMX GCC
compiler which REQUIRES that va_start() calls use a type which cannot be promoted
to something bigger. That is, this call is correct:
va_start(valist, ulUnsignedLongType)
while this one is not:
va_start(valist, usUnsignedShortType)
Using a type which can be promoted to a bigger one leads to memory corruption.
I think this requirement could exist even on other ANSI C compilers.
! Removed workaround inside hb_itemDo() and hb_itemDoC() to prevent this corruption.
* source/rtl/profiler.prg
- Removed <lOnlyUsed> parameter
+ Added <cFile> parameter.
+ Added <lAll> parameter
+ Added Cunsumed time in seconds
* Replaced MemoWrit() function with more controllable f* functions
+ profiler() returns a array with profiler info
Profiler()
=> Writes NO info to file, returns Array of profiler info.
Array only contains USED functions/classes.
Profiler(,.t.)
=> Writes NO info to file, returns Array of profiler info.
Array only contains ALL functions/classes.
Profiler("profiler.txt")
=> Writes profiler info to <profiler.txt> and returns Array of
profiler info. Array only contains USED functions/classes.
Profiler("profiler.txt", .t.)
=> Writes ALL profiler info to <profiler.txt> and returns Array of
profiler info. Array contains ALL functions/classes.
* source/rtl/profiler.prg
+ Added the <lOnlyUsed> parameter. If profiler is used like
this Profiler(.t.), the profiler.txt will only be filled
with used classes and/or functions.