diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2022-10-05 17:46:50 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2022-10-05 19:53:13 +0300 |
commit | 4eb8c35b363addd64e30ad0b5ce7988b328b07cd (patch) | |
tree | ff5811708f81e22405ed1d292920640daf1ca10e | |
parent | c0eda62aec1de8b74ca51791df5ad142dee2ef08 (diff) | |
download | mariadb-git-4eb8c35b363addd64e30ad0b5ce7988b328b07cd.tar.gz |
MDEV-28576 Ability to manipulate List<const char *>
For "const char *" replace() and after() accepted const as "T *" and
passed forward "void *". This cannot be cast implicitly, so we better
use "const void *" instead of "void *" in the input interface. This
way we avoid problems with using List for any const type.
-rw-r--r-- | sql/sql_list.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sql/sql_list.h b/sql/sql_list.h index a47acf57b54..b11239856f5 100644 --- a/sql/sql_list.h +++ b/sql/sql_list.h @@ -118,8 +118,8 @@ struct list_node :public Sql_alloc { list_node *next; void *info; - list_node(void *info_par,list_node *next_par) - :next(next_par),info(info_par) + list_node(const void *info_par, list_node *next_par) + :next(next_par), info(const_cast<void *>(info_par)) {} list_node() /* For end_of_list */ { @@ -384,7 +384,7 @@ public: #endif // LIST_EXTRA_DEBUG protected: - void after(void *info,list_node *node) + void after(const void *info, list_node *node) { list_node *new_node=new list_node(info,node->next); node->next=new_node; @@ -445,11 +445,11 @@ public: { el= &list->first; } - inline void *replace(void *element) + inline void *replace(const void *element) { // Return old element void *tmp=current->info; DBUG_ASSERT(current->info != 0); - current->info=element; + current->info= const_cast<void *>(element); return tmp; } void *replace(base_list &new_list) @@ -472,7 +472,7 @@ public: el=prev; current=0; // Safeguard } - void after(void *element) // Insert element after current + void after(const void *element) // Insert element after current { list->after(element,current); current=current->next; |