mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-22 12:33:39 -08:00
fix coverity issue Missing varargs init or cleanup
This commit is contained in:
parent
6c8449b147
commit
a74094de9a
10 changed files with 27 additions and 5 deletions
|
|
@ -208,6 +208,7 @@ ecl_char_eq(cl_object x, cl_object y)
|
|||
if (ecl_char_eq(ecl_va_arg(ds), c)) {
|
||||
@(return ECL_NIL);
|
||||
}
|
||||
ecl_va_end(ds);
|
||||
}
|
||||
@(return ECL_T);
|
||||
} @)
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ si_safe_eval(cl_narg narg, cl_object form, cl_object env, ...)
|
|||
cl_object err_value;
|
||||
va_list args; va_start(args, env);
|
||||
err_value = va_arg(args, cl_object);
|
||||
va_end(args);
|
||||
return _ecl_funcall4(@'ext::safe-eval', form, env, err_value);
|
||||
}
|
||||
return _ecl_funcall3(@'ext::safe-eval', form, env);
|
||||
|
|
@ -98,6 +99,7 @@ si_string_to_object(cl_narg narg, cl_object string, ...)
|
|||
cl_object err_value;
|
||||
va_list args; va_start(args, string);
|
||||
err_value = va_arg(args, cl_object);
|
||||
va_end(args);
|
||||
return _ecl_funcall3(@'si::string-to-object', string, err_value);
|
||||
}
|
||||
return _ecl_funcall2(@'si::string-to-object', string);
|
||||
|
|
@ -110,6 +112,7 @@ si_signal_simple_error(cl_narg narg, cl_object condition, cl_object continuable,
|
|||
cl_object rest;
|
||||
ecl_va_start(args, format_args, narg, 4);
|
||||
rest = cl_grab_rest_args(args);
|
||||
ecl_va_end(args);
|
||||
return cl_apply(6, @'si::signal-simple-error', condition, continuable,
|
||||
format, format_args, rest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ user_function_dispatch(cl_narg narg, ...)
|
|||
fun = fun->instance.slots[fun->instance.length - 1];
|
||||
output = ecl_apply_from_stack_frame(frame, fun);
|
||||
ecl_stack_frame_close(frame);
|
||||
ecl_va_end(args);
|
||||
return output;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -104,12 +104,15 @@ void
|
|||
FEerror(const char *s, int narg, ...)
|
||||
{
|
||||
ecl_va_list args;
|
||||
cl_object rest;
|
||||
ecl_va_start(args, narg, narg, 0);
|
||||
ecl_enable_interrupts();
|
||||
rest = cl_grab_rest_args(args);
|
||||
ecl_va_end(args);
|
||||
funcall(4, @'si::universal-error-handler',
|
||||
ECL_NIL, /* not correctable */
|
||||
make_constant_base_string(s), /* condition text */
|
||||
cl_grab_rest_args(args));
|
||||
rest);
|
||||
_ecl_unexpected_return();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -208,7 +208,9 @@ monotonic(int s, int t, int narg, ecl_va_list nums)
|
|||
|
||||
#define MONOTONIC(i, j) (cl_narg narg, ...) \
|
||||
{ ecl_va_list nums; ecl_va_start(nums, narg, narg, 0); \
|
||||
return monotonic(i, j, narg, nums); }
|
||||
cl_object result = monotonic(i, j, narg, nums); \
|
||||
ecl_va_end(nums); \
|
||||
return result; }
|
||||
|
||||
cl_object @<= MONOTONIC( 1, 0)
|
||||
cl_object @>= MONOTONIC(-1, 0)
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ ecl_number_equalp(cl_object x, cl_object y)
|
|||
if (ecl_number_equalp(numi, ecl_va_arg(numb))) {
|
||||
@(return ECL_NIL);
|
||||
}
|
||||
ecl_va_end(numb);
|
||||
}
|
||||
@(return ECL_T);
|
||||
@)
|
||||
|
|
|
|||
|
|
@ -51,12 +51,15 @@ void
|
|||
CEpackage_error(const char *message, const char *continue_message, cl_object package, int narg, ...)
|
||||
{
|
||||
ecl_va_list args;
|
||||
cl_object arg;
|
||||
ecl_va_start(args, narg, narg, 0);
|
||||
arg = narg? cl_grab_rest_args(args) : cl_list(1,package);
|
||||
ecl_va_end(args);
|
||||
si_signal_simple_error(6,
|
||||
@'package-error',
|
||||
make_constant_base_string(continue_message),
|
||||
make_constant_base_string(message), /* format control */
|
||||
narg? cl_grab_rest_args(args) : cl_list(1,package),
|
||||
arg,
|
||||
@':package', package);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -439,6 +439,7 @@ mp_process_preset(cl_narg narg, cl_object process, cl_object function, ...)
|
|||
assert_type_process(process);
|
||||
process->process.function = function;
|
||||
process->process.args = cl_grab_rest_args(args);
|
||||
ecl_va_end(args);
|
||||
@(return process);
|
||||
}
|
||||
|
||||
|
|
@ -644,6 +645,7 @@ cl_object
|
|||
mp_process_run_function(cl_narg narg, cl_object name, cl_object function, ...)
|
||||
{
|
||||
cl_object process;
|
||||
cl_object rest;
|
||||
ecl_va_list args;
|
||||
ecl_va_start(args, function, narg, 2);
|
||||
if (narg < 2)
|
||||
|
|
@ -653,8 +655,10 @@ mp_process_run_function(cl_narg narg, cl_object name, cl_object function, ...)
|
|||
} else {
|
||||
process = mp_make_process(2, @':name', name);
|
||||
}
|
||||
rest = cl_grab_rest_args(args);
|
||||
ecl_va_end(args);
|
||||
cl_apply(4, @'mp::process-preset', process, function,
|
||||
cl_grab_rest_args(args));
|
||||
rest);
|
||||
return mp_process_enable(process);
|
||||
}
|
||||
|
||||
|
|
@ -672,6 +676,7 @@ mp_process_run_function_wait(cl_narg narg, ...)
|
|||
cl_sleep(wait);
|
||||
}
|
||||
}
|
||||
ecl_va_end(args);
|
||||
@(return process);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -386,5 +386,6 @@ print_lock(char *prefix, cl_object l, ...)
|
|||
fflush(stdout);
|
||||
ecl_giveup_spinlock(&lock);
|
||||
}
|
||||
va_end(args);
|
||||
}
|
||||
/*#define print_lock(a,b,c) (void)0*/
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
|
|||
va_list args; \
|
||||
va_start(args, lastarg); \
|
||||
frame->frame.base = (cl_object*)args; \
|
||||
va_end(args); \
|
||||
} else { \
|
||||
frame->frame.base = env->stack_top - narg; \
|
||||
}
|
||||
|
|
@ -207,7 +208,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
|
|||
frame->frame.t = t_frame; \
|
||||
frame->frame.env = env; \
|
||||
frame->frame.size = narg; \
|
||||
if (narg < ECL_C_ARGUMENTS_LIMIT) { \
|
||||
if (narg < ECL_C_ARGUMENTS_LIMIT) { \
|
||||
cl_object *p = frame->frame.base = env->values; \
|
||||
va_list args; \
|
||||
va_start(args, lastarg); \
|
||||
|
|
@ -215,6 +216,7 @@ extern cl_object si_constant_form_value _ECL_ARGS((cl_narg narg, cl_object form,
|
|||
*p = va_arg(args, cl_object); \
|
||||
++p; \
|
||||
} \
|
||||
va_end(args); \
|
||||
frame->frame.stack = (cl_object*)0x1; \
|
||||
} else { \
|
||||
frame->frame.base = env->stack_top - narg; \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue