Changeset 2290 for trunk/src/kash/exec.c


Ignore:
Timestamp:
Feb 27, 2009, 5:08:07 AM (16 years ago)
Author:
bird
Message:

kash: malloc/free/friends gets a psh.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kash/exec.c

    r1233 r2290  
    213213                initshellproc(psh);
    214214                setinputfile(psh, cmd, 0);
    215                 psh->commandname = psh->arg0 = savestr(argv[0]);
     215                psh->commandname = psh->arg0 = savestr(psh, argv[0]);
    216216#ifdef EXEC_HASH_BANG_SCRIPT
    217217                pgetc(psh); pungetc(psh);               /* fill up input buffer */
     
    296296                error(psh, "Bad #! line");
    297297        for (ap2 = argv ; *ap2++ != NULL ; );
    298         new = ckmalloc(i + ((char *)ap2 - (char *)argv));
     298        new = ckmalloc(psh, i + ((char *)ap2 - (char *)argv));
    299299        ap = newargs, ap2 = new;
    300300        while ((i -= sizeof (char **)) >= 0)
     
    868868                             psh->builtinloc >= firstchange)) {
    869869                                *pp = cmdp->next;
    870                                 ckfree(cmdp);
     870                                ckfree(psh, cmdp);
    871871                        } else {
    872872                                pp = &cmdp->next;
     
    908908                        if (cmdp->cmdtype == CMDFUNCTION) {
    909909                                *pp = cmdp->next;
    910                                 freefunc(cmdp->param.func);
    911                                 ckfree(cmdp);
     910                                freefunc(psh, cmdp->param.func);
     911                                ckfree(psh, cmdp);
    912912                        } else {
    913913                                pp = &cmdp->next;
     
    952952        if (add && cmdp == NULL) {
    953953                INTOFF;
    954                 cmdp = *pp = ckmalloc(sizeof (struct tblentry) - ARB
     954                cmdp = *pp = ckmalloc(psh, sizeof (struct tblentry) - ARB
    955955                                        + strlen(name) + 1);
    956956                cmdp->next = NULL;
     
    976976        cmdp = *lastcmdentry;
    977977        *lastcmdentry = cmdp->next;
    978         ckfree(cmdp);
     978        ckfree(psh, cmdp);
    979979        INTON;
    980980}
     
    10131013        if (cmdp->cmdtype != CMDSPLBLTIN) {
    10141014                if (cmdp->cmdtype == CMDFUNCTION) {
    1015                         freefunc(cmdp->param.func);
     1015                        freefunc(psh, cmdp->param.func);
    10161016                }
    10171017                cmdp->cmdtype = entry->cmdtype;
     
    10271027
    10281028void
    1029 defun(shinstance *psh,char *name, union node *func)
     1029defun(shinstance *psh, char *name, union node *func)
    10301030{
    10311031        struct cmdentry entry;
     
    10331033        INTOFF;
    10341034        entry.cmdtype = CMDFUNCTION;
    1035         entry.u.func = copyfunc(func);
     1035        entry.u.func = copyfunc(psh, func);
    10361036        addcmdentry(psh, name, &entry);
    10371037        INTON;
     
    10501050        if ((cmdp = cmdlookup(psh, name, 0)) != NULL &&
    10511051            cmdp->cmdtype == CMDFUNCTION) {
    1052                 freefunc(cmdp->param.func);
     1052                freefunc(psh, cmdp->param.func);
    10531053                delete_cmd_entry(psh);
    10541054                return (0);
Note: See TracChangeset for help on using the changeset viewer.