summaryrefslogtreecommitdiff
path: root/storage/xtradb/ut/ut0list.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/ut/ut0list.cc')
-rw-r--r--storage/xtradb/ut/ut0list.cc203
1 files changed, 0 insertions, 203 deletions
diff --git a/storage/xtradb/ut/ut0list.cc b/storage/xtradb/ut/ut0list.cc
deleted file mode 100644
index f906061d185..00000000000
--- a/storage/xtradb/ut/ut0list.cc
+++ /dev/null
@@ -1,203 +0,0 @@
-/*****************************************************************************
-
-Copyright (c) 2006, 2011, Oracle and/or its affiliates. All Rights Reserved.
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; version 2 of the License.
-
-This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
-
-*****************************************************************************/
-
-/*******************************************************************//**
-@file ut/ut0list.cc
-A double-linked list
-
-Created 4/26/2006 Osku Salerma
-************************************************************************/
-
-#include "ut0list.h"
-#ifdef UNIV_NONINL
-#include "ut0list.ic"
-#endif
-
-/****************************************************************//**
-Create a new list.
-@return list */
-UNIV_INTERN
-ib_list_t*
-ib_list_create(void)
-/*=================*/
-{
- ib_list_t* list;
-
- list = static_cast<ib_list_t*>(mem_alloc(sizeof(*list)));
-
- list->first = NULL;
- list->last = NULL;
- list->is_heap_list = FALSE;
-
- return(list);
-}
-
-/****************************************************************//**
-Create a new list using the given heap. ib_list_free MUST NOT BE CALLED for
-lists created with this function.
-@return list */
-UNIV_INTERN
-ib_list_t*
-ib_list_create_heap(
-/*================*/
- mem_heap_t* heap) /*!< in: memory heap to use */
-{
- ib_list_t* list;
-
- list = static_cast<ib_list_t*>(mem_heap_alloc(heap, sizeof(*list)));
-
- list->first = NULL;
- list->last = NULL;
- list->is_heap_list = TRUE;
-
- return(list);
-}
-
-/****************************************************************//**
-Free a list. */
-UNIV_INTERN
-void
-ib_list_free(
-/*=========*/
- ib_list_t* list) /*!< in: list */
-{
- ut_a(!list->is_heap_list);
-
- /* We don't check that the list is empty because it's entirely valid
- to e.g. have all the nodes allocated from a single heap that is then
- freed after the list itself is freed. */
-
- mem_free(list);
-}
-
-/****************************************************************//**
-Add the data to the start of the list.
-@return new list node */
-UNIV_INTERN
-ib_list_node_t*
-ib_list_add_first(
-/*==============*/
- ib_list_t* list, /*!< in: list */
- void* data, /*!< in: data */
- mem_heap_t* heap) /*!< in: memory heap to use */
-{
- return(ib_list_add_after(list, ib_list_get_first(list), data, heap));
-}
-
-/****************************************************************//**
-Add the data to the end of the list.
-@return new list node */
-UNIV_INTERN
-ib_list_node_t*
-ib_list_add_last(
-/*=============*/
- ib_list_t* list, /*!< in: list */
- void* data, /*!< in: data */
- mem_heap_t* heap) /*!< in: memory heap to use */
-{
- return(ib_list_add_after(list, ib_list_get_last(list), data, heap));
-}
-
-/****************************************************************//**
-Add the data after the indicated node.
-@return new list node */
-UNIV_INTERN
-ib_list_node_t*
-ib_list_add_after(
-/*==============*/
- ib_list_t* list, /*!< in: list */
- ib_list_node_t* prev_node, /*!< in: node preceding new node (can
- be NULL) */
- void* data, /*!< in: data */
- mem_heap_t* heap) /*!< in: memory heap to use */
-{
- ib_list_node_t* node;
-
- node = static_cast<ib_list_node_t*>(
- mem_heap_alloc(heap, sizeof(*node)));
-
- node->data = data;
-
- if (!list->first) {
- /* Empty list. */
-
- ut_a(!prev_node);
-
- node->prev = NULL;
- node->next = NULL;
-
- list->first = node;
- list->last = node;
- } else if (!prev_node) {
- /* Start of list. */
-
- node->prev = NULL;
- node->next = list->first;
-
- list->first->prev = node;
-
- list->first = node;
- } else {
- /* Middle or end of list. */
-
- node->prev = prev_node;
- node->next = prev_node->next;
-
- prev_node->next = node;
-
- if (node->next) {
- node->next->prev = node;
- } else {
- list->last = node;
- }
- }
-
- return(node);
-}
-
-/****************************************************************//**
-Remove the node from the list. */
-UNIV_INTERN
-void
-ib_list_remove(
-/*===========*/
- ib_list_t* list, /*!< in: list */
- ib_list_node_t* node) /*!< in: node to remove */
-{
- if (node->prev) {
- node->prev->next = node->next;
- } else {
- /* First item in list. */
-
- ut_ad(list->first == node);
-
- list->first = node->next;
- }
-
- if (node->next) {
- node->next->prev = node->prev;
- } else {
- /* Last item in list. */
-
- ut_ad(list->last == node);
-
- list->last = node->prev;
- }
-
- node->prev = node->next = NULL;
-}