Re: [PATCH v1 1/5] libperf cpumap: Correct reference count for perf_cpu_map__merge()
From: Adrian Hunter
Date: Fri Oct 11 2024 - 05:46:39 EST
On 11/10/24 12:40, Leo Yan wrote:
>
>
> On 10/11/24 10:34, Leo Yan wrote:
>
>>> The 2 non-test uses of perf_cpu_map__merge both do:
>>>
>>> a = perf_cpu_map__merge(a, b);
>>>
>>> so another way to make the API less misleading would be
>>> to introduce:
>>>
>>> err = perf_cpu_map__merge_in(&a, b);
>>>
>>> where:
>>>
>>> int perf_cpu_map__merge_in(struct perf_cpu_map **orig, struct perf_cpu_map *other)
>>> {
>>> struct perf_cpu_map *result = perf_cpu_map__merge(*orig, other);
>>>
>>> if (!result)
>>> return -ENOMEM;
>>>
>>> *orig = result;
>>> return 0;
>>> }
>>>
>>> without any changes to perf_cpu_map__merge().
>>
>> Just wandering why we cannot do the same thing for the perf_cpu_map__merge()
>> function?
>>
>> int perf_cpu_map__merge_in(struct perf_cpu_map **orig,
>> struct perf_cpu_map *other)
>
> Sorry for typo and spamming. The above suggested definition is for perf_cpu_map__merge().
Yes - there is not much reason to have perf_cpu_map__merge()
and perf_cpu_map__merge_in().
>
>
>> This can allow us to avoid any confusion in the first place. And we don't need
>> to maintain two functions for the same thing.
>>
>> Thanks,
>> Leo
>>
>>