diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2015-02-20 14:52:10 -0200 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2015-02-23 01:13:40 -0300 |
commit | 9780c312f40633a2ce23300cc76faf64e07a87ed (patch) | |
tree | 1d04f7070e5183f6f9aad77c91d4d81025868a24 /Process.c | |
parent | cce2202a1ffdce2d6d775e3d0d5ced092d823598 (diff) |
Fix allocation of processes. Closes #166.
Conflicts:
Process.c
Process.h
ProcessList.c
ScreenManager.c
linux/LinuxProcessList.c
Diffstat (limited to 'Process.c')
-rw-r--r-- | Process.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -45,6 +45,8 @@ in the source distribution for its full text. #include <sys/types.h> +typedef struct Settings_ Settings; + #define PROCESS_FLAG_IO 1 #define PROCESS_FLAG_IOPRIO 2 #define PROCESS_FLAG_OPENVZ 4 @@ -643,14 +645,12 @@ static void Process_display(Object* cast, RichString* out) { assert(out->chlen > 0); } -void Process_delete(Object* cast) { - Process* this = (Process*) cast; +void Process_done(Process* this) { assert (this != NULL); free(this->comm); #ifdef HAVE_CGROUP free(this->cgroup); #endif - free(this); } ObjectClass Process_class = { @@ -660,9 +660,7 @@ ObjectClass Process_class = { .compare = Process_compare }; -Process* Process_new(struct ProcessList_ *pl) { - Process* this = calloc(1, sizeof(Process)); - Object_setClass(this, Class(Process)); +void Process_init(Process* this, struct Settings_* settings, struct ProcessList_* pl) { this->pid = 0; this->pl = pl; this->tag = false; @@ -678,7 +676,6 @@ Process* Process_new(struct ProcessList_ *pl) { this->cgroup = NULL; #endif if (Process_getuid == -1) Process_getuid = getuid(); - return this; } void Process_toggleTag(Process* this) { |