From 1301c11251aae693da684587c98d8b66c830185d Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Fri, 25 Aug 2006 20:26:12 +0000 Subject: [PATCH] use local vars instead of kargs directly in proc_args --- src/os/darwin/darwin_sigar.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/os/darwin/darwin_sigar.c b/src/os/darwin/darwin_sigar.c index fc399d75..bfd397d6 100644 --- a/src/os/darwin/darwin_sigar.c +++ b/src/os/darwin/darwin_sigar.c @@ -976,28 +976,31 @@ int sigar_proc_args_get(sigar_t *sigar, sigar_pid_t pid, sigar_proc_args_t *procargs) { #if defined(DARWIN) - int status; + int status, count; sigar_kern_proc_args_t kargs; + char *ptr, *end; status = sigar_kern_proc_args_get(pid, &kargs); if (status != SIGAR_OK) { return status; } + count = kargs.count; + ptr = kargs.ptr; + end = kargs.end; + sigar_proc_args_create(procargs); - while ((kargs.ptr < kargs.end) && - (kargs.count-- > 0)) - { - int alen = strlen(kargs.ptr)+1; + while ((ptr < end) && (count-- > 0)) { + int alen = strlen(ptr)+1; char *arg = malloc(alen); SIGAR_PROC_ARGS_GROW(procargs); - memcpy(arg, kargs.ptr, alen); + memcpy(arg, ptr, alen); procargs->data[procargs->number++] = arg; - kargs.ptr += alen; + ptr += alen; } return SIGAR_OK;