• Nils Goroll's avatar
    Add a bitmask tracking SUB calls to detect recursions · fa3168ae
    Nils Goroll authored
    To allow dynamic SUB calls, we need to check for recursions at
    runtime, reflecting the compile time recursion check.
    
    We create a bitmask to note each dynamically called SUB by its unique
    number. To check for recursions, we only need to test if the
    respective bit for the sub number is already set.
    
    We only conduct this check if the track_call argument of
    vcl_call_method() is true. By setting this argument to the number of
    SUB references, we enable call tracking only for VCLs with dynamic SUB
    references (when (struct VCL_conf).nsub is non-zero).
    
    VCC already guarantees that static calls are loop free - so loops can
    only be introduced through dynamic SUB references.
    
    Call tracking with a bitmask was suggested by phk
    fa3168ae
Name
Last commit
Last update
..
compat Loading commit data...
tbl Loading commit data...
vapi Loading commit data...
Makefile.am Loading commit data...
generate.py Loading commit data...
libvcc.h Loading commit data...
miniobj.h Loading commit data...
vas.h Loading commit data...
vav.h Loading commit data...
vbh.h Loading commit data...
vbm.h Loading commit data...
vbm_test.c Loading commit data...
vcc_interface.h Loading commit data...
vcli.h Loading commit data...
vcli_serve.h Loading commit data...
vcs.h Loading commit data...
vct.h Loading commit data...
vcurses.h Loading commit data...
vdef.h Loading commit data...
venc.h Loading commit data...
vend.h Loading commit data...
vev.h Loading commit data...
vfil.h Loading commit data...
vfl.h Loading commit data...
vin.h Loading commit data...
vjsn.h Loading commit data...
vlu.h Loading commit data...
vmb.h Loading commit data...
vnum.h Loading commit data...
vpf.h Loading commit data...
vqueue.h Loading commit data...
vre.h Loading commit data...
vrnd.h Loading commit data...
vrt.h Loading commit data...
vsa.h Loading commit data...
vsb.h Loading commit data...
vsc_priv.h Loading commit data...
vsha256.h Loading commit data...
vsl_priv.h Loading commit data...
vsm_priv.h Loading commit data...
vss.h Loading commit data...
vsub.h Loading commit data...
vtcp.h Loading commit data...
vtim.h Loading commit data...
vtree.h Loading commit data...
vus.h Loading commit data...
vut.h Loading commit data...
vut_options.h Loading commit data...