From 19c327a5552ccc03a50168e8f751dc98e1775e6d Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Sun, 26 Mar 2000 17:11:34 +0200
Subject: [PATCH] Yet more robustness when describing backtraces.

Rev: lib/master.pike.in:1.108
---
 lib/master.pike.in | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/lib/master.pike.in b/lib/master.pike.in
index 49af7bbcd4..bdc6ffcafe 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1,6 +1,6 @@
 /* -*- Pike -*-
  *	
- * $Id: master.pike.in,v 1.107 2000/03/25 21:28:37 hubbe Exp $
+ * $Id: master.pike.in,v 1.108 2000/03/26 15:11:34 mast Exp $
  * 
  * Master-file for Pike.
  *
@@ -1331,9 +1331,14 @@ string stupid_describe(mixed m, int maxlen)
       if(string tmp=describe_program(m)) return tmp;
       if(object o=function_object(m))
 	return (describe_object(o)||"")+"->"+function_name(m);
-      else
-	return function_name(m) || "function";
-      
+      else {
+	string tmp;
+	if (catch (tmp = function_name(m)))
+	  // The function object has probably been destructed.
+	  return "function";
+	return tmp || "function";
+      }
+
     case "program":
       if(string tmp=describe_program(m)) return tmp;
       return typ;
@@ -1585,7 +1590,7 @@ string describe_backtrace(mixed trace, void|int linewidth)
 	  }
 	}
       }) {
-	row += sprintf("Error indexing backtrace line %d (%O)!", e, err[1]);
+	row += sprintf("Error indexing backtrace line %d: %s (%O)!", e, err[0], err[1]);
       }
       ret += row + "\n";
     }
-- 
GitLab