2009-12-21 00:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* include/hbextern.ch
    + Added new trace functions.
    ; TODO: Use these new functions in HBQT, HBXBP.

  * contrib/hbwin/win_dll.c
    ! Fix for OpenWatcom. Seems to require LPVOID in asm code.

  * contrib/hbqt/hbqt_destruct.cpp
    * Minor formatting. ('return( x )' -> 'return x', return is not a function)
    + Added 'TODO:' to todo text.
    + Added TOFIX to hb_parptr() usage. Without reference counting this is 
      still dangerous.
      Probably some mechanisms would be needed to count references when 
      attaching one GC collected pointer to another object, and decrement 
      references when disconnecting or deleting holder object. Without 
      this, there will always be a possibility that some objects refer 
      to deleted objects. Unless I'm missing some logic which already that.
      Probably "delayed release" is the mechanism which is trying to 
      solve that problem at the moment.

  * contrib/hbwin/wapi_winbase_mutex.c
    * Minor formatting (superfluous brackets)
This commit is contained in:
Viktor Szakats
2009-12-21 00:07:24 +00:00
parent e7cb8c45a1
commit 78fcd3ab59
5 changed files with 38 additions and 8 deletions

View File

@@ -17,6 +17,30 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-12-21 00:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
+ Added new trace functions.
; TODO: Use these new functions in HBQT, HBXBP.
* contrib/hbwin/win_dll.c
! Fix for OpenWatcom. Seems to require LPVOID in asm code.
* contrib/hbqt/hbqt_destruct.cpp
* Minor formatting. ('return( x )' -> 'return x', return is not a function)
+ Added 'TODO:' to todo text.
+ Added TOFIX to hb_parptr() usage. Without reference counting this is
still dangerous.
Probably some mechanisms would be needed to count references when
attaching one GC collected pointer to another object, and decrement
references when disconnecting or deleting holder object. Without
this, there will always be a possibility that some objects refer
to deleted objects. Unless I'm missing some logic which already that.
Probably "delayed release" is the mechanism which is trying to
solve that problem at the moment.
* contrib/hbwin/wapi_winbase_mutex.c
* Minor formatting (superfluous brackets)
2009-12-20 22:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbtrace.ch
@@ -65,11 +89,11 @@
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
! Improved Find/Replace functionality. Now it is usable feature
! Improved Find/Replace functionality. Now it is usable feature
though I have to tweak it a little more. The current functionality is as:
CTRL+F or "Find" icon => Opens <Find-Replace> dialog.
CTRL+N finds next occurance of current "Find" string - always
CTRL+N finds next occurance of current "Find" string - always
shown in one of the panels of status-bar.
This invocation is equivalent to if you click <Find> pushbutton
of the <Find-Replace> dialog.
@@ -79,8 +103,8 @@
of the <Find-Replace> dialog.
History of <Find>/<Replace> strings is maintained and is populated
in drop-down list of respective combo-boxes.
in drop-down list of respective combo-boxes.
TODO: <Global> and <Replace without prompting> features.
2009-12-20 16:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

View File

@@ -89,9 +89,9 @@ void * hbqt_gcpointer( int iParam )
if( p && p->ph )
return p->ph;
else if( HB_ISPOINTER( iParam ) )
return hb_parptr( iParam );
return hb_parptr( iParam ); /* TOFIX: In what cases is this needed? Reference counting to avoid referring to freed pointers? */
else
return( NULL ); /* Still better if RTE */
return NULL; /* TODO: Still better if RTE. */
}
void * hbqt_pPtrFromObj( int iParam )

View File

@@ -89,7 +89,7 @@ static HANDLE wapi_mutex_par( int iParam )
{
void ** ph = ( void ** ) hb_parptrGC( &s_gc_wapi_mutex_funcs, iParam );
return ( ph ? ( HANDLE ) *ph : NULL );
return ph ? ( HANDLE ) *ph : NULL;
}
/* HANDLE WINAPI CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName ) */

View File

@@ -177,6 +177,9 @@ static HB_DYNRETVAL hb_DynaCall( int iFlags, FARPROC lpFunction, int nArgs, HB_D
int i, nInd, nSize, nLoops;
DWORD dwEAX, dwEDX, dwVal, * pStack, dwStSize = 0;
BYTE * pArg;
#if ! defined( __MINGW32__ ) && ! defined( __BORLANDC__ ) && ! defined( __DMC__ )
LPVOID lpFunctionVoid = ( LPVOID ) lpFunction;
#endif
#if defined( __MINGW32__ )
#elif defined( __BORLANDC__ ) || defined( __DMC__ )
@@ -325,7 +328,7 @@ static HB_DYNRETVAL hb_DynaCall( int iFlags, FARPROC lpFunction, int nArgs, HB_D
_asm sub esp, dwStSize /* Adjust for our new parameters */
/* Stack is now properly built, we can call the function */
_asm call [lpFunction]
_asm call [lpFunctionVoid]
_asm mov dwEAX, eax /* Save eax/edx registers */
_asm mov dwEDX, edx /* */

View File

@@ -1132,6 +1132,9 @@ EXTERNAL HB_SHADOW
EXTERNAL HB_TRACELEVEL
EXTERNAL HB_TRACESTATE
EXTERNAL HB_TRACESTRING
EXTERNAL HB_TRACELOGLEVEL
EXTERNAL HB_TRACELOG
EXTERNAL HB_TRACELOGAT
EXTERNAL HB_CSTR
EXTERNAL HB_VALTOEXP
EXTERNAL HB_VALTOSTR