mirror of
https://github.com/MariaDB/server.git
synced 2026-04-26 10:15:29 +02:00
fix new String:realloc* variants always to zero-terminate the string
This commit is contained in:
parent
818af42f1d
commit
8404b44a84
2 changed files with 16 additions and 4 deletions
|
|
@ -255,17 +255,30 @@ public:
|
|||
return real_alloc(arg_length);
|
||||
}
|
||||
bool real_alloc(uint32 arg_length); // Empties old string
|
||||
bool realloc(uint32 arg_length);
|
||||
bool realloc_raw(uint32 arg_length);
|
||||
bool realloc(uint32 arg_length)
|
||||
{
|
||||
if (realloc_raw(arg_length))
|
||||
return TRUE;
|
||||
Ptr[arg_length]=0; // This make other funcs shorter
|
||||
return FALSE;
|
||||
}
|
||||
bool realloc_with_extra(uint32 arg_length)
|
||||
{
|
||||
if (extra_alloc < 4096)
|
||||
extra_alloc= extra_alloc*2+128;
|
||||
return realloc(arg_length + extra_alloc);
|
||||
if (realloc_raw(arg_length + extra_alloc))
|
||||
return TRUE;
|
||||
Ptr[arg_length]=0; // This make other funcs shorter
|
||||
return FALSE;
|
||||
}
|
||||
bool realloc_with_extra_if_needed(uint32 arg_length)
|
||||
{
|
||||
if (arg_length < Alloced_length)
|
||||
{
|
||||
Ptr[arg_length]=0; // behave as if realloc was called.
|
||||
return 0;
|
||||
}
|
||||
return realloc_with_extra(arg_length);
|
||||
}
|
||||
inline void shrink(uint32 arg_length) // Shrink buffer
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue