Use stack-allocated StringInfoData

Поиск
Список
Период
Сортировка
От Mats Kindahl
Тема Use stack-allocated StringInfoData
Дата
Msg-id 4379aac8-26f1-42f2-a356-ff0e886228d3@gmail.com
обсуждение исходный текст
Ответы Re: Use stack-allocated StringInfoData
Список pgsql-hackers

Hi all,

While working on other things I noted that we have a lot of cases where a StringInfo instance is allocated dynamically even when it is either thrown away or destroyed at the end, which seems unnecessary, that is, instead of using:

       StringInfo info = makeStringInfo();
       ...
       appendStringInfo(info, ...);
       ...
       return info->data;

We can use

       StringInfoData info;
       initStringInfo(&info);
       ...
       appendStringInfo(&info, ...);
       ...
       return info.data;

It was corrected in an earlier commit, but that seems to have been removed so we still have a lot of these cases.

I created a semantic patch to capture most of these cases, which is present in [1], but this is a slightly modified version that might be interesting to include regardless of other changes. The patch is applied and one case that couldn't be matched is manually fixed.

[1]: https://www.postgresql.org/message-id/8895cba9-48cf-40fe-9c47-9b43ec6b2ab3%40gmail.com

Best wishes,
Mats Kindahl

Вложения

В списке pgsql-hackers по дате отправления: