ash: even smaller trap
code
function old new delta evalvar 1371 1373 +2 trapcmd 347 260 -87 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
e305c28285
commit
726e1a04f7
11
shell/ash.c
11
shell/ash.c
@ -4601,8 +4601,7 @@ forkchild(struct job *jp, union node *n, int mode)
|
|||||||
*
|
*
|
||||||
* Our solution: ONLY bare $(trap) or `trap` is special.
|
* Our solution: ONLY bare $(trap) or `trap` is special.
|
||||||
*/
|
*/
|
||||||
/* This is needed to prevent EXIT trap firing and such
|
/* This is needed to prevent EXIT trap firing and such */
|
||||||
* (trap_ptr will be freed in trapcmd()) */
|
|
||||||
trap_ptr = memcpy(xmalloc(sizeof(trap)), trap, sizeof(trap));
|
trap_ptr = memcpy(xmalloc(sizeof(trap)), trap, sizeof(trap));
|
||||||
}
|
}
|
||||||
clear_traps();
|
clear_traps();
|
||||||
@ -12271,14 +12270,18 @@ trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
|||||||
single_quote(tr),
|
single_quote(tr),
|
||||||
(signo == 0 ? "" : "SIG"),
|
(signo == 0 ? "" : "SIG"),
|
||||||
get_signame(signo));
|
get_signame(signo));
|
||||||
if (trap_ptr != trap)
|
/* trap_ptr != trap only if we are in special-cased `trap` code.
|
||||||
free(tr);
|
* In this case, we will exit very soon, no need to free(). */
|
||||||
|
/* if (trap_ptr != trap) */
|
||||||
|
/* free(tr); */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (trap_ptr != trap) {
|
if (trap_ptr != trap) {
|
||||||
free(trap_ptr);
|
free(trap_ptr);
|
||||||
trap_ptr = trap;
|
trap_ptr = trap;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user