Skip to content

[HUST CSE]Fixed an error where parameters could not be assigned …#22

Merged
BernardXiong merged 4 commits intoRT-Thread:mainfrom
fly1ngpengu1ns:main
May 1, 2023
Merged

[HUST CSE]Fixed an error where parameters could not be assigned …#22
BernardXiong merged 4 commits intoRT-Thread:mainfrom
fly1ngpengu1ns:main

Conversation

@fly1ngpengu1ns
Copy link
Copy Markdown

在函数webclient_close中,传入的是session的指针,同时此函数的作用是释放其指向的空间。但是问题在于传入的是指针而非指针的指针,因此在函数结束时的session = RT_NULL;语句将无法改变外部值。
而在多数调用此函数的时候,并没有顺手将seesion赋值成RT_NULL,因此在此修改了函数webclient_close的传入参数形式,变成传入指针的指针来达到目标。
值得注意的是,还有一种修改方法是在每次调用时手动赋值为RT_NULL,不过这样似乎略显繁琐,您觉得那种方法更好呢?

web_free(session);
session = RT_NULL;

…correctly due to incorrect form of parameters passed in
@BernardXiong
Copy link
Copy Markdown
Member

这个不会这么修改的,因为需要保证代码风格的一致性。这样的后果只能靠人工方式来检查代码了,避免在webclient_close后依然在使用指针。

@fly1ngpengu1ns
Copy link
Copy Markdown
Author

这个不会这么修改的,因为需要保证代码风格的一致性。这样的后果只能靠人工方式来检查代码了,避免在webclient_close后依然在使用指针。

您说的非常有道理,之前的修改方式会破坏代码的一致性。不过我注意到在:https://github.com/RT-Thread/userapps/blob/main/apps/webclient/packages/webclient-v2.1.2/src/webclient.c#L1695 这里,
image
在使用完webclient_close函数后,手动使用session = RT_NULL;将session赋值成NULL,是否在其它地方使用webclient_close函数后,也可以使用相同的处理方式?
我已使用这个方法更新了我的处理方式,如果您觉得是需要保持和例如web_free函数使用时代码保持一致,那么确实需要靠人工方式来检查代码了,我将close我的pr

@mysterywolf
Copy link
Copy Markdown
Member

https://github.com/RT-Thread-packages/webclient 你好 可以向这里提交

@BernardXiong BernardXiong merged commit be84092 into RT-Thread:main May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants