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

vszak...@users.sourceforge.net 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
Harbour@harbour-project.org
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
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to