2004-04-24 15:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
* changed ULONG hb_objHasMsg into BOOL hb_objHasMsg
* include/hbvmpub.h
* added
union {
PHB_FUNC pFunPtr;
int iStaticsBase;
} value
to HB_SYMB structure to remove pointer/int conversion
* source/compiler/genc.c
* source/compiler/gencli.c
* source/rdd/dbf1.c
* source/rdd/delim1.c
* source/rdd/sdf1.c
* source/rdd/dbfcdx/dbfcdx1.c
* source/rdd/dbfdbt/dbfdbt1.c
* source/rdd/dbffpt/dbffpt1.c
* source/rdd/dbfntx/dbfntx1.c
* source/rtl/symbol.prg
* source/vm/classes.c
* source/vm/dynsym.c
* source/vm/hvm.c
* source/vm/initsymb.c
* source/vm/macro.c
* source/vm/runner.c
* changed to use new HB_SYMB structure
* removed all pointer/long castings (except runner.c)
This commit is contained in:
@@ -8,6 +8,39 @@
|
||||
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2004-04-24 15:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
|
||||
|
||||
* include/hbapi.h
|
||||
* changed ULONG hb_objHasMsg into BOOL hb_objHasMsg
|
||||
|
||||
* include/hbvmpub.h
|
||||
* added
|
||||
union {
|
||||
PHB_FUNC pFunPtr;
|
||||
int iStaticsBase;
|
||||
} value
|
||||
to HB_SYMB structure to remove pointer/int conversion
|
||||
|
||||
* source/compiler/genc.c
|
||||
* source/compiler/gencli.c
|
||||
* source/rdd/dbf1.c
|
||||
* source/rdd/delim1.c
|
||||
* source/rdd/sdf1.c
|
||||
* source/rdd/dbfcdx/dbfcdx1.c
|
||||
* source/rdd/dbfdbt/dbfdbt1.c
|
||||
* source/rdd/dbffpt/dbffpt1.c
|
||||
* source/rdd/dbfntx/dbfntx1.c
|
||||
* source/rtl/symbol.prg
|
||||
* source/vm/classes.c
|
||||
* source/vm/dynsym.c
|
||||
* source/vm/hvm.c
|
||||
* source/vm/initsymb.c
|
||||
* source/vm/macro.c
|
||||
* source/vm/runner.c
|
||||
* changed to use new HB_SYMB structure
|
||||
* removed all pointer/long castings (except runner.c)
|
||||
|
||||
|
||||
2004-04-22 18:00 UTC-0500 David G. Holm <dholm@jsd-llc.com>
|
||||
* source/vm/itemapi.c
|
||||
! #if check for for RSXNT and EMX must be ahead of GNUC test
|
||||
|
||||
@@ -453,7 +453,7 @@ extern BOOL hb_clsIsParent( USHORT uiClass, char * szParentName ); /* is a c
|
||||
extern char * hb_objGetClsName( PHB_ITEM pObject ); /* retrieves an object class name */
|
||||
extern char * hb_objGetRealClsName( PHB_ITEM pObject, char * szString ); /* retrieves an object class name for a specific message */
|
||||
extern PHB_FUNC hb_objGetMethod( PHB_ITEM pObject, PHB_SYMB pSymMsg ); /* returns the method pointer of a object class */
|
||||
extern ULONG hb_objHasMsg( PHB_ITEM pObject, char * szString ); /* returns TRUE/FALSE whether szString is an existing message for object */
|
||||
extern BOOL hb_objHasMsg( PHB_ITEM pObject, char * szString ); /* returns TRUE/FALSE whether szString is an existing message for object */
|
||||
extern void hb_objSendMsg( PHB_ITEM pObj, char *sMsg, ULONG ulArg, ... );
|
||||
|
||||
/* dynamic symbol table management */
|
||||
|
||||
@@ -70,7 +70,10 @@ typedef struct
|
||||
{
|
||||
char * szName; /* the name of the symbol */
|
||||
HB_SYMBOLSCOPE cScope; /* the scope of the symbol */
|
||||
PHB_FUNC pFunPtr; /* function address for function symbol table entries */
|
||||
union {
|
||||
PHB_FUNC pFunPtr; /* function address for function symbol table entries */
|
||||
int iStaticsBase;
|
||||
} value;
|
||||
struct _HB_DYNS * pDynSym; /* pointer to its dynamic symbol if defined */
|
||||
} HB_SYMB, * PHB_SYMB;
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1000
|
||||
|
||||
@@ -151,7 +151,7 @@ void hb_compGenCCode( PHB_FNAME pFileName ) /* generates the C language ou
|
||||
* we are using these two bits to mark the special function used to
|
||||
* initialize static variables
|
||||
*/
|
||||
fprintf( yyc, "{ \"(_INITSTATICS)\", HB_FS_INIT | HB_FS_EXIT, hb_INITSTATICS, NULL }" ); /* NOTE: hb_ intentionally in lower case */
|
||||
fprintf( yyc, "{ \"(_INITSTATICS)\", HB_FS_INIT | HB_FS_EXIT, {hb_INITSTATICS}, NULL }" ); /* NOTE: hb_ intentionally in lower case */
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -186,11 +186,11 @@ void hb_compGenCCode( PHB_FNAME pFileName ) /* generates the C language ou
|
||||
/* specify the function address if it is a defined function or an
|
||||
external called function */
|
||||
if( hb_compFunctionFind( pSym->szName ) ) /* is it a function defined in this module */
|
||||
fprintf( yyc, ", HB_FUNCNAME( %s ), NULL }", pSym->szName );
|
||||
fprintf( yyc, ", {HB_FUNCNAME( %s )}, NULL }", pSym->szName );
|
||||
else if( hb_compFunCallFind( pSym->szName ) ) /* is it a function called from this module */
|
||||
fprintf( yyc, ", HB_FUNCNAME( %s ), NULL }", pSym->szName );
|
||||
fprintf( yyc, ", {HB_FUNCNAME( %s )}, NULL }", pSym->szName );
|
||||
else
|
||||
fprintf( yyc, ", NULL, NULL }" ); /* memvar */
|
||||
fprintf( yyc, ", {NULL}, NULL }" ); /* memvar */
|
||||
}
|
||||
|
||||
if( pSym != hb_comp_symbols.pLast )
|
||||
|
||||
@@ -165,7 +165,7 @@ void hb_compGenILCode( PHB_FNAME pFileName ) /* generates the IL output */
|
||||
// * we are using these two bits to mark the special function used to
|
||||
// * initialize static variables
|
||||
// */
|
||||
// fprintf( yyc, "{ \"(_INITSTATICS)\", HB_FS_INIT | HB_FS_EXIT, hb_INITSTATICS, NULL }" ); /* NOTE: hb_ intentionally in lower case */
|
||||
// fprintf( yyc, "{ \"(_INITSTATICS)\", HB_FS_INIT | HB_FS_EXIT, {hb_INITSTATICS}, NULL }" ); /* NOTE: hb_ intentionally in lower case */
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
@@ -200,11 +200,11 @@ void hb_compGenILCode( PHB_FNAME pFileName ) /* generates the IL output */
|
||||
// /* specify the function address if it is a defined function or an
|
||||
// external called function */
|
||||
// if( hb_compFunctionFind( pSym->szName ) ) /* is it a function defined in this module */
|
||||
// fprintf( yyc, ", HB_FUNCNAME( %s ), NULL }", pSym->szName );
|
||||
// fprintf( yyc, ", {HB_FUNCNAME( %s )}, NULL }", pSym->szName );
|
||||
// else if( hb_compFunCallFind( pSym->szName ) ) /* is it a function called from this module */
|
||||
// fprintf( yyc, ", HB_FUNCNAME( %s ), NULL }", pSym->szName );
|
||||
// fprintf( yyc, ", {HB_FUNCNAME( %s )}, NULL }", pSym->szName );
|
||||
// else
|
||||
// fprintf( yyc, ", NULL, NULL }" ); /* memvar */
|
||||
// fprintf( yyc, ", {NULL}, NULL }" ); /* memvar */
|
||||
// }
|
||||
//
|
||||
// if( pSym != hb_comp_symbols.pLast )
|
||||
|
||||
@@ -77,8 +77,8 @@ HB_FUNC( DBF_GETFUNCTABLE );
|
||||
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( dbf1__InitSymbols )
|
||||
{ "_DBFC", HB_FS_PUBLIC, HB_FUNCNAME( _DBFC ), NULL },
|
||||
{ "DBF_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DBF_GETFUNCTABLE ), NULL }
|
||||
{ "_DBFC", HB_FS_PUBLIC, {HB_FUNCNAME( _DBFC )}, NULL },
|
||||
{ "DBF_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DBF_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( dbf1__InitSymbols )
|
||||
|
||||
#if defined(HB_STATIC_STARTUP)
|
||||
|
||||
@@ -307,8 +307,8 @@ HB_FUNC( DBFCDX_GETFUNCTABLE )
|
||||
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( dbfcdx1__InitSymbols )
|
||||
{ "_DBFCDX", HB_FS_PUBLIC, HB_FUNCNAME( _DBFCDX ), NULL },
|
||||
{ "DBFCDX_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DBFCDX_GETFUNCTABLE ), NULL }
|
||||
{ "_DBFCDX", HB_FS_PUBLIC, {HB_FUNCNAME( _DBFCDX )}, NULL },
|
||||
{ "DBFCDX_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DBFCDX_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( dbfcdx1__InitSymbols )
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
@@ -245,8 +245,8 @@ HB_FUNC( DBFDBT_GETFUNCTABLE )
|
||||
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( dbfdbt1__InitSymbols )
|
||||
{ "_DBFDBT", HB_FS_PUBLIC, HB_FUNCNAME( _DBFDBT ), NULL },
|
||||
{ "DBFDBT_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DBFDBT_GETFUNCTABLE ), NULL }
|
||||
{ "_DBFDBT", HB_FS_PUBLIC, {HB_FUNCNAME( _DBFDBT )}, NULL },
|
||||
{ "DBFDBT_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DBFDBT_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( dbfdbt1__InitSymbols )
|
||||
|
||||
#if defined(HB_STATIC_STARTUP)
|
||||
|
||||
@@ -247,8 +247,8 @@ HB_FUNC( DBFFPT_GETFUNCTABLE )
|
||||
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( dbffpt1__InitSymbols )
|
||||
{ "_DBFFPT", HB_FS_PUBLIC, HB_FUNCNAME( _DBFFPT ), NULL },
|
||||
{ "DBFFPT_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DBFFPT_GETFUNCTABLE ), NULL }
|
||||
{ "_DBFFPT", HB_FS_PUBLIC, {HB_FUNCNAME( _DBFFPT )}, NULL },
|
||||
{ "DBFFPT_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DBFFPT_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( dbffpt1__InitSymbols )
|
||||
|
||||
#if defined(HB_STATIC_STARTUP)
|
||||
|
||||
@@ -143,8 +143,8 @@ HB_FUNC( DBFNTX_GETFUNCTABLE );
|
||||
#endif
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( dbfntx1__InitSymbols )
|
||||
{ "_DBFNTX", HB_FS_PUBLIC, HB_FUNCNAME( _DBFNTX ), 0 },
|
||||
{ "DBFNTX_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DBFNTX_GETFUNCTABLE) , 0 }
|
||||
{ "_DBFNTX", HB_FS_PUBLIC, {HB_FUNCNAME( _DBFNTX )}, 0 },
|
||||
{ "DBFNTX_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DBFNTX_GETFUNCTABLE)} , 0 }
|
||||
HB_INIT_SYMBOLS_END( dbfntx1__InitSymbols )
|
||||
#if defined(_MSC_VER)
|
||||
#if _MSC_VER >= 1010
|
||||
|
||||
@@ -66,8 +66,8 @@ HB_FUNC( DELIM_GETFUNCTABLE );
|
||||
#define HB_PRG_PCODE_VER HB_PCODE_VER
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( delim1__InitSymbols )
|
||||
{ "_DELIMC", HB_FS_PUBLIC, HB_FUNCNAME( _DELIMC ), NULL },
|
||||
{ "DELIM_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( DELIM_GETFUNCTABLE ), NULL }
|
||||
{ "_DELIMC", HB_FS_PUBLIC, {HB_FUNCNAME( _DELIMC )}, NULL },
|
||||
{ "DELIM_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( DELIM_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( delim1__InitSymbols )
|
||||
|
||||
#if defined(HB_STATIC_STARTUP)
|
||||
|
||||
@@ -66,8 +66,8 @@ HB_FUNC( SDF_GETFUNCTABLE );
|
||||
#define HB_PRG_PCODE_VER HB_PCODE_VER
|
||||
|
||||
HB_INIT_SYMBOLS_BEGIN( sdf1__InitSymbols )
|
||||
{ "_SDFC", HB_FS_PUBLIC, HB_FUNCNAME( _SDFC ), NULL },
|
||||
{ "SDF_GETFUNCTABLE", HB_FS_PUBLIC, HB_FUNCNAME( SDF_GETFUNCTABLE ), NULL }
|
||||
{ "_SDFC", HB_FS_PUBLIC, {HB_FUNCNAME( _SDFC )}, NULL },
|
||||
{ "SDF_GETFUNCTABLE", HB_FS_PUBLIC, {HB_FUNCNAME( SDF_GETFUNCTABLE )}, NULL }
|
||||
HB_INIT_SYMBOLS_END( sdf1__InitSymbols )
|
||||
|
||||
#if defined(HB_STATIC_STARTUP)
|
||||
|
||||
@@ -116,12 +116,12 @@ return .f.
|
||||
|
||||
HB_FUNC( GETSYMBOLPOINTER )
|
||||
{
|
||||
hb_retnl( ( long ) hb_dynsymGet( hb_parc( 1 ) ) );
|
||||
hb_retptr( hb_dynsymGet( hb_parc( 1 ) ) );
|
||||
}
|
||||
|
||||
HB_FUNC( GETSYMBOLNAME )
|
||||
{
|
||||
PHB_DYNS pDynSym = ( PHB_DYNS ) hb_parnl( 1 );
|
||||
PHB_DYNS pDynSym = ( PHB_DYNS ) hb_parptr( 1 );
|
||||
|
||||
hb_retc( ( pDynSym != NULL ? pDynSym->pSymbol->szName : "" ) );
|
||||
}
|
||||
@@ -146,9 +146,9 @@ HB_FUNC( SYMBOL_EXEC )
|
||||
/* we invoke the message with no parameters */
|
||||
hb_vmFunction( 0 );
|
||||
|
||||
pSym = ( PHB_DYNS ) hb_parnl( -1 ); /* we take the returned DATA value from
|
||||
pSym = ( PHB_DYNS ) hb_parptr( -1 ); /* we take the returned DATA value from
|
||||
the HVM hb_stack.Return */
|
||||
if( pSym != NULL && pSym->pSymbol->pFunPtr )
|
||||
if( pSym != NULL && pSym->pSymbol->value.pFunPtr )
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ static void hb_clsRelease( PCLASS );
|
||||
PHB_FUNC hb_objGetMethod( PHB_ITEM, PHB_SYMB );
|
||||
PHB_FUNC hb_objGetMthd( PHB_ITEM pObject, PHB_SYMB pMessage, BOOL lAllowErrFunc );
|
||||
PMETHOD hb_objGetpMethod( PHB_ITEM, PHB_SYMB );
|
||||
ULONG hb_objHasMsg( PHB_ITEM pObject, char * szString );
|
||||
BOOL hb_objHasMsg( PHB_ITEM pObject, char * szString );
|
||||
|
||||
void * hb_mthRequested( void );
|
||||
void hb_mthAddTime( void * pMethod, ULONG ulClockTicks );
|
||||
@@ -955,13 +955,13 @@ PMETHOD hb_objGetpMethod( PHB_ITEM pObject, PHB_SYMB pMessage )
|
||||
|
||||
|
||||
/*
|
||||
* <uPtr> = hb_objHasMsg( <pObject>, <szString> )
|
||||
* <bool> = hb_objHasMsg( <pObject>, <szString> )
|
||||
*
|
||||
* Check whether <szString> is an existing message for object.
|
||||
*
|
||||
* <uPtr> should be read as a boolean
|
||||
*/
|
||||
ULONG hb_objHasMsg( PHB_ITEM pObject, char *szString )
|
||||
BOOL hb_objHasMsg( PHB_ITEM pObject, char *szString )
|
||||
{
|
||||
PHB_DYNS pDynSym = hb_dynsymFindName( szString );
|
||||
|
||||
@@ -969,11 +969,11 @@ ULONG hb_objHasMsg( PHB_ITEM pObject, char *szString )
|
||||
|
||||
if( pDynSym )
|
||||
{
|
||||
return ( ULONG ) hb_objGetMthd( pObject, pDynSym->pSymbol, FALSE );
|
||||
return hb_objGetMthd( pObject, pDynSym->pSymbol, FALSE ) != NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1135,7 +1135,7 @@ HB_FUNC( __CLSADDMSG )
|
||||
{
|
||||
case HB_OO_MSG_METHOD:
|
||||
|
||||
pNewMeth->pFunction = ( PHB_FUNC ) hb_parnl( 3 );
|
||||
pNewMeth->pFunction = ( PHB_FUNC ) hb_parptr( 3 );
|
||||
pNewMeth->uiScope = uiScope;
|
||||
pNewMeth->uiData = 0;
|
||||
break;
|
||||
@@ -1237,7 +1237,7 @@ HB_FUNC( __CLSADDMSG )
|
||||
|
||||
case HB_OO_MSG_ONERROR:
|
||||
|
||||
pClass->pFunError = ( PHB_FUNC ) hb_parnl( 3 );
|
||||
pClass->pFunError = ( PHB_FUNC ) hb_parptr( 3 );
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1748,7 +1748,7 @@ HB_FUNC( __CLSMODMSG )
|
||||
}
|
||||
else /* Modify METHOD */
|
||||
{
|
||||
pClass->pMethods[ uiAt ].pFunction = ( PHB_FUNC ) hb_parnl( 3 );
|
||||
pClass->pMethods[ uiAt ].pFunction = ( PHB_FUNC ) hb_parptr( 3 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ PHB_SYMB HB_EXPORT hb_symbolNew( char * szName ) /* Create a new symbol */
|
||||
pSymbol->szName = ( char * ) hb_xgrab( strlen( szName ) + 1 );
|
||||
pSymbol->cScope = SYM_ALLOCATED; /* to know what symbols to release when exiting the app */
|
||||
strcpy( pSymbol->szName, szName );
|
||||
pSymbol->pFunPtr = NULL;
|
||||
pSymbol->value.pFunPtr = NULL;
|
||||
pSymbol->pDynSym = NULL;
|
||||
|
||||
return pSymbol;
|
||||
@@ -105,9 +105,9 @@ PHB_DYNS HB_EXPORT hb_dynsymNew( PHB_SYMB pSymbol ) /* creates a new dynamic
|
||||
{
|
||||
if( pSymbol->cScope & HB_FS_PUBLIC ) /* only for HB_FS_PUBLIC */
|
||||
{
|
||||
if( ( ! pDynSym->pFunPtr ) && pSymbol->pFunPtr ) /* The DynSym existed */
|
||||
if( ( ! pDynSym->pFunPtr ) && pSymbol->value.pFunPtr ) /* The DynSym existed */
|
||||
{
|
||||
pDynSym->pFunPtr = pSymbol->pFunPtr; /* but had no function ptr assigned */
|
||||
pDynSym->pFunPtr = pSymbol->value.pFunPtr; /* but had no function ptr assigned */
|
||||
pDynSym->pSymbol = pSymbol;
|
||||
pDynSym->ulCalls = 0; /* profiler support */
|
||||
pDynSym->ulTime = 0; /* profiler support */
|
||||
@@ -147,8 +147,8 @@ PHB_DYNS HB_EXPORT hb_dynsymNew( PHB_SYMB pSymbol ) /* creates a new dynamic
|
||||
|
||||
if( pSymbol->cScope & HB_FS_PUBLIC ) /* only for HB_FS_PUBLIC */
|
||||
{
|
||||
if( pDynSym->pFunPtr != pSymbol->pFunPtr ) /* it contains a function pointer */
|
||||
pDynSym->pFunPtr = pSymbol->pFunPtr; /* place the function at DynSym */
|
||||
if( pDynSym->pFunPtr != pSymbol->value.pFunPtr ) /* it contains a function pointer */
|
||||
pDynSym->pFunPtr = pSymbol->value.pFunPtr; /* place the function at DynSym */
|
||||
}
|
||||
pSymbol->pDynSym = pDynSym; /* place a pointer to DynSym */
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ ULONG hb_ulOpcodesTime[ HB_P_LAST_PCODE ]; /* array to profile opcodes consumed
|
||||
|
||||
/* virtual machine state */
|
||||
|
||||
HB_SYMB hb_symEval = { "__EVAL", HB_FS_PUBLIC, hb_vmDoBlock, NULL }; /* symbol to evaluate codeblocks */
|
||||
HB_SYMB hb_symEval = { "__EVAL", HB_FS_PUBLIC, {hb_vmDoBlock}, NULL }; /* symbol to evaluate codeblocks */
|
||||
|
||||
static HB_ITEM s_aStatics; /* Harbour array to hold all application statics variables */
|
||||
static USHORT s_uiStatics; /* Number of statics added after processing hb_vmStatics() */
|
||||
@@ -303,7 +303,7 @@ void hb_vmDoInitRdd( void )
|
||||
for ( i = 0; rddName[i]; i++ )
|
||||
{
|
||||
pDynSym = hb_dynsymFind( rddName[i] );
|
||||
if( pDynSym && pDynSym->pSymbol->pFunPtr )
|
||||
if( pDynSym && pDynSym->pSymbol->value.pFunPtr )
|
||||
{
|
||||
hb_vmPushSymbol( pDynSym->pSymbol );
|
||||
hb_vmPushNil();
|
||||
@@ -380,7 +380,7 @@ void HB_EXPORT hb_vmInit( BOOL bStartMainProc )
|
||||
{
|
||||
PHB_DYNS pDynSym = hb_dynsymFind( "_APPMAIN" );
|
||||
|
||||
if( pDynSym && pDynSym->pSymbol->pFunPtr )
|
||||
if( pDynSym && pDynSym->pSymbol->value.pFunPtr )
|
||||
s_pSymStart = pDynSym->pSymbol;
|
||||
#ifdef HARBOUR_START_PROCEDURE
|
||||
else
|
||||
@@ -396,11 +396,11 @@ void HB_EXPORT hb_vmInit( BOOL bStartMainProc )
|
||||
{
|
||||
pDynSym = hb_dynsymFind( HARBOUR_START_PROCEDURE );
|
||||
|
||||
if( ! ( pDynSym && pDynSym->pSymbol->pFunPtr ) && s_pszLinkedMain )
|
||||
if( ! ( pDynSym && pDynSym->pSymbol->value.pFunPtr ) && s_pszLinkedMain )
|
||||
pDynSym = hb_dynsymFind( s_pszLinkedMain );
|
||||
}
|
||||
|
||||
if( pDynSym && pDynSym->pSymbol->pFunPtr )
|
||||
if( pDynSym && pDynSym->pSymbol->value.pFunPtr )
|
||||
s_pSymStart = pDynSym->pSymbol;
|
||||
else
|
||||
hb_errInternal( HB_EI_VMBADSTARTUP, NULL, HARBOUR_START_PROCEDURE, NULL );
|
||||
@@ -2275,7 +2275,7 @@ static void hb_vmFuncPtr( void ) /* pushes a function address pointer. Removes
|
||||
if( HB_IS_SYMBOL( pItem ) )
|
||||
{
|
||||
hb_stackPop();
|
||||
hb_vmPushLong( ( ULONG ) pItem->item.asSymbol.value->pFunPtr );
|
||||
hb_vmPushPointer( ( void* ) pItem->item.asSymbol.value->value.pFunPtr );
|
||||
}
|
||||
else
|
||||
hb_errInternal( HB_EI_VMNOTSYMBOL, NULL, "hb_vmFuncPtr()", NULL );
|
||||
@@ -3308,7 +3308,7 @@ void HB_EXPORT hb_vmDo( USHORT uiParams )
|
||||
PHB_BASEARRAY pSelfBase = NULL;
|
||||
|
||||
if( pSym == &( hb_symEval ) && HB_IS_BLOCK( pSelf ) )
|
||||
pFunc = pSym->pFunPtr; /* __EVAL method = function */
|
||||
pFunc = pSym->value.pFunPtr; /* __EVAL method = function */
|
||||
else
|
||||
{
|
||||
pFunc = hb_objGetMethod( pSelf, pSym );
|
||||
@@ -3400,7 +3400,7 @@ void HB_EXPORT hb_vmDo( USHORT uiParams )
|
||||
}
|
||||
else /* it is a function */
|
||||
{
|
||||
pFunc = pSym->pFunPtr;
|
||||
pFunc = pSym->value.pFunPtr;
|
||||
|
||||
if( pFunc )
|
||||
{
|
||||
@@ -3498,7 +3498,7 @@ void HB_EXPORT hb_vmSend( USHORT uiParams )
|
||||
|
||||
if( HB_IS_NIL( pSelf ) ) /* are we sending a message ? */
|
||||
{
|
||||
pFunc = pSym->pFunPtr;
|
||||
pFunc = pSym->value.pFunPtr;
|
||||
|
||||
if( pFunc )
|
||||
{
|
||||
@@ -3557,12 +3557,12 @@ void HB_EXPORT hb_vmSend( USHORT uiParams )
|
||||
{
|
||||
if( pSym == &( hb_symEval ) )
|
||||
{
|
||||
pFunc = pSym->pFunPtr; /* __EVAL method = function */
|
||||
pFunc = pSym->value.pFunPtr; /* __EVAL method = function */
|
||||
}
|
||||
else if( strncmp( pSym->szName, "EVAL", 4 ) == 0 )
|
||||
{
|
||||
pSym = &hb_symEval;
|
||||
pFunc = pSym->pFunPtr; /* __EVAL method = function */
|
||||
pFunc = pSym->value.pFunPtr; /* __EVAL method = function */
|
||||
}
|
||||
}
|
||||
else if( HB_IS_OBJECT( pSelf ) ) /* Object passed */
|
||||
@@ -3849,7 +3849,7 @@ static void hb_vmSFrame( PHB_SYMB pSym ) /* sets the statics frame for a fu
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_vmSFrame(%p)", pSym));
|
||||
|
||||
/* _INITSTATICS is now the statics frame. Statics() changed it! */
|
||||
hb_stack.iStatics = ( int ) pSym->pFunPtr; /* pSym is { "$_INITSTATICS", HB_FS_INIT | HB_FS_EXIT, _INITSTATICS } for each PRG */
|
||||
hb_stack.iStatics = pSym->value.iStaticsBase; /* pSym is { "$_INITSTATICS", HB_FS_INIT | HB_FS_EXIT, _INITSTATICS } for each PRG */
|
||||
}
|
||||
|
||||
static void hb_vmStatics( PHB_SYMB pSym, USHORT uiStatics ) /* initializes the global aStatics array or redimensionates it */
|
||||
@@ -3858,12 +3858,12 @@ static void hb_vmStatics( PHB_SYMB pSym, USHORT uiStatics ) /* initializes the g
|
||||
|
||||
if( HB_IS_NIL( &s_aStatics ) )
|
||||
{
|
||||
pSym->pFunPtr = NULL; /* statics frame for this PRG */
|
||||
pSym->value.iStaticsBase = 0; /* statics frame for this PRG */
|
||||
hb_arrayNew( &s_aStatics, uiStatics );
|
||||
}
|
||||
else
|
||||
{
|
||||
pSym->pFunPtr = ( PHB_FUNC ) hb_arrayLen( &s_aStatics );
|
||||
pSym->value.iStaticsBase = hb_arrayLen( &s_aStatics );
|
||||
hb_arraySize( &s_aStatics, hb_arrayLen( &s_aStatics ) + uiStatics );
|
||||
}
|
||||
|
||||
@@ -5206,8 +5206,8 @@ void HB_EXPORT hb_vmProcessDllSymbols( PHB_SYMB pModuleSymbols, USHORT uiModuleS
|
||||
{
|
||||
PHB_DYNS pDynSym = hb_dynsymFind( ( pModuleSymbols + ui )->szName );
|
||||
|
||||
if( pDynSym && pDynSym->pFunPtr && ( pModuleSymbols + ui )->pFunPtr )
|
||||
( pModuleSymbols + ui )->pFunPtr = pDynSym->pFunPtr;
|
||||
if( pDynSym && pDynSym->pFunPtr && ( pModuleSymbols + ui )->value.pFunPtr )
|
||||
( pModuleSymbols + ui )->value.pFunPtr = pDynSym->pFunPtr;
|
||||
else
|
||||
hb_dynsymNew( ( pModuleSymbols + ui ) );
|
||||
}
|
||||
|
||||
@@ -118,69 +118,69 @@ extern HB_FUNC( WORD );
|
||||
extern HB_FUNC( YEAR );
|
||||
|
||||
static HB_SYMB symbols[] = {
|
||||
{ "AADD" , HB_FS_PUBLIC, HB_FUNCNAME( AADD ) , NULL },
|
||||
{ "ABS" , HB_FS_PUBLIC, HB_FUNCNAME( ABS ) , NULL },
|
||||
{ "ASC" , HB_FS_PUBLIC, HB_FUNCNAME( ASC ) , NULL },
|
||||
{ "AT" , HB_FS_PUBLIC, HB_FUNCNAME( AT ) , NULL },
|
||||
{ "BOF" , HB_FS_PUBLIC, HB_FUNCNAME( BOF ) , NULL },
|
||||
{ "BREAK" , HB_FS_PUBLIC, HB_FUNCNAME( BREAK ) , NULL },
|
||||
{ "CDOW" , HB_FS_PUBLIC, HB_FUNCNAME( CDOW ) , NULL },
|
||||
{ "CHR" , HB_FS_PUBLIC, HB_FUNCNAME( CHR ) , NULL },
|
||||
{ "CMONTH" , HB_FS_PUBLIC, HB_FUNCNAME( CMONTH ) , NULL },
|
||||
{ "COL" , HB_FS_PUBLIC, HB_FUNCNAME( COL ) , NULL },
|
||||
{ "CTOD" , HB_FS_PUBLIC, HB_FUNCNAME( CTOD ) , NULL },
|
||||
{ "DATE" , HB_FS_PUBLIC, HB_FUNCNAME( DATE ) , NULL },
|
||||
{ "DAY" , HB_FS_PUBLIC, HB_FUNCNAME( DAY ) , NULL },
|
||||
{ "DELETED" , HB_FS_PUBLIC, HB_FUNCNAME( DELETED ) , NULL },
|
||||
{ "DEVPOS" , HB_FS_PUBLIC, HB_FUNCNAME( DEVPOS ) , NULL },
|
||||
{ "DOW" , HB_FS_PUBLIC, HB_FUNCNAME( DOW ) , NULL },
|
||||
{ "DTOC" , HB_FS_PUBLIC, HB_FUNCNAME( DTOC ) , NULL },
|
||||
{ "DTOS" , HB_FS_PUBLIC, HB_FUNCNAME( DTOS ) , NULL },
|
||||
{ "EMPTY" , HB_FS_PUBLIC, HB_FUNCNAME( EMPTY ) , NULL },
|
||||
{ "EOF" , HB_FS_PUBLIC, HB_FUNCNAME( EOF ) , NULL },
|
||||
{ "EXP" , HB_FS_PUBLIC, HB_FUNCNAME( EXP ) , NULL },
|
||||
{ "FCOUNT" , HB_FS_PUBLIC, HB_FUNCNAME( FCOUNT ) , NULL },
|
||||
{ "FIELDNAME" , HB_FS_PUBLIC, HB_FUNCNAME( FIELDNAME ) , NULL },
|
||||
{ "FLOCK" , HB_FS_PUBLIC, HB_FUNCNAME( FLOCK ) , NULL },
|
||||
{ "FOUND" , HB_FS_PUBLIC, HB_FUNCNAME( FOUND ) , NULL },
|
||||
{ "INKEY" , HB_FS_PUBLIC, HB_FUNCNAME( INKEY ) , NULL },
|
||||
{ "INT" , HB_FS_PUBLIC, HB_FUNCNAME( INT ) , NULL },
|
||||
{ "LASTREC" , HB_FS_PUBLIC, HB_FUNCNAME( LASTREC ) , NULL },
|
||||
{ "LEFT" , HB_FS_PUBLIC, HB_FUNCNAME( LEFT ) , NULL },
|
||||
{ "LEN" , HB_FS_PUBLIC, HB_FUNCNAME( LEN ) , NULL },
|
||||
{ "LOCK" , HB_FS_PUBLIC, HB_FUNCNAME( LOCK ) , NULL },
|
||||
{ "LOG" , HB_FS_PUBLIC, HB_FUNCNAME( LOG ) , NULL },
|
||||
{ "LOWER" , HB_FS_PUBLIC, HB_FUNCNAME( LOWER ) , NULL },
|
||||
{ "LTRIM" , HB_FS_PUBLIC, HB_FUNCNAME( LTRIM ) , NULL },
|
||||
{ "MAX" , HB_FS_PUBLIC, HB_FUNCNAME( MAX ) , NULL },
|
||||
{ "MIN" , HB_FS_PUBLIC, HB_FUNCNAME( MIN ) , NULL },
|
||||
{ "MONTH" , HB_FS_PUBLIC, HB_FUNCNAME( MONTH ) , NULL },
|
||||
{ "PCOL" , HB_FS_PUBLIC, HB_FUNCNAME( PCOL ) , NULL },
|
||||
{ "PCOUNT" , HB_FS_PUBLIC, HB_FUNCNAME( PCOUNT ) , NULL },
|
||||
{ "PROW" , HB_FS_PUBLIC, HB_FUNCNAME( PROW ) , NULL },
|
||||
{ "RECCOUNT" , HB_FS_PUBLIC, HB_FUNCNAME( RECCOUNT ) , NULL },
|
||||
{ "RECNO" , HB_FS_PUBLIC, HB_FUNCNAME( RECNO ) , NULL },
|
||||
{ "REPLICATE" , HB_FS_PUBLIC, HB_FUNCNAME( REPLICATE ) , NULL },
|
||||
{ "RLOCK" , HB_FS_PUBLIC, HB_FUNCNAME( RLOCK ) , NULL },
|
||||
{ "ROUND" , HB_FS_PUBLIC, HB_FUNCNAME( ROUND ) , NULL },
|
||||
{ "ROW" , HB_FS_PUBLIC, HB_FUNCNAME( ROW ) , NULL },
|
||||
{ "RTRIM" , HB_FS_PUBLIC, HB_FUNCNAME( RTRIM ) , NULL },
|
||||
{ "SECONDS" , HB_FS_PUBLIC, HB_FUNCNAME( SECONDS ) , NULL },
|
||||
{ "SELECT" , HB_FS_PUBLIC, HB_FUNCNAME( SELECT ) , NULL },
|
||||
{ "SETPOS" , HB_FS_PUBLIC, HB_FUNCNAME( SETPOS ) , NULL },
|
||||
{ "SETPOSBS" , HB_FS_PUBLIC, HB_FUNCNAME( SETPOSBS ) , NULL },
|
||||
{ "SPACE" , HB_FS_PUBLIC, HB_FUNCNAME( SPACE ) , NULL },
|
||||
{ "SQRT" , HB_FS_PUBLIC, HB_FUNCNAME( SQRT ) , NULL },
|
||||
{ "STR" , HB_FS_PUBLIC, HB_FUNCNAME( STR ) , NULL },
|
||||
{ "SUBSTR" , HB_FS_PUBLIC, HB_FUNCNAME( SUBSTR ) , NULL },
|
||||
{ "TIME" , HB_FS_PUBLIC, HB_FUNCNAME( TIME ) , NULL },
|
||||
{ "TRANSFORM" , HB_FS_PUBLIC, HB_FUNCNAME( TRANSFORM ) , NULL },
|
||||
{ "TRIM" , HB_FS_PUBLIC, HB_FUNCNAME( TRIM ) , NULL },
|
||||
{ "TYPE" , HB_FS_PUBLIC, HB_FUNCNAME( TYPE ) , NULL },
|
||||
{ "UPPER" , HB_FS_PUBLIC, HB_FUNCNAME( UPPER ) , NULL },
|
||||
{ "VAL" , HB_FS_PUBLIC, HB_FUNCNAME( VAL ) , NULL },
|
||||
{ "WORD" , HB_FS_PUBLIC, HB_FUNCNAME( WORD ) , NULL },
|
||||
{ "YEAR" , HB_FS_PUBLIC, HB_FUNCNAME( YEAR ) , NULL }
|
||||
{ "AADD" , HB_FS_PUBLIC, {HB_FUNCNAME( AADD )} , NULL },
|
||||
{ "ABS" , HB_FS_PUBLIC, {HB_FUNCNAME( ABS )} , NULL },
|
||||
{ "ASC" , HB_FS_PUBLIC, {HB_FUNCNAME( ASC )} , NULL },
|
||||
{ "AT" , HB_FS_PUBLIC, {HB_FUNCNAME( AT )} , NULL },
|
||||
{ "BOF" , HB_FS_PUBLIC, {HB_FUNCNAME( BOF )} , NULL },
|
||||
{ "BREAK" , HB_FS_PUBLIC, {HB_FUNCNAME( BREAK )} , NULL },
|
||||
{ "CDOW" , HB_FS_PUBLIC, {HB_FUNCNAME( CDOW )} , NULL },
|
||||
{ "CHR" , HB_FS_PUBLIC, {HB_FUNCNAME( CHR )} , NULL },
|
||||
{ "CMONTH" , HB_FS_PUBLIC, {HB_FUNCNAME( CMONTH )} , NULL },
|
||||
{ "COL" , HB_FS_PUBLIC, {HB_FUNCNAME( COL )} , NULL },
|
||||
{ "CTOD" , HB_FS_PUBLIC, {HB_FUNCNAME( CTOD )} , NULL },
|
||||
{ "DATE" , HB_FS_PUBLIC, {HB_FUNCNAME( DATE )} , NULL },
|
||||
{ "DAY" , HB_FS_PUBLIC, {HB_FUNCNAME( DAY )} , NULL },
|
||||
{ "DELETED" , HB_FS_PUBLIC, {HB_FUNCNAME( DELETED )} , NULL },
|
||||
{ "DEVPOS" , HB_FS_PUBLIC, {HB_FUNCNAME( DEVPOS )} , NULL },
|
||||
{ "DOW" , HB_FS_PUBLIC, {HB_FUNCNAME( DOW )} , NULL },
|
||||
{ "DTOC" , HB_FS_PUBLIC, {HB_FUNCNAME( DTOC )} , NULL },
|
||||
{ "DTOS" , HB_FS_PUBLIC, {HB_FUNCNAME( DTOS )} , NULL },
|
||||
{ "EMPTY" , HB_FS_PUBLIC, {HB_FUNCNAME( EMPTY )} , NULL },
|
||||
{ "EOF" , HB_FS_PUBLIC, {HB_FUNCNAME( EOF )} , NULL },
|
||||
{ "EXP" , HB_FS_PUBLIC, {HB_FUNCNAME( EXP )} , NULL },
|
||||
{ "FCOUNT" , HB_FS_PUBLIC, {HB_FUNCNAME( FCOUNT )} , NULL },
|
||||
{ "FIELDNAME" , HB_FS_PUBLIC, {HB_FUNCNAME( FIELDNAME )} , NULL },
|
||||
{ "FLOCK" , HB_FS_PUBLIC, {HB_FUNCNAME( FLOCK )} , NULL },
|
||||
{ "FOUND" , HB_FS_PUBLIC, {HB_FUNCNAME( FOUND )} , NULL },
|
||||
{ "INKEY" , HB_FS_PUBLIC, {HB_FUNCNAME( INKEY )} , NULL },
|
||||
{ "INT" , HB_FS_PUBLIC, {HB_FUNCNAME( INT )} , NULL },
|
||||
{ "LASTREC" , HB_FS_PUBLIC, {HB_FUNCNAME( LASTREC )} , NULL },
|
||||
{ "LEFT" , HB_FS_PUBLIC, {HB_FUNCNAME( LEFT )} , NULL },
|
||||
{ "LEN" , HB_FS_PUBLIC, {HB_FUNCNAME( LEN )} , NULL },
|
||||
{ "LOCK" , HB_FS_PUBLIC, {HB_FUNCNAME( LOCK )} , NULL },
|
||||
{ "LOG" , HB_FS_PUBLIC, {HB_FUNCNAME( LOG )} , NULL },
|
||||
{ "LOWER" , HB_FS_PUBLIC, {HB_FUNCNAME( LOWER )} , NULL },
|
||||
{ "LTRIM" , HB_FS_PUBLIC, {HB_FUNCNAME( LTRIM )} , NULL },
|
||||
{ "MAX" , HB_FS_PUBLIC, {HB_FUNCNAME( MAX )} , NULL },
|
||||
{ "MIN" , HB_FS_PUBLIC, {HB_FUNCNAME( MIN )} , NULL },
|
||||
{ "MONTH" , HB_FS_PUBLIC, {HB_FUNCNAME( MONTH )} , NULL },
|
||||
{ "PCOL" , HB_FS_PUBLIC, {HB_FUNCNAME( PCOL )} , NULL },
|
||||
{ "PCOUNT" , HB_FS_PUBLIC, {HB_FUNCNAME( PCOUNT )} , NULL },
|
||||
{ "PROW" , HB_FS_PUBLIC, {HB_FUNCNAME( PROW )} , NULL },
|
||||
{ "RECCOUNT" , HB_FS_PUBLIC, {HB_FUNCNAME( RECCOUNT )} , NULL },
|
||||
{ "RECNO" , HB_FS_PUBLIC, {HB_FUNCNAME( RECNO )} , NULL },
|
||||
{ "REPLICATE" , HB_FS_PUBLIC, {HB_FUNCNAME( REPLICATE )} , NULL },
|
||||
{ "RLOCK" , HB_FS_PUBLIC, {HB_FUNCNAME( RLOCK )} , NULL },
|
||||
{ "ROUND" , HB_FS_PUBLIC, {HB_FUNCNAME( ROUND )} , NULL },
|
||||
{ "ROW" , HB_FS_PUBLIC, {HB_FUNCNAME( ROW )} , NULL },
|
||||
{ "RTRIM" , HB_FS_PUBLIC, {HB_FUNCNAME( RTRIM )} , NULL },
|
||||
{ "SECONDS" , HB_FS_PUBLIC, {HB_FUNCNAME( SECONDS )} , NULL },
|
||||
{ "SELECT" , HB_FS_PUBLIC, {HB_FUNCNAME( SELECT )} , NULL },
|
||||
{ "SETPOS" , HB_FS_PUBLIC, {HB_FUNCNAME( SETPOS )} , NULL },
|
||||
{ "SETPOSBS" , HB_FS_PUBLIC, {HB_FUNCNAME( SETPOSBS )} , NULL },
|
||||
{ "SPACE" , HB_FS_PUBLIC, {HB_FUNCNAME( SPACE )} , NULL },
|
||||
{ "SQRT" , HB_FS_PUBLIC, {HB_FUNCNAME( SQRT )} , NULL },
|
||||
{ "STR" , HB_FS_PUBLIC, {HB_FUNCNAME( STR )} , NULL },
|
||||
{ "SUBSTR" , HB_FS_PUBLIC, {HB_FUNCNAME( SUBSTR )} , NULL },
|
||||
{ "TIME" , HB_FS_PUBLIC, {HB_FUNCNAME( TIME )} , NULL },
|
||||
{ "TRANSFORM" , HB_FS_PUBLIC, {HB_FUNCNAME( TRANSFORM )} , NULL },
|
||||
{ "TRIM" , HB_FS_PUBLIC, {HB_FUNCNAME( TRIM )} , NULL },
|
||||
{ "TYPE" , HB_FS_PUBLIC, {HB_FUNCNAME( TYPE )} , NULL },
|
||||
{ "UPPER" , HB_FS_PUBLIC, {HB_FUNCNAME( UPPER )} , NULL },
|
||||
{ "VAL" , HB_FS_PUBLIC, {HB_FUNCNAME( VAL )} , NULL },
|
||||
{ "WORD" , HB_FS_PUBLIC, {HB_FUNCNAME( WORD )} , NULL },
|
||||
{ "YEAR" , HB_FS_PUBLIC, {HB_FUNCNAME( YEAR )} , NULL }
|
||||
};
|
||||
|
||||
/* NOTE: The system symbol table with runtime functions HAVE TO be called
|
||||
|
||||
@@ -1225,7 +1225,7 @@ void hb_compGenPushSymbol( char * szSymbolName, BOOL bFunction, BOOL bAlias, HB_
|
||||
|
||||
if( bFunction )
|
||||
{
|
||||
if( pSym && ((pSym->pSymbol->pFunPtr == NULL) || (pSym->pSymbol->cScope & HB_FS_STATIC)) )
|
||||
if( pSym && ((pSym->pSymbol->value.pFunPtr == NULL) || (pSym->pSymbol->cScope & HB_FS_STATIC)) )
|
||||
{
|
||||
/* static functions are not allowed in macro */
|
||||
HB_MACRO_DATA->status |= HB_MACRO_UNKN_SYM;
|
||||
|
||||
@@ -335,7 +335,7 @@ PHRB_BODY hb_hrbLoad( char* szHrb )
|
||||
{
|
||||
pSymRead[ ul ].szName = hb_hrbFileReadId( file, szFileName );
|
||||
pSymRead[ ul ].cScope = hb_hrbFileReadByte( file, szFileName );
|
||||
pSymRead[ ul ].pFunPtr = ( PHB_FUNC ) ( ULONG ) hb_hrbFileReadByte( file, szFileName );
|
||||
pSymRead[ ul ].value.pFunPtr = ( PHB_FUNC ) ( ULONG ) hb_hrbFileReadByte( file, szFileName );
|
||||
pSymRead[ ul ].pDynSym = NULL;
|
||||
|
||||
if ( pHrbBody->ulSymStart == -1 &&
|
||||
@@ -366,7 +366,7 @@ PHRB_BODY hb_hrbLoad( char* szHrb )
|
||||
s_ulSymEntry = 0;
|
||||
for( ul = 0; ul < pHrbBody->ulSymbols; ul++ ) /* Linker */
|
||||
{
|
||||
if( ( ( ULONG ) pSymRead[ ul ].pFunPtr ) == SYM_FUNC )
|
||||
if( ( ( ULONG ) pSymRead[ ul ].value.pFunPtr ) == SYM_FUNC )
|
||||
{
|
||||
ulPos = hb_hrbFindSymbol( pSymRead[ ul ].szName, pDynFunc, pHrbBody->ulFuncs );
|
||||
if( ulPos != SYM_NOT_FOUND )
|
||||
@@ -380,12 +380,12 @@ PHRB_BODY hb_hrbLoad( char* szHrb )
|
||||
break;
|
||||
}
|
||||
*/
|
||||
pSymRead[ ul ].pFunPtr = pDynFunc[ ulPos ].pAsmCall->pFunPtr;
|
||||
pSymRead[ ul ].value.pFunPtr = pDynFunc[ ulPos ].pAsmCall->pFunPtr;
|
||||
}
|
||||
else
|
||||
pSymRead[ ul ].pFunPtr = ( PHB_FUNC ) SYM_EXTERN;
|
||||
pSymRead[ ul ].value.pFunPtr = ( PHB_FUNC ) SYM_EXTERN;
|
||||
}
|
||||
if( ( ( ULONG ) pSymRead[ ul ].pFunPtr ) == SYM_EXTERN )
|
||||
if( ( ( ULONG ) pSymRead[ ul ].value.pFunPtr ) == SYM_EXTERN )
|
||||
{ /* External function */
|
||||
pDynSym = hb_dynsymFind( pSymRead[ ul ].szName );
|
||||
if( !pDynSym )
|
||||
@@ -397,7 +397,7 @@ PHRB_BODY hb_hrbLoad( char* szHrb )
|
||||
bError = TRUE;
|
||||
break;
|
||||
}
|
||||
pSymRead[ ul ].pFunPtr = pDynSym->pFunPtr;
|
||||
pSymRead[ ul ].value.pFunPtr = pDynSym->pFunPtr;
|
||||
}
|
||||
}
|
||||
if( bError )
|
||||
@@ -429,7 +429,7 @@ void hb_hrbDo( PHRB_BODY pHrbBody, int argc, char * argv[] )
|
||||
* to pass any parameters to this function because they
|
||||
* cannot be used to initialize static variable.
|
||||
*/
|
||||
pHrbBody->pSymRead[ ul ].pFunPtr();
|
||||
pHrbBody->pSymRead[ ul ].value.pFunPtr();
|
||||
}
|
||||
}
|
||||
for( ul = 0; ul < pHrbBody->ulSymbols; ul++ ) /* Check INIT functions */
|
||||
|
||||
Reference in New Issue
Block a user