Changeset 31 for trunk/orca/context.c

Show
Ignore:
Timestamp:
02/08/06 01:35:49 (3 years ago)
Author:
krobillard
Message:

Overflow of the quick hold stack is now caught.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/orca/context.c

    r26 r31  
    245245{ 
    246246    ctx->wblkN = orBlockN( orMakeBlock( size ) ); 
     247 
     248    // Assuming caller checks orRefAvail. 
    247249    orRefPush( OT_BLOCK, ctx->wblkN ); 
    248250    ctx->vblkN = orBlockN( orMakeBlock( size ) ); 
     
    293295    int wcount; 
    294296 
     297 
     298    if( ! orRefAvail( 4 ) ) 
     299        return 0; 
    295300 
    296301    wcount = 0; 
     
    424429 
    425430 
     431    if( ! orRefAvail( 3 ) ) 
     432        return -1; 
     433 
    426434    orRefPush( OT_BLOCK, blkN ); 
    427435 
     
    740748 
    741749 
     750    orRefAvailErr( 2 ) 
    742751    orRefPush( OT_BLOCK, a2->index ); 
    743752 
     
    810819    // Still, 'foreach is faster than 'forall (probably because using paths 
    811820    // is so slow). 
     821 
     822    orRefAvailErr( 4 ) 
    812823 
    813824    // Must hold body & a2 in case orMakeContext() or orCopyBlock() trigger 
     
    10361047    OIndex bi   = (a1 + 2)->series.it; 
    10371048    OValue saveA1; 
     1049 
     1050 
     1051    orRefAvailErr( 2 ) 
    10381052 
    10391053    if( a1->type == OT_BLOCK )