-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
free() и NULL в функциях pony_free_* #15
Comments
Ты прав насчёт imu, я торопился и не стал переделывать без необходимости.
Про gps ты тоже прав, только, кажется, у меня была причина так сделать, но
сейчас вспомнить не могу. Можно попробовать переделать и посмотреть, что
будет.
On Saturday, August 3, 2019, osenmukdav ***@***.***> wrote:
На сейчас в функциях освобождения частей pony есть 3 варианта
освобождения самих частей:
.
1
В самой же функции imu освобождается и ссылка приравнивается NULL'у.
imu есть один, доступ через пони (возможно лучше сделать через параметр
функции)
.
2
В самой же функции с gnss'ом ничего не делается, это необходимо, так как
gnss'ы лежат динамическим массивом, который потом освобождается разом, и
общей ссылке присваивается NULL.
gnss'ов много, доступ к текущему через параметр функции
.
3
glo - аналогично
В самой же функции gps освобождается, но не приравнивается NULL'у, NULL'у
приравнивается во внешней функции. Это разделение выглядит не очень
логично, т.к. после освобождения памяти приравнивание NULL'у по идее не
может навредить утечками памяти и т.д.
gps'ов много, но в рамках одного gnss'а один, доступ к текущему через
параметр функции
.
Итак,
во-первых, третий вариант лучше убрать (привести к первому или второму),
так как он неоправданно множит стандарты, что не очень
во-вторых, возможно первый вариант лучше привести ко второму, на случай,
если внезапно нужно будет делать несколько imu (ну мало ли)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.<
|
Я предлагаю:
Что думаешь? |
На сейчас в функциях освобождения частей pony есть 3 варианта освобождения самих частей:
.
1
pony/pony.c
Lines 274 to 275 in 1d0f768
В самой же функции imu освобождается и ссылка приравнивается NULL'у.
imu есть один, доступ через пони (возможно лучше сделать через параметр функции)
.
2
pony/pony.c
Line 506 in 1d0f768
В самой же функции с gnss'ом ничего не делается, это необходимо, так как gnss'ы лежат динамическим массивом, который потом освобождается разом, и общей ссылке присваивается NULL.
gnss'ов много, доступ к текущему через параметр функции
.
3
pony/pony.c
Line 378 in 1d0f768
glo - аналогично
В самой же функции gps освобождается, но не приравнивается NULL'у, NULL'у приравнивается во внешней функции. Это разделение выглядит не очень логично, т.к. после освобождения памяти приравнивание NULL'у по идее не может навредить утечками памяти и т.д.
gps'ов много, но в рамках одного gnss'а один, доступ к текущему через параметр функции
.
Итак,
во-первых, третий вариант лучше убрать (привести к первому или второму), так как он неоправданно множит стандарты, что не очень
во-вторых, возможно первый вариант лучше привести ко второму, на случай, если внезапно нужно будет делать несколько imu (ну мало ли)
The text was updated successfully, but these errors were encountered: