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
>>
>>