diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 078f590cd6..f28cfc7743 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,20 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-09-30 11:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/Makefile + + harbour/include/hbvmint.h + + added new header file which works like hbvmopt.h but does not enable + stack macros + + * harbour/contrib/xhb/xhbenum.c + * harbour/contrib/xhb/xhbqself.c + * harbour/contrib/xhb/xhbwith.c + * harbour/contrib/xhb/cstructc.c + * harbour/contrib/hbwin/win_ole.c + ! use hbvmint.h instead of hbvmopt.h to eliminate direct bindings to + HVM stack structure + 2008-09-30 02:07 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * make_vc.mak * config/w32/msvc.cf diff --git a/harbour/contrib/hbwin/win_ole.c b/harbour/contrib/hbwin/win_ole.c index dfdf4cede2..85b138f400 100644 --- a/harbour/contrib/hbwin/win_ole.c +++ b/harbour/contrib/hbwin/win_ole.c @@ -59,7 +59,7 @@ #include -#include "hbvmopt.h" /* TOFIX */ +#include "hbvmint.h" /* TOFIX: clean the code to not access any internal HVM structures */ #include "hbapi.h" #include "hbstack.h" #include "hbapierr.h" diff --git a/harbour/contrib/xhb/cstructc.c b/harbour/contrib/xhb/cstructc.c index 8b5f3588ac..49ef8e11fd 100644 --- a/harbour/contrib/xhb/cstructc.c +++ b/harbour/contrib/xhb/cstructc.c @@ -50,7 +50,7 @@ * */ -#include "hbvmopt.h" +#include "hbvmint.h" /* TOFIX: clean the code to not access any internal HVM structures */ #include "hbapi.h" #include "hbvm.h" #include "hbstack.h" diff --git a/harbour/contrib/xhb/xhbenum.c b/harbour/contrib/xhb/xhbenum.c index e852bc9a6f..c60d20f3ce 100644 --- a/harbour/contrib/xhb/xhbenum.c +++ b/harbour/contrib/xhb/xhbenum.c @@ -50,7 +50,7 @@ * */ -#include "hbvmopt.h" +#include "hbvmint.h" #include "hbapi.h" #include "hbapiitm.h" #include "hbstack.h" diff --git a/harbour/contrib/xhb/xhbqself.c b/harbour/contrib/xhb/xhbqself.c index d47d4dcb1f..6947dd0bd1 100644 --- a/harbour/contrib/xhb/xhbqself.c +++ b/harbour/contrib/xhb/xhbqself.c @@ -50,7 +50,7 @@ * */ -#include "hbvmopt.h" +#include "hbvmint.h" #include "hbapi.h" #include "hbapiitm.h" #include "hbapierr.h" diff --git a/harbour/contrib/xhb/xhbwith.c b/harbour/contrib/xhb/xhbwith.c index 9ed8d75807..43b67e7641 100644 --- a/harbour/contrib/xhb/xhbwith.c +++ b/harbour/contrib/xhb/xhbwith.c @@ -50,7 +50,7 @@ * */ -#include "hbvmopt.h" +#include "hbvmint.h" #include "hbapi.h" #include "hbapiitm.h" #include "hbapierr.h" diff --git a/harbour/include/Makefile b/harbour/include/Makefile index b01fbd72b2..65fb578224 100644 --- a/harbour/include/Makefile +++ b/harbour/include/Makefile @@ -52,6 +52,7 @@ C_HEADERS=\ hbtypes.h \ hbver.h \ hbvm.h \ + hbvmint.h \ hbvmopt.h \ hbvmpub.h \ hbxvm.h \ diff --git a/harbour/include/hbvmint.h b/harbour/include/hbvmint.h new file mode 100644 index 0000000000..bc7df447a4 --- /dev/null +++ b/harbour/include/hbvmint.h @@ -0,0 +1,67 @@ +/* + * $Id$ + */ + +/* + * xHarbour Project source code: + * Header files to force macro inlining for HVM build + * + * Copyright 2008 Przemyslaw Czerpak + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +/* + * This header file enable macro inlining of some functions. + * It should be included before any other hb*.h files. + * !!! Be careful - including this file cause that the final binaries + * can be linked only with exactly the same HVM version for which + * it was compiled and only if exactly the same C compiler switches + * which interacts with alignment are used. [druzus] + */ + +#undef HB_API_MACROS +#undef HB_STACK_MACROS + +#if !defined( _HB_API_INTERNAL_ ) +# define _HB_API_INTERNAL_ +#endif