summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/trace/tr_dump.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/drivers/trace/tr_dump.c b/src/gallium/drivers/trace/tr_dump.c
index 48c8914f7bb..826ce5bc1ba 100644
--- a/src/gallium/drivers/trace/tr_dump.c
+++ b/src/gallium/drivers/trace/tr_dump.c
@@ -57,6 +57,7 @@
#include "tr_texture.h"
+static boolean close_stream = FALSE;
static FILE *stream = NULL;
static unsigned refcount = 0;
pipe_static_mutex(call_mutex);
@@ -228,8 +229,11 @@ trace_dump_trace_close(void)
{
if(stream) {
trace_dump_writes("</trace>\n");
- fclose(stream);
- stream = NULL;
+ if (close_stream) {
+ fclose(stream);
+ close_stream = FALSE;
+ stream = NULL;
+ }
refcount = 0;
call_no = 0;
}
@@ -261,12 +265,15 @@ trace_dump_trace_begin(void)
if(!stream) {
if (strcmp(filename, "stderr") == 0) {
+ close_stream = FALSE;
stream = stderr;
}
else if (strcmp(filename, "stdout") == 0) {
+ close_stream = FALSE;
stream = stdout;
}
else {
+ close_stream = TRUE;
stream = fopen(filename, "wt");
if (!stream)
return FALSE;