From ea4e44934085a54f6c177855d4ae5b22cfa3cff7 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Tue, 6 May 1997 23:38:31 +0000 Subject: [PATCH] * sim-trace.c (trace_uninstall): Don't close a file twice. --- sim/common/ChangeLog | 4 ++++ sim/common/sim-trace.c | 13 +++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 76dfbb4cc32..b9332d8121c 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,7 @@ +Tue May 6 16:38:16 1997 Doug Evans + + * sim-trace.c (trace_uninstall): Don't close a file twice. + Tue May 6 06:14:01 1997 Mike Meissner * sim-trace.c (toplevel): Include bfd.h. diff --git a/sim/common/sim-trace.c b/sim/common/sim-trace.c index a10be4a1f59..a2eec25a9c6 100644 --- a/sim/common/sim-trace.c +++ b/sim/common/sim-trace.c @@ -286,13 +286,22 @@ trace_install (SIM_DESC sd) static void trace_uninstall (SIM_DESC sd) { - int i; + int i,j; for (i = 0; i < MAX_NR_PROCESSORS; ++i) { TRACE_DATA *data = CPU_TRACE_DATA (STATE_CPU (sd, i)); if (TRACE_FILE (data) != NULL) - fclose (TRACE_FILE (data)); + { + /* If output from different cpus is going to the same file, + avoid closing the file twice. */ + for (j = 0; j < i; ++j) + if (TRACE_FILE (CPU_TRACE_DATA (STATE_CPU (sd, j))) + == TRACE_FILE (data)) + break; + if (i == j) + fclose (TRACE_FILE (data)); + } } } -- 2.30.2