2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/arc4.c
! include hbarc4.h instead of arc4.h which does not contain
required for dynamic libraries export attributes in function
declaration
* src/vm/classes.c
! cleaned module symbol range checking
* src/vm/arrays.c
% optimized AClone() and hb_HClone()
* src/vm/hvmall.c
% changed the order of included files to keep alive function macros
undefined in garbage.c and fm.c
* src/vm/hvm.c
! fixed hb_vmGetRealFuncSym() to work with PRG functions written in C
and registered in HVM without their own symbol table
* src/vm/dynsym.c
; comment updated
This commit is contained in:
@@ -7,6 +7,29 @@
|
||||
Entries may not always be in chronological/commit order.
|
||||
See license at the end of file. */
|
||||
|
||||
2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* src/rtl/arc4.c
|
||||
! include hbarc4.h instead of arc4.h which does not contain
|
||||
required for dynamic libraries export attributes in function
|
||||
declaration
|
||||
|
||||
* src/vm/classes.c
|
||||
! cleaned module symbol range checking
|
||||
|
||||
* src/vm/arrays.c
|
||||
% optimized AClone() and hb_HClone()
|
||||
|
||||
* src/vm/hvmall.c
|
||||
% changed the order of included files to keep alive function macros
|
||||
undefined in garbage.c and fm.c
|
||||
|
||||
* src/vm/hvm.c
|
||||
! fixed hb_vmGetRealFuncSym() to work with PRG functions written in C
|
||||
and registered in HVM without their own symbol table
|
||||
|
||||
* src/vm/dynsym.c
|
||||
; comment updated
|
||||
|
||||
2023-01-23 12:46 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* include/harbour.hbx
|
||||
! added missing hb_socketSetNoSigPipe()
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
* RC4 is a registered trademark of RSA Laboratories.
|
||||
*/
|
||||
|
||||
#include "arc4.h"
|
||||
#include "hbarc4.h"
|
||||
#include "hbdate.h"
|
||||
#include "hbthread.h"
|
||||
|
||||
|
||||
@@ -1505,17 +1505,26 @@ static void hb_arrayCloneBody( PHB_ITEM pDest, PHB_ITEM pArray, PHB_NESTED_CLONE
|
||||
|
||||
void hb_nestedCloneInit( PHB_NESTED_CLONED pClonedList, void * pValue, PHB_ITEM pDest )
|
||||
{
|
||||
pClonedList->nSize = 16;
|
||||
pClonedList->nCount = 1;
|
||||
pClonedList->pRefs = ( PHB_NESTED_REF )
|
||||
hb_xgrab( pClonedList->nSize * sizeof( HB_NESTED_REF ) );
|
||||
pClonedList->pRefs[ 0 ].value = pValue;
|
||||
pClonedList->pRefs[ 0 ].pDest = pDest;
|
||||
if( hb_gcRefCount( pValue ) > 1 )
|
||||
{
|
||||
pClonedList->nCount = 1;
|
||||
pClonedList->nSize = 16;
|
||||
pClonedList->pRefs = ( PHB_NESTED_REF )
|
||||
hb_xgrab( pClonedList->nSize * sizeof( HB_NESTED_REF ) );
|
||||
pClonedList->pRefs[ 0 ].value = pValue;
|
||||
pClonedList->pRefs[ 0 ].pDest = pDest;
|
||||
}
|
||||
else
|
||||
{
|
||||
pClonedList->nCount = pClonedList->nSize = 0;
|
||||
pClonedList->pRefs = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void hb_nestedCloneFree( PHB_NESTED_CLONED pClonedList )
|
||||
{
|
||||
hb_xfree( pClonedList->pRefs );
|
||||
if( pClonedList->pRefs )
|
||||
hb_xfree( pClonedList->pRefs );
|
||||
}
|
||||
|
||||
static HB_BOOL hb_nestedCloneFind( PHB_NESTED_CLONED pClonedList, void * pValue, PHB_ITEM pDest )
|
||||
@@ -1523,6 +1532,9 @@ static HB_BOOL hb_nestedCloneFind( PHB_NESTED_CLONED pClonedList, void * pValue,
|
||||
HB_SIZE nFirst, nLast, nMiddle;
|
||||
PHB_NESTED_REF pRef;
|
||||
|
||||
if( hb_gcRefCount( pValue ) <= 1 )
|
||||
return HB_FALSE;
|
||||
|
||||
nFirst = 0;
|
||||
nLast = pClonedList->nCount;
|
||||
nMiddle = ( nFirst + nLast ) >> 1;
|
||||
|
||||
@@ -1064,7 +1064,7 @@ static HB_BOOL hb_clsIsFriendSymbol( PCLASS pClass, PHB_SYMB pSym )
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_clsIsFriendSymbol(%p,%p)", ( void * ) pClass, ( void * ) pSym ) );
|
||||
|
||||
if( pSym >= pClass->pFriendModule &&
|
||||
if( pClass->pFriendModule && pSym >= pClass->pFriendModule &&
|
||||
pSym < pClass->pFriendModule + pClass->uiFriendModule )
|
||||
return HB_TRUE;
|
||||
|
||||
|
||||
@@ -267,7 +267,7 @@ PHB_DYNS hb_dynsymNew( PHB_SYMB pSymbol )
|
||||
if( pDynSym->pSymbol->value.pFunPtr == pSymbol->value.pFunPtr )
|
||||
{
|
||||
/* The addresses have been updated, f.e. in such way works GCC
|
||||
* in Linux (but not MinGW and DJGPP) if user will allow to create
|
||||
* in Linux (but not MinGW and DJGPP) if user allows to create
|
||||
* binaries with multiple symbols by
|
||||
* -Wl,--allow-multiple-definition
|
||||
* when whole module cannot be cleanly replaced.
|
||||
|
||||
@@ -7533,7 +7533,8 @@ PHB_SYMB hb_vmGetRealFuncSym( PHB_SYMB pSym )
|
||||
if( pSym && ! ( pSym->scope.value & HB_FS_LOCAL ) )
|
||||
{
|
||||
pSym = pSym->pDynSym &&
|
||||
( pSym->pDynSym->pSymbol->scope.value & HB_FS_LOCAL ) ?
|
||||
( ( pSym->pDynSym->pSymbol->scope.value & HB_FS_LOCAL ) ||
|
||||
pSym->pDynSym->pSymbol->value.pFunPtr == pSym->value.pFunPtr ) ?
|
||||
pSym->pDynSym->pSymbol : NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -106,8 +106,8 @@
|
||||
#include "set.c"
|
||||
#include "memvars.c"
|
||||
#include "thread.c"
|
||||
#include "garbage.c"
|
||||
#include "fm.c"
|
||||
#include "strapi.c"
|
||||
#include "extend.c"
|
||||
#include "estack.c"
|
||||
#include "garbage.c"
|
||||
#include "fm.c"
|
||||
|
||||
Reference in New Issue
Block a user