bc: do not allocate line editing state until needed
function old new delta xc_read_line 324 353 +29 free_line_input_t 34 39 +5 xc_vm_init 656 640 -16 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 34/-16) Total: 18 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -1417,15 +1417,19 @@ void FAST_FUNC show_history(const line_input_t *st)
 | 
			
		||||
		printf("%4d %s\n", i, st->history[i]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# if ENABLE_FEATURE_EDITING_SAVEHISTORY
 | 
			
		||||
void FAST_FUNC free_line_input_t(line_input_t *n)
 | 
			
		||||
{
 | 
			
		||||
# if ENABLE_FEATURE_EDITING_SAVEHISTORY
 | 
			
		||||
	int i = n->cnt_history;
 | 
			
		||||
	while (i > 0)
 | 
			
		||||
		free(n->history[--i]);
 | 
			
		||||
#endif
 | 
			
		||||
	free(n);
 | 
			
		||||
	if (n) {
 | 
			
		||||
		int i = n->cnt_history;
 | 
			
		||||
		while (i > 0)
 | 
			
		||||
			free(n->history[--i]);
 | 
			
		||||
		free(n);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
# else
 | 
			
		||||
/* #defined to free() in libbb.h */
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if ENABLE_FEATURE_EDITING_SAVEHISTORY
 | 
			
		||||
/* We try to ensure that concurrent additions to the history
 | 
			
		||||
@@ -1506,7 +1510,7 @@ void save_history(line_input_t *st)
 | 
			
		||||
{
 | 
			
		||||
	FILE *fp;
 | 
			
		||||
 | 
			
		||||
	if (!st->hist_file)
 | 
			
		||||
	if (!st || !st->hist_file)
 | 
			
		||||
		return;
 | 
			
		||||
	if (st->cnt_history <= st->cnt_history_in_file)
 | 
			
		||||
		return;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user