Annotation of 42BSD/ingres/source/ctlmod/resetp.c, revision 1.1.1.1

1.1       root        1: # include      "ctlmod.h"
                      2: # include      <ingres.h>
                      3: # include      <tree.h>
                      4: # include      <sccs.h>
                      5: 
                      6: SCCSID(@(#)resetp.c    7.1     2/5/81)
                      7: 
                      8: /*
                      9: **  RESETP -- reset parameters from call.
                     10: **
                     11: **     This must be called after an initp-setp-call sequence to
                     12: **     reclaim the memory gathered by the initp.  It can also be
                     13: **     used in an initp-setp sequence to clean up if an error is
                     14: **     found.
                     15: **
                     16: **     Parameters:
                     17: **             none.
                     18: **
                     19: **     Returns:
                     20: **             none.
                     21: **
                     22: **     Side Effects:
                     23: **             Restores the old context.
                     24: **             Reclaims space from Qbuf.
                     25: **
                     26: **     Trace Flags:
                     27: **             4.4 - 4.7
                     28: */
                     29: 
                     30: resetp()
                     31: {
                     32:        extern char     *Proc_name;
                     33: 
                     34: # ifdef xCTR1
                     35:        if (tTf(4, 4))
                     36:                printf("resetp: ctx_new=%d _init=%d _link=%x _pmark=%d _cmark=%d\n",
                     37:                    Ctx.ctx_new, Ctx.ctx_init, Ctx.ctx_link, Ctx.ctx_pmark,
                     38:                    Ctx.ctx_cmark);
                     39: # endif
                     40: 
                     41:        /* don't do anything if no matching "initp" call */
                     42:        if (!Ctx.ctx_new)
                     43:                return;
                     44: 
                     45:        /*
                     46:        **      The 'freebuf' to ctx_cmark will also deallocate
                     47:        **      any parameters, since ctx_pmark >= ctx_cmark
                     48:        **      always.
                     49:        */
                     50: 
                     51:        if (Ctx.ctx_link != NULL)
                     52:                bmove((char *) Ctx.ctx_link, (char *) &Ctx, Ctx.ctx_size);
                     53: # ifdef xCM_DEBUG
                     54:        if (Ctx.ctx_pmark < Ctx.ctx_cmark)
                     55:                syserr("resetp: pmark %d cmark %d", Ctx.ctx_pmark, Ctx.ctx_cmark);
                     56: # endif
                     57:        freebuf(Qbuf, Ctx.ctx_cmark);
                     58:        tT = Ctx.ctx_tvect;
                     59:        Proc_name = Ctx.ctx_name;
                     60: # ifdef xCTR1
                     61:        if (tTf(4, 5))
                     62:                lprintf("resetp: free %d\n", Ctx.ctx_cmark);
                     63: # endif
                     64: 
                     65:        /*
                     66:        **      If there was a Qt associated with this context,
                     67:        **      restore it also.  If not, but there was a Qt
                     68:        **      associated with the context we just deallocated,
                     69:        **      set Qt to be 'unallocated'.
                     70:        */
                     71:        if (Ctx.ctx_qt != NULL)
                     72:        {
                     73:                /* first free any descriptors */
                     74:                clrrange();
                     75:                bmove((char *) Ctx.ctx_qt, (char *) &Qt, sizeof Qt);
                     76:                free(Ctx.ctx_qt);
                     77:                Ctx.ctx_qt = NULL;
                     78:        }
                     79:        else if (Qt.qt_ctx == NULL)
                     80:                Qt.qt_active = 0;
                     81: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.