GLib: замена устаревших функций в более новой версии glib - PullRequest
0 голосов
/ 16 июня 2020

недавно мы планировали обновить библиотеку glib до последней версии: 2.64

Мы собрали библиотеку и пытаемся использовать ее в нашей инфраструктуре сборки. Во время сборки мы получаем ошибки: -

error: 'g_mem_chunk_alloc0' is deprecated
error: 'g_mem_chunk_free' is deprecated
error: 'g_mem_chunk_alloc' is deprecated 
error: 'g_atexit' is deprecated 

Как найти замену этим устаревшим функциям в более новой версии glib?

1 Ответ

0 голосов
/ 19 июня 2020
error: 'g_mem_chunk_alloc0' is deprecated
error: 'g_mem_chunk_free' is deprecated
error: 'g_mem_chunk_alloc' is deprecated 

API g_mem_chunk_*() были устаревшими в 2005 (15 лет go), и все упоминания о них были удалены из документации в 2011 (9 лет go).

Я не думаю, что разумно хранить документацию по устаревшим функциям в течение 15 лет (это вызовет больше путаницы, чем решит).

GSlice API является заменой GMemChunk. В частности: * g_mem_chunk_alloc0()g_slice_alloc0() * g_mem_chunk_free()g_slice_free() * g_mem_chunk_alloc()g_slice_alloc()

Это не будет заменой устаревших API 1: 1, иначе разработчики в то время могли избежать отказа от этих API. Вероятно, вам придется переделать свой код.


error: 'g_atexit' is deprecated 

В документации для g_atexit() объясняется, что для него нет замены:

Поведение atexit () в контексте динамически загружаемых модулей формально не определено и сильно варьируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...