mirror of
https://gitlab.com/eql/lqml.git
synced 2026-01-18 23:31:05 -08:00
add simple restart for errors during Qt event processing
This commit is contained in:
parent
cb968f2d92
commit
50ec472e30
5 changed files with 37 additions and 7 deletions
|
|
@ -74,11 +74,22 @@ static cl_object safe_eval(const char* lisp_code) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
void LQML::eval(const QString& lisp_code) {
|
||||
cl_object ret = safe_eval(lisp_code.toLatin1().constData());
|
||||
if (ecl_t_of(ret) == t_fixnum && (fix(ret) == EVAL_ERROR_VALUE)) {
|
||||
qDebug() << "Error evaluating " << lisp_code;
|
||||
exit(-1);
|
||||
static void safe_eval_debug(const char* lisp_code) {
|
||||
CL_CATCH_ALL_BEGIN(ecl_process_env()) {
|
||||
si_safe_eval(2, ecl_read_from_cstring((char*)lisp_code), ECL_NIL);
|
||||
}
|
||||
CL_CATCH_ALL_END;
|
||||
}
|
||||
|
||||
void LQML::eval(const QString& lisp_code, bool slime) {
|
||||
if (slime) {
|
||||
safe_eval_debug(lisp_code.toLatin1().constData());
|
||||
} else {
|
||||
cl_object ret = safe_eval(lisp_code.toLatin1().constData());
|
||||
if (ecl_t_of(ret) == t_fixnum && (fix(ret) == EVAL_ERROR_VALUE)) {
|
||||
qDebug() << "Error evaluating " << lisp_code;
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue