bug-gawk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-gawk] `exit' statement issue


From: Denis Shirokov
Subject: Re: [bug-gawk] `exit' statement issue
Date: Tue, 28 May 2013 01:29:29 +0300

Sorry again I resend you source and the batch file that should be used
to run the script.
It's again the ZIP-archive that I was renamed with extension ".piz"
instead of ".zip"
Just copy script and batch file inside the folder where gawk can be
found and type `z'

Sorry for inconvinience

Denis




2013/5/28, Denis Shirokov <address@hidden>:
> sorry forgot to add:
>
> the following error is occured while(in some cases) statement `exit' is
> used:
>
> gawk: D:\CPU\DEV\PROJECT\_DS\_MAIN.GWK:2152: fatal: unwind_stack:
> unexpected type `Node_var_array'
>
> 2013/5/28, Denis Shirokov <address@hidden>:
>> Hi Arnold, Eli.
>>
>> This is bug report about `exit' statement.
>>
>> Unfortunately the gawk script source isn't simply. But I cannot
>> reproduce it in other way:
>> The source is attached as _main.gwk
>>
>> In the source see function test_uid:
>>
>> func test_uid( p,i) {
>>      #test_cfg()
>>      #return
>>
>>      _fclass=_cfguid(p=_getuid(_classys),p,"pfx","sfx","abc")
>>      #_fclass=_cfguid(p=_getuid(_classys),_NOP,_NOP,_NOP,"",_classys)
>>      _conl("_fclass uid: " _getuid(_fclass)); _drawuid(_fclass)
>>      _conl("_classys uid: " _getuid(_classys))_drawuid(_classys)
>>      for ( i=1; i<82; i++ )          _conl(i ": " _getuid(_fclass))          
>> #<---- you
>> see that _getuid() function is called 81 times; but at the 82nd time
>> the internal script failure occurred - this is normal
>>      
>>      
>> func _getuid(p) {
>>      if ( p in _UIDOBL )     { for ( _tptr in _UIDOBLV[_getuida0=_UIDOBL[p]]
>> )    { delete _UIDOBLV[_getuida0][_tptr]; _CLASSPTR[_tptr]=p; return
>> _tptr } }
>>      _CLASSPTR[_tptr=_UIDPFX[p]
>> _getuid_i0(_UIDCNT[p],_UIDCHRL[_tptr=_UIDCHR[p]],_UIDCHRH[_tptr])
>> _UIDSFX[p]]=p
>>      return _tptr }
>>
>> func _getuid_i0(p,UL,UH)     { if ( ""==_tptr=UL[_UIDCNTL[p]] )      { for (
>> _tptr in UH )        { delete UH[_tptr]; return (_UIDCNTH[p]=_tptr)
>> (_UIDCNTL[p]=UL[""]) }
>>      _fatal("out of UID") }          # <---- here is failure handler 
>> function call
>> at 82nd time
>>      return _UIDCNTH[p] (_UIDCNTL[p]=_tptr) }
>>
>>
>>
>> func _fatal(t,d, A) {
>>      if ( _ERRLOG_FF ) {
>>              A["TYPE"]="FATAL"; A["TEXT"]=t
>>              _log(A,d) }
>>      if ( !d )       exit }                          # <---- here is the 
>> crash moment
>>
>>
>> IMPORTANT!
>>
>> I see the same issue in gawk 3.17b that i was used before gawk 4.0.0
>>
>> Hope this can help.
>>
>> regards
>> Denis Shirokov
>>
>

Attachment: bin.piz
Description: Zip compressed data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]