1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
--- mpgraph.c.orig Tue Apr 20 16:36:18 1993
+++ mpgraph.c Mon Jun 3 18:26:17 2002
@@ -23,8 +23,8 @@
#define UNUSED -1
#define USED 0
-FILE *stout = stdout;
-FILE *sterr = stderr;
+/* FILE *stout = stdout; */
+/* FILE *sterr = stderr; */
extern mpcell hmem[];
extern char *strdup();
@@ -114,7 +114,7 @@
vertex from, to;
mpdata data;
int mark;
- struct edge_struct *save
+ struct edge_struct *save;
} *edge, edge_item;
edge
--- mpgraph.c.orig Fri Apr 7 13:39:45 2006
+++ mpgraph.c Fri Apr 7 01:45:35 2006
@@ -836,7 +836,15 @@
while (!mp_null(chain)) {
vertex v;
s = (mpsym) mp_car(chain);
- v = make_vertex(fn_name(s), count, fn_lcount(s), fn_parents(s));
+ if ( s == NULL) {
+ chain = (mpcell) mp_cdr(chain);
+ continue;
+ }
+ if (fn_name(s))
+ v = make_vertex(fn_name(s), count, fn_lcount(s), fn_parents(s));
+ else
+ v = make_vertex("unknown", count, fn_lcount(s), fn_parents(s));
+
vpush(v, vset);
count += 1;
chain = (mpcell) mp_cdr(chain);
@@ -864,7 +872,11 @@
parent_name = fn_name((mpsym) mp_car(parent));
parent_data = (mpdata) mp_cdr(parent);
- vfrom = hlookup(parent_name);
+ if (parent_name == NULL) {
+ vfrom = hlookup("unknown");
+ } else {
+ vfrom = hlookup(parent_name);
+ }
if (vfrom == vto) {
vto->srefs += 1;
|