Thanks Viktor,
Override new/delete operator not work when active HB_FM_STATISTICS because fm.c
is not compiled in mode c++.
My idea about fm.cpp was to be incorporated the file in the compilation of the
application user pending further comments, views.
But of course, to incorporate in Harbour the easiest way is.-
Incorporate a new file in source/vm fmp.cpp (attached).
Change the file source/vm/Makefile (attached) .-
...
CPP_SOURCES=\
fmp.cpp \
...
Now you can build Harbour with HB_FM_STATISTICS, I've only tested with MinGW.
IMHO I think it's very interesting result of this with static compilation of
hbqt.
I did not tested but I think it could work to know what classes deleted and are
not deleted in hbqt.
--
Xavi
[email protected] escribió:
Revision: 11470
http://harbour-project.svn.sourceforge.net/harbour-project/?rev=11470&view=rev
Author: vszakats
Date: 2009-06-21 18:56:11 +0000 (Sun, 21 Jun 2009)
Log Message:
-----------
2009-06-21 20:54 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
+ Added iccia64 build example.
* source/vm/fm.c
+ Added C++ new/delete operator override to hb_xgrab()/hb_xfree().
Thanks to Xavi.
Please make any required correction, I didn't do tests with it.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/icc compiler. (untested)
; Tested win/icc support (static exe, shared exe, lib, dll).
It worked, except that in shared mode it will display this,
when the MinGW built .dll is used (instead of its own):
Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'
Modified Paths:
--------------
trunk/harbour/ChangeLog
trunk/harbour/INSTALL
trunk/harbour/source/vm/fm.c
trunk/harbour/utils/hbmk2/hbmk2.prg
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour
#include "hbapi.h"
#ifdef HB_FM_STATISTICS
void* operator new(size_t nSize)
{
return hb_xgrab(nSize);
}
void operator delete(void* p)
{
hb_xfree(p);
}
#endif
#
# $Id: Makefile 11347 2009-06-14 12:40:11Z druzus $
#
ROOT = ../../
ifeq ($(HB_HVM_ALL),)
HB_HVM_ALL = yes
ifeq ($(HB_COMPILER),watcom)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),bcc)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),pocc)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),pocc64)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),poccarm)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),xcc)
HB_HVM_ALL = no
endif
ifeq ($(HB_COMPILER),dmc)
HB_HVM_ALL = no
endif
export HB_HVM_ALL
endif
DIRS=
ifeq ($(HB_ARCHITECTURE),win)
ifeq ($(HB_COMPILER),mingw)
C_MAIN = mainwin.c
else
C_MAIN = mainstd.c mainwin.c
endif
DIRS = mainstd mainwin maindllh maindllp
else
ifeq ($(HB_ARCHITECTURE),wce)
C_MAIN = mainwin.c
DIRS = mainstd mainwin maindllh maindllp
else
ifeq ($(HB_ARCHITECTURE),os2)
C_MAIN = mainstd.c
else
C_MAIN = main.c
endif
endif
endif
ifeq ($(HB_HVM_ALL),yes)
C_SOURCES=\
hvmall.c \
else
C_SOURCES=\
hvm.c \
arrays.c \
classes.c \
dynsym.c \
codebloc.c \
estack.c \
extend.c \
fm.c \
garbage.c \
hashes.c \
itemapi.c \
macro.c \
memvars.c \
set.c \
thread.c \
endif
C_SOURCES+=\
arrayshb.c \
asort.c \
break.c \
cmdarg.c \
debug.c \
dynlibhb.c \
eval.c \
evalhb.c \
extrap.c \
hashfunc.c \
initexit.c \
initsymb.c \
memvclip.c \
pcount.c \
pvalue.c \
proc.c \
runner.c \
vm.c \
$(C_MAIN) \
CPP_SOURCES=\
fmp.cpp \
PRG_SOURCES=\
harbinit.prg \
LIBNAME=hbvm
HB_USER_CFLAGS:=$(subst -DHB_MT_VM,,$(HB_USER_CFLAGS))
ifneq ($(HB_ARCHITECTURE),dos)
ifneq ($(HB_MT),no)
DIRS+= vmmt
endif
endif
include $(TOP)$(ROOT)config/lib.cf
ifneq ($(DIRS),)
include $(TOP)$(ROOT)config/dir.cf
endif
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour