summaryrefslogtreecommitdiffstats
path: root/linux/LinuxProcessList.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-02-20 14:52:10 -0200
committerHisham Muhammad <hisham@gobolinux.org>2015-02-23 01:13:40 -0300
commit9780c312f40633a2ce23300cc76faf64e07a87ed (patch)
tree1d04f7070e5183f6f9aad77c91d4d81025868a24 /linux/LinuxProcessList.c
parentcce2202a1ffdce2d6d775e3d0d5ced092d823598 (diff)
Fix allocation of processes. Closes #166.
Conflicts: Process.c Process.h ProcessList.c ScreenManager.c linux/LinuxProcessList.c
Diffstat (limited to 'linux/LinuxProcessList.c')
-rw-r--r--linux/LinuxProcessList.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c
index c2d3fa7c..2bce78e5 100644
--- a/linux/LinuxProcessList.c
+++ b/linux/LinuxProcessList.c
@@ -319,6 +319,7 @@ static void LinuxProcessList_readCGroupFile(Process* process, const char* dirnam
int nFields;
char** fields = String_split(trimmed, ':', &nFields);
free(trimmed);
+ free(process->cgroup);
if (nFields >= 3) {
process->cgroup = strndup(fields[2] + 1, 10);
} else {
@@ -464,7 +465,7 @@ static bool LinuxProcessList_processEntries(ProcessList* this, const char* dirna
process = existingProcess;
assert(process->pid == pid);
} else {
- process = Process_new(this);
+ process = (Process*) LinuxProcess_new(settings, this);
assert(process->comm == NULL);
process->pid = pid;
process->tgid = parent ? parent->pid : pid;
@@ -568,7 +569,7 @@ static bool LinuxProcessList_processEntries(ProcessList* this, const char* dirna
if (existingProcess)
ProcessList_remove(this, process);
else
- Process_delete((Object*)process);
+ LinuxProcess_delete((Object*)process);
}
}
closedir(dir);