1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

fix a couple of (system vm frame) accesses on boot errors

* libguile/backtrace.c (display_error_body): Don't look up the
  frame-source if Guile isn't initialized yet.  Fixes display-error
  before boot has finished.

* libguile/throw.c (handler_message): Likewise, don't backtrace before
  boot has finished, because we can't load (system vm frame).
This commit is contained in:
Andy Wingo 2011-02-09 23:13:53 +01:00
parent 5a5885215a
commit c7c2d87547
2 changed files with 4 additions and 3 deletions

View file

@ -1,5 +1,5 @@
/* Printing of backtraces and error messages /* Printing of backtraces and error messages
* Copyright (C) 1996,1997,1998,1999,2000,2001, 2003, 2004, 2006, 2009, 2010 Free Software Foundation * Copyright (C) 1996,1997,1998,1999,2000,2001, 2003, 2004, 2006, 2009, 2010, 2011 Free Software Foundation
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License * modify it under the terms of the GNU Lesser General Public License
@ -200,7 +200,8 @@ display_error_body (struct display_error_args *a)
if (SCM_FRAMEP (a->frame)) if (SCM_FRAMEP (a->frame))
{ {
source = scm_frame_source (a->frame); if (scm_initialized_p)
source = scm_frame_source (a->frame);
if (!scm_is_symbol (pname) && !scm_is_string (pname)) if (!scm_is_symbol (pname) && !scm_is_string (pname))
pname = scm_procedure_name (scm_frame_procedure (a->frame)); pname = scm_procedure_name (scm_frame_procedure (a->frame));
} }

View file

@ -404,7 +404,7 @@ handler_message (void *handler_data, SCM tag, SCM args)
SCM parts = SCM_CADDR (args); SCM parts = SCM_CADDR (args);
SCM rest = SCM_CADDDR (args); SCM rest = SCM_CADDDR (args);
if (SCM_BACKTRACE_P && scm_is_true (stack)) if (SCM_BACKTRACE_P && scm_is_true (stack) && scm_initialized_p)
{ {
SCM highlights; SCM highlights;