static void sTokSet( TOKEN_ENVIRONMENT env ) { TOKEN_ENVIRONMENT * penv = ( TOKEN_ENVIRONMENT * ) hb_stackGetTSD( &s_token ); if( *penv ) sTokEnvDel( *penv ); *penv = env; }
static void sTokExit( void * cargo ) { HB_SYMBOL_UNUSED( cargo ); if( s_sTokenEnvironment ) { sTokEnvDel( s_sTokenEnvironment ); s_sTokenEnvironment = NULL; } }
static void s_token_exit( void * cargo ) { TOKEN_ENVIRONMENT * penv = ( TOKEN_ENVIRONMENT * ) cargo; if( *penv ) { sTokEnvDel( *penv ); *penv = NULL; } }
static void sTokSet( TOKEN_ENVIRONMENT env ) { if( ! s_fInit && env ) { hb_vmAtExit( sTokExit, NULL ); s_fInit = HB_TRUE; } if( s_sTokenEnvironment ) sTokEnvDel( s_sTokenEnvironment ); s_sTokenEnvironment = env; }
static int sTokSave( TOKEN_ENVIRONMENT sTokenEnvironment, int iParam ) { if( iParam != 0 && HB_ISBYREF( iParam ) ) { if( ! hb_storclen_buffer( ( char * ) sTokenEnvironment, sTokEnvGetSize( sTokenEnvironment ), iParam ) ) { sTokEnvDel( sTokenEnvironment ); return 0; } } else sTokSet( sTokenEnvironment ); return 1; }