2010-02-04 22:23 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/task.c
* harbour/src/vm/classes.c
* harbour/src/rtl/strpeek.c
* updated to use ANSI types
* harbour/src/rtl/hbmd5.c
% small optimization (more compiler friendly code due to fixed alignment)
This commit is contained in:
@@ -17,6 +17,15 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-02-04 22:23 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/src/vm/task.c
|
||||
* harbour/src/vm/classes.c
|
||||
* harbour/src/rtl/strpeek.c
|
||||
* updated to use ANSI types
|
||||
|
||||
* harbour/src/rtl/hbmd5.c
|
||||
% small optimization (more compiler friendly code due to fixed alignment)
|
||||
|
||||
2010-02-04 21:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* src/rtl/console.c
|
||||
* src/rtl/shadow.c
|
||||
|
||||
@@ -148,13 +148,6 @@ static const UINT32 T[ 64 ] = {
|
||||
0xF7537E82, 0xBD3AF235, 0x2AD7D2BB, 0xEB86D391
|
||||
};
|
||||
|
||||
static const BYTE pad[ 64 ] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
static void hb_md5go( MD5_BUF * md5 )
|
||||
{
|
||||
UINT32 X[ 16 ], A[ 4 ];
|
||||
@@ -279,10 +272,11 @@ void hb_md5( const void * data, HB_SIZE ulLen, char * digest )
|
||||
hb_md5go( &md5 );
|
||||
}
|
||||
/* prepare additional block(s) */
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
n = ulLen & 63;
|
||||
if( n )
|
||||
memcpy( buf, ucdata, n );
|
||||
memcpy( buf + n, pad, 64 );
|
||||
buf[ n ] = 0x80;
|
||||
/* count bits length */
|
||||
i = 56;
|
||||
if( n >= 56 )
|
||||
@@ -335,9 +329,10 @@ void hb_md5file( HB_FHANDLE hFile, char * digest )
|
||||
i += 64;
|
||||
n -= 64;
|
||||
}
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
if( n )
|
||||
memcpy( buf, readbuf + i, n );
|
||||
memcpy( buf + n, pad, 64 );
|
||||
buf[ n ] = 0x80;
|
||||
i = 56;
|
||||
if( n >= 56 )
|
||||
{
|
||||
|
||||
@@ -65,7 +65,7 @@ HB_FUNC( STRPEEK )
|
||||
HB_SIZE ulPos = hb_parnl( 2 );
|
||||
|
||||
if( ulPos > 0 && ulPos <= hb_itemGetCLen( pText ) )
|
||||
hb_retni( ( BYTE ) * ( hb_itemGetCPtr( pText ) + ulPos - 1 ) );
|
||||
hb_retni( ( unsigned char ) hb_itemGetCPtr( pText )[ ulPos - 1 ] );
|
||||
else
|
||||
hb_retni( 0 );
|
||||
}
|
||||
|
||||
@@ -2153,11 +2153,11 @@ static void hb_objSupperDestructorCall( PHB_ITEM pObject, PCLASS pClass )
|
||||
HB_STACK_TLS_PRELOAD
|
||||
PMETHOD pMethod = pClass->pMethods;
|
||||
ULONG ulLimit = hb_clsMthNum( pClass );
|
||||
BYTE * pbClasses;
|
||||
char * pcClasses;
|
||||
USHORT uiClass;
|
||||
|
||||
pbClasses = ( BYTE * ) hb_xgrab( s_uiClasses + 1 );
|
||||
memset( pbClasses, 0, s_uiClasses + 1 );
|
||||
pcClasses = ( char * ) hb_xgrab( s_uiClasses + 1 );
|
||||
memset( pcClasses, 0, s_uiClasses + 1 );
|
||||
|
||||
do
|
||||
{
|
||||
@@ -2167,10 +2167,10 @@ static void hb_objSupperDestructorCall( PHB_ITEM pObject, PCLASS pClass )
|
||||
{
|
||||
PCLASS pSupperClass = s_pClasses[ pMethod->uiSprClass ];
|
||||
if( pSupperClass->fHasDestructor && pSupperClass != pClass )
|
||||
pbClasses[ pMethod->uiSprClass ] |= 1;
|
||||
pcClasses[ pMethod->uiSprClass ] |= 1;
|
||||
}
|
||||
else if( pMethod->pMessage == s___msgDestructor.pDynSym )
|
||||
pbClasses[ pMethod->uiSprClass ] |= 2;
|
||||
pcClasses[ pMethod->uiSprClass ] |= 2;
|
||||
}
|
||||
++pMethod;
|
||||
}
|
||||
@@ -2178,26 +2178,26 @@ static void hb_objSupperDestructorCall( PHB_ITEM pObject, PCLASS pClass )
|
||||
|
||||
for( uiClass = s_uiClasses; uiClass; --uiClass )
|
||||
{
|
||||
if( pbClasses[ uiClass ] == 1 )
|
||||
if( pcClasses[ uiClass ] == 1 )
|
||||
{
|
||||
PMETHOD pDestructor = hb_clsFindMsg( s_pClasses[ uiClass ],
|
||||
s___msgDestructor.pDynSym );
|
||||
if( pDestructor )
|
||||
{
|
||||
if( pbClasses[ pDestructor->uiSprClass ] == 1 )
|
||||
if( pcClasses[ pDestructor->uiSprClass ] == 1 )
|
||||
{
|
||||
hb_vmPushSymbol( &s___msgDestructor );
|
||||
hb_clsMakeSuperObject( hb_stackAllocItem(), pObject, uiClass );
|
||||
hb_vmSend( 0 );
|
||||
if( hb_vmRequestQuery() != 0 )
|
||||
break;
|
||||
pbClasses[ pDestructor->uiSprClass ] |= 2;
|
||||
pcClasses[ pDestructor->uiSprClass ] |= 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hb_xfree( pbClasses );
|
||||
hb_xfree( pcClasses );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -146,8 +146,8 @@ typedef struct _HB_TASKINFO
|
||||
|
||||
HB_LONG wakeup;
|
||||
|
||||
BYTE * stack;
|
||||
LONG stack_size;
|
||||
char * stack;
|
||||
long stack_size;
|
||||
|
||||
#if defined( HB_HAS_UCONTEXT )
|
||||
ucontext_t context;
|
||||
@@ -501,7 +501,7 @@ static void hb_taskRun( void )
|
||||
/* unreachable code */
|
||||
}
|
||||
|
||||
static PHB_TASKINFO hb_taskNew( LONG stack_size )
|
||||
static PHB_TASKINFO hb_taskNew( long stack_size )
|
||||
{
|
||||
PHB_TASKINFO pTask;
|
||||
|
||||
@@ -510,7 +510,7 @@ static PHB_TASKINFO hb_taskNew( LONG stack_size )
|
||||
|
||||
pTask = ( PHB_TASKINFO ) memset( hb_xgrab( sizeof( HB_TASKINFO ) ), 0,
|
||||
sizeof( HB_TASKINFO ) );
|
||||
pTask->stack = ( BYTE * ) hb_xgrab( stack_size );
|
||||
pTask->stack = hb_xgrab( stack_size );
|
||||
|
||||
stack_size += ( HB_PTRDIFF ) pTask->stack;
|
||||
stack_size &= ~( HB_TASK_STACK_ALIGN - 1 );
|
||||
|
||||
Reference in New Issue
Block a user