2010-07-01 02:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/src/compiler/harbour.y
  * harbour/src/compiler/harbour.yyh
  * harbour/src/compiler/harbour.yyc
    * increase the maximum bison stack size limit
      from 10000 items to 100000

  * harbour/src/rtl/gtsln/kbsln.c
    + added support for HB_K_RESIZE

  * harbour/contrib/hbwin/axcore.c
  * harbour/contrib/hbwin/hbolesrv.c
    * do not pass message ID (DISPID) as first parameter of codeblock
      or function taken from hash array indexed by DISPIDs.
      This modification restores old format, i.e. the one expected
      by GTWVG code.

  * harbour/contrib/hbwin/tests/olesrv1.prg
    ! comment
This commit is contained in:
Przemyslaw Czerpak
2010-07-01 00:31:49 +00:00
parent f27ad5cdf2
commit c42f87ca61
8 changed files with 623 additions and 597 deletions

View File

@@ -16,6 +16,26 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-01 02:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyh
* harbour/src/compiler/harbour.yyc
* increase the maximum bison stack size limit
from 10000 items to 100000
* harbour/src/rtl/gtsln/kbsln.c
+ added support for HB_K_RESIZE
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/hbolesrv.c
* do not pass message ID (DISPID) as first parameter of codeblock
or function taken from hash array indexed by DISPIDs.
This modification restores old format, i.e. the one expected
by GTWVG code.
* harbour/contrib/hbwin/tests/olesrv1.prg
! comment
2010-07-01 01:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/gtcrs/gtcrs.c
+ GTCRS will now generate HB_K_RESIZE Harbour INKEY() events

View File

@@ -344,7 +344,10 @@ static HRESULT STDMETHODCALLTYPE Invoke( IDispatch* lpThis, DISPID dispid, REFII
PHB_ITEM pKey = hb_itemPutNL( hb_stackAllocItem(), ( long ) dispid );
if( pAction && HB_IS_HASH( pAction ) )
{
pAction = hb_hashGetItemPtr( pAction, pKey, 0 );
pKey = NULL;
}
if( pAction && hb_oleDispInvoke( NULL, pAction, pKey,
pParams, pVarResult, NULL ) )

View File

@@ -397,18 +397,16 @@ static HRESULT STDMETHODCALLTYPE Invoke( IDispatch* lpThis, DISPID dispid, REFII
}
else if( HB_IS_HASH( pAction ) )
{
PHB_ITEM pKey, pItem;
PHB_ITEM pItem;
if( ( ( IHbOleServer * ) lpThis )->fGuids )
{
pKey = hb_itemPutNL( hb_stackAllocItem(), ( long ) dispid );
PHB_ITEM pKey = hb_itemPutNL( hb_stackAllocItem(), ( long ) dispid );
pItem = hb_hashGetItemPtr( pAction, pKey, 0 );
hb_stackPop();
}
else
{
pKey = NULL;
pItem = hb_hashGetValueAt( pAction, ( HB_SIZE ) dispid );
}
if( pItem )
{
@@ -417,7 +415,7 @@ static HRESULT STDMETHODCALLTYPE Invoke( IDispatch* lpThis, DISPID dispid, REFII
if( ( wFlags & DISPATCH_METHOD ) != 0 )
{
PHB_SYMB pSym = hb_itemGetSymbol( pItem );
fResult = hb_oleDispInvoke( pSym, pSym ? pAction : pItem, pKey,
fResult = hb_oleDispInvoke( pSym, pSym ? pAction : pItem, NULL,
pParams, pVarResult, s_objItemToVariant );
}
}
@@ -435,8 +433,6 @@ static HRESULT STDMETHODCALLTYPE Invoke( IDispatch* lpThis, DISPID dispid, REFII
fResult = HB_TRUE;
}
}
if( pKey )
hb_stackPop();
}
else if( HB_IS_OBJECT( pAction ) )
{

View File

@@ -100,7 +100,7 @@ PROCEDURE DllMain()
* WIN_OleServerInit( cClassID, cServerName, @netio_funcExec(), .T. )
* endif
* initialize OLE server which redirects all messages to default netio
* connection establish by netio_connect().
* connection established by netio_connect().
*
* If 3-rd parameter is not given then all HVM functions becomes
* OLE methods and HVM memvars (public and private variables) are

View File

@@ -68,6 +68,9 @@
#define YYENABLE_NLS 0
#define YYLTYPE_IS_TRIVIAL 0
/* NOTE: increase the maximum size of bison stack size */
#define YYMAXDEPTH 100000
static void hb_compLoopStart( HB_COMP_DECL, HB_BOOL );
static void hb_compLoopEnd( HB_COMP_DECL );
static void hb_compLoopLoop( HB_COMP_DECL );

File diff suppressed because it is too large Load Diff

View File

@@ -266,7 +266,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 114 "harbour.y"
#line 117 "harbour.y"
{
char * string; /* to hold a string returned by lex */
int iNumber; /* to hold a temporary integer number */

View File

@@ -332,6 +332,7 @@ int hb_gt_sln_ReadKey( PHB_GT pGT, int iEventMask )
/* TODO: we need here some kind of screen redrawing */
/*SLsmg_refresh();*/
HB_GTSELF_RESIZE( pGT, SLtt_Screen_Rows, SLtt_Screen_Cols );
return HB_K_RESIZE;
}
fInput = SLang_input_pending( 0 ) != 0;