remove unused files
[platform/upstream/binutils.git] / gprof / gmon_io.c
index 4639932..3eb4c84 100644 (file)
@@ -1,7 +1,6 @@
 /* gmon_io.c - Input and output from/to gmon.out files.
 
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1999-2014 Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
 
@@ -21,6 +20,7 @@
    02110-1301, USA.  */
 \f
 #include "gprof.h"
+#include "binary-io.h"
 #include "search_list.h"
 #include "source.h"
 #include "symtab.h"
@@ -300,9 +300,7 @@ gmon_out_read (const char *filename)
   if (strcmp (filename, "-") == 0)
     {
       ifp = stdin;
-#ifdef SET_BINARY
       SET_BINARY (fileno (stdin));
-#endif
     }
   else
     {
@@ -493,11 +491,14 @@ gmon_out_read (const char *filename)
 
       if (!histograms)
        {
-         histograms = xmalloc (sizeof (struct histogram));
+         num_histograms = 1;
+         histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
          histograms->lowpc = tmp.low_pc;
          histograms->highpc = tmp.high_pc;
          histograms->num_bins = hist_num_bins;
-         histograms->sample = xmalloc (hist_num_bins * sizeof (int));
+         hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
+           / hist_num_bins;
+         histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
          memset (histograms->sample, 0, 
                  hist_num_bins * sizeof (int));
        }
@@ -549,8 +550,6 @@ gmon_out_read (const char *filename)
          cg_tally (from_pc, self_pc, count);
        }
 
-      fclose (ifp);
-
       if (hz == HZ_WRONG)
        {
          /* How many ticks per second?  If we can't tell, report
@@ -571,6 +570,9 @@ gmon_out_read (const char *filename)
       done (1);
     }
 
+  if (ifp != stdin)
+    fclose (ifp);
+
   if (output_style & STYLE_GMON_INFO)
     {
       printf (_("File `%s' (version %d) contains:\n"),