mirror of
https://github.com/MidnightCommander/mc
synced 2025-01-03 10:04:32 +03:00
* HACKING: added advice for using g_strdup for a modifiable
copy of a string.
This commit is contained in:
parent
c524515308
commit
1b06b35d82
@ -1,3 +1,8 @@
|
|||||||
|
2004-09-22 Roland Illig <roland.illig@gmx.de>
|
||||||
|
|
||||||
|
* HACKING: added advice for using g_strdup for a modifiable
|
||||||
|
copy of a string.
|
||||||
|
|
||||||
2004-09-19 Roland Illig <roland.illig@gmx.de>
|
2004-09-19 Roland Illig <roland.illig@gmx.de>
|
||||||
|
|
||||||
* HACKING: added explanation for const_cast.
|
* HACKING: added explanation for const_cast.
|
||||||
|
22
HACKING
22
HACKING
@ -296,6 +296,22 @@ const_cast: We use many libraries that do not know about "const char *" and
|
|||||||
function does with the string, we should use g_strdup to pass
|
function does with the string, we should use g_strdup to pass
|
||||||
dynamically allocated strings.
|
dynamically allocated strings.
|
||||||
|
|
||||||
|
g_free: g_free handles NULL argument too, no need for the comparison.
|
||||||
|
Bad way:
|
||||||
|
if (old_dir) g_free (old_dir);
|
||||||
|
Right way:
|
||||||
|
g_free (old_dir);
|
||||||
|
|
||||||
|
g_strdup: If you use g_strdup to create a local copy of a string, use
|
||||||
|
the following pattern to keep the reference.
|
||||||
|
|
||||||
|
char * const pathref = g_strdup(argument);
|
||||||
|
/* ... */
|
||||||
|
g_free (pathref);
|
||||||
|
|
||||||
|
The "const" will make the pointer unmodifiable (local_copy++
|
||||||
|
is not possible), but you can still modify the string contents.
|
||||||
|
|
||||||
g_strlcpy: Whenever you use this function, be sure to add "glibcompat.h"
|
g_strlcpy: Whenever you use this function, be sure to add "glibcompat.h"
|
||||||
to the included headers. This is because in glib-1.2 there is
|
to the included headers. This is because in glib-1.2 there is
|
||||||
no such function.
|
no such function.
|
||||||
@ -306,9 +322,3 @@ size_t: This data type is suitable for expressing sizes of memory or the
|
|||||||
|
|
||||||
strncpy: Don't use this function in newly created code. It is slow, insecure
|
strncpy: Don't use this function in newly created code. It is slow, insecure
|
||||||
and hard to use. A much better alternative is g_strlcpy (see there).
|
and hard to use. A much better alternative is g_strlcpy (see there).
|
||||||
|
|
||||||
g_free: g_free handles NULL argument too, no need for the comparison.
|
|
||||||
Bad way:
|
|
||||||
if (old_dir) g_free (old_dir);
|
|
||||||
Right way:
|
|
||||||
g_free (old_dir);
|
|
||||||
|
Loading…
Reference in New Issue
Block a user