[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aa5f0be5-c939-3c26-9d2a-3a073449bf98@linux.intel.com>
Date: Tue, 25 May 2021 15:39:39 +0800
From: "Jin, Yao" <yao.jin@...ux.intel.com>
To: Jiri Olsa <jolsa@...hat.com>
Cc: acme@...nel.org, jolsa@...nel.org, peterz@...radead.org,
mingo@...hat.com, alexander.shishkin@...ux.intel.com,
Linux-kernel@...r.kernel.org, ak@...ux.intel.com,
kan.liang@...el.com, yao.jin@...el.com
Subject: Re: [PATCH v1 4/5] perf mem: Support record for hybrid platform
Hi Jiri,
>>> rec_argv = calloc(rec_argc + 1, sizeof(char *));
>>> if (!rec_argv)
>>> return -1;
>>> + /*
>>> + * Save the allocated event name strings.
>>> + */
>>> + rec_tmp = calloc(rec_argc + 1, sizeof(char *));
>>> + if (!rec_tmp) {
>>> + free(rec_argv);
>>> + return -1;
>>> + }
>>
>> why not do strdup on all of them and always call free instead?
>> that would get rid of the rec_tmp and tmp_nr
>>
>
> That is also one method. Let me try it.
>
If we do strdup on all of them, such as,
if (e->record)
rec_argv[i++] = strdup("-W");
rec_argv[i++] = strdup("-d");
if (mem->phys_addr)
rec_argv[i++] = strdup("--phys-data");
....
That looks too much strdup used here. So I choose to use a rec_tmp[] to record the allocated string
and free them before exit the function.
Or we record the start index and end index in rec_argv[] for the allocated event string, use strdup
on them and call free before exit the function.
What do you think?
Thanks
Jin Yao
Powered by blists - more mailing lists