1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-17995 INET6_NTOA(ucs2_input) erroneously returns NULL

This commit is contained in:
Alexander Barkov
2018-12-13 15:09:03 +04:00
parent 5c0730e0ce
commit 4752a039b5
6 changed files with 141 additions and 65 deletions

View File

@ -110,6 +110,58 @@ public:
};
class String_ptr
{
protected:
String *m_string_ptr;
public:
String_ptr(String *str)
:m_string_ptr(str)
{ }
String_ptr(Item *item, String *buffer);
const String *string() const { return m_string_ptr; }
const char *ptr() const
{
DBUG_ASSERT(m_string_ptr);
return m_string_ptr->ptr();
}
uint32 length() const
{
DBUG_ASSERT(m_string_ptr);
return m_string_ptr->length();
}
bool is_null() const { return m_string_ptr == NULL; }
};
class Ascii_ptr: public String_ptr
{
public:
Ascii_ptr(Item *item, String *buffer);
};
template<size_t buff_sz>
class String_ptr_and_buffer: public StringBuffer<buff_sz>,
public String_ptr
{
public:
String_ptr_and_buffer(Item *item)
:String_ptr(item, this)
{ }
};
template<size_t buff_sz>
class Ascii_ptr_and_buffer: public StringBuffer<buff_sz>,
public Ascii_ptr
{
public:
Ascii_ptr_and_buffer(Item *item)
:Ascii_ptr(item, this)
{ }
};
class Dec_ptr
{