Changeset 146 for trunk/orca

Show
Ignore:
Timestamp:
05/11/06 17:36:18 (3 years ago)
Author:
krobillard
Message:

Orca-Qt - catchExit() works again after [140]

Location:
trunk/orca
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/orca/ovalue.c

    r144 r146  
    25752575    { 
    25762576    int total = funcv.argc + funcv.refc; 
    2577     int level = data->used; 
    2578  
    2579     // NOTE: Natives may need to orHold() any complex argument values since 
    2580     // the stack no longer references them here. 
     2577    //int level = data->used; 
    25812578 
    25822579    funcv.native.addr( DATA_TOP - total ); 
    2583     assert( level == data->used ); 
     2580 
     2581    //assert( level == data->used );    // May not be same if orErrorThrown 
    25842582    data->used -= total; 
    25852583    } 
  • trunk/orca/qt/qorca.cpp

    r144 r146  
    683683 
    684684 
    685 static int catchExit() 
     685static int catchExit( OValue* a1 ) 
    686686{ 
    687687    if( orErrorThrown && orErrorIsType( OR_ERROR_THROW ) ) 
     
    689689        if( orErrorThrown->error.msg == qEnv.atom_exec_exit ) 
    690690        { 
    691             orCopyV( orTOS, *(orErrorThrown + 1) ); 
     691            orCopyV( a1, *(orErrorThrown + 1) ); 
    692692            orErrorClear; 
    693693            return qEnv.atom_exec_exit; 
     
    695695        else if( orErrorThrown->error.msg == qEnv.atom_close ) 
    696696        { 
    697             orCopyV( orTOS, *(orErrorThrown + 1) ); 
     697            orCopyV( a1, *(orErrorThrown + 1) ); 
    698698            orErrorClear; 
    699699            return qEnv.atom_close; 
     
    719719                qEnv.dialog = saveDialog; 
    720720 
    721                 catchExit(); 
     721                catchExit( a1 ); 
    722722            } 
    723723            else if( rec->type == WT_Widget ) 
     
    727727                widget->show(); 
    728728                qEnv.loop->exec(); 
    729                 if( catchExit() == qEnv.atom_close ) 
     729                if( catchExit( a1 ) == qEnv.atom_close ) 
    730730                    widget->hide(); 
    731731            } 
     
    745745        // Update. 
    746746        qEnv.loop->processEvents(); 
    747         catchExit(); 
     747        catchExit( a1 ); 
    748748    } 
    749749} 
     
    796796            // Update. 
    797797            qEnv.loop->processEvents(); 
    798             catchExit(); 
     798            catchExit( a1 ); 
    799799        } 
    800800    }