static void hb_stack_init( PHB_STACK pStack ) { HB_ISIZ n; HB_TRACE( HB_TR_DEBUG, ( "hb_stack_init(%p)", pStack ) ); memset( pStack, 0, sizeof( HB_STACK ) ); pStack->pItems = ( PHB_ITEM * ) hb_xgrab( sizeof( PHB_ITEM ) * STACK_INITHB_ITEMS ); pStack->pBase = pStack->pItems; pStack->pPos = pStack->pItems; /* points to the first stack item */ pStack->nItems = STACK_INITHB_ITEMS; pStack->pEnd = pStack->pItems + pStack->nItems; for( n = 0; n < pStack->nItems; ++n ) { pStack->pItems[ n ] = ( PHB_ITEM ) hb_xgrab( sizeof( HB_ITEM ) ); pStack->pItems[ n ]->type = HB_IT_NIL; } pStack->pPos++; hb_itemPutSymbol( *pStack->pItems, &s_initSymbol ); ( *pStack->pItems )->item.asSymbol.stackstate = &pStack->state; pStack->rdd.uiCurrArea = 1; pStack->iKeyPoll = 1; }
HB_BOOL hbgi_hb_clsAddMsg(HB_USHORT uiClass, const char *szMessage, HB_USHORT uiType, HB_USHORT uiScope, PHB_FUNC pFuncPtr, PHB_ITEM pInit) { PHB_SYMB pExecSym = hb_symbolNew(""); PHB_ITEM pFuncItem; pExecSym->value.pFunPtr = pFuncPtr; pFuncItem = hb_itemPutSymbol(NULL, pExecSym); hbgi_hb_clsAddMsgNative(uiClass, szMessage, uiType, uiScope, pFuncItem, pInit); hb_itemRelease(pFuncItem); return HB_TRUE; }