aboutsummaryrefslogtreecommitdiff
path: root/perf
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2011-01-01 18:33:10 -0800
committerArjan van de Ven <arjan@linux.intel.com>2011-01-01 18:33:10 -0800
commit4855aeab0c64dd65412d711b6c2ce203e79329d7 (patch)
treec442bae358840fd6cfabe910db8b1f34bd3e2dd9 /perf
parent12e1791940062df5db3e949503c5bd5ab5a1fa22 (diff)
downloadpowertop-4855aeab0c64dd65412d711b6c2ce203e79329d7.tar.gz
fix some valgrind warnings by just simplifying the code a ton
Diffstat (limited to 'perf')
-rw-r--r--perf/perf.cpp19
1 files changed, 5 insertions, 14 deletions
diff --git a/perf/perf.cpp b/perf/perf.cpp
index dc4968b..29e464c 100644
--- a/perf/perf.cpp
+++ b/perf/perf.cpp
@@ -47,24 +47,15 @@
static int get_trace_type(const char *eventname)
{
- static int once = 0;
- ifstream file;
+ string str;
int this_trace;
- char filename[4096];
- sprintf(filename, "/sys/kernel/debug/tracing/events/%s/id", eventname);
- file.open(filename, ios::in);
- if (!file && !once) {
- cout << "Invalid trace type " << eventname << "\n";
- once++;
+ str = read_sysfs_string("/sys/kernel/debug/tracing/events/%s/id", eventname);
+ if (str.length() < 1)
return -1;
- }
-
- file >> this_trace;
-
- file.close();
+ this_trace = strtoull(str.c_str(), NULL, 10);
return this_trace;
}
@@ -178,12 +169,12 @@ void perf_event::set_cpu(int _cpu)
perf_event::perf_event(const char *event_name, int _cpu, int buffer_size)
{
name = NULL;
- set_event_name(event_name);
perf_fd = -1;
bufsize = buffer_size;
cpu = _cpu;
perf_mmap = NULL;
trace_type = 0;
+ set_event_name(event_name);
}
perf_event::perf_event(void)