diff options
Diffstat (limited to 'branches/1.0/tinySAK/src/tsk_memory.c')
-rw-r--r-- | branches/1.0/tinySAK/src/tsk_memory.c | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/branches/1.0/tinySAK/src/tsk_memory.c b/branches/1.0/tinySAK/src/tsk_memory.c deleted file mode 100644 index 4a5d29f..0000000 --- a/branches/1.0/tinySAK/src/tsk_memory.c +++ /dev/null @@ -1,124 +0,0 @@ -/* -* Copyright (C) 2009-2010 Mamadou Diop. -* -* Contact: Mamadou Diop <diopmamadou(at)doubango.org> -* -* This file is part of Open Source Doubango Framework. -* -* DOUBANGO 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, either version 3 of the License, or -* (at your option) any later version. -* -* DOUBANGO 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 DOUBANGO. -* -*/ - -/**@file tsk_memory.c - * @brief Useful memory management functions to handle memory. - * As I'm a lazy man, some definition come from <ahref="http://www.cplusplus.com">this website</a> - * - * @author Mamadou Diop <diopmamadou(at)doubango.org> - * - * @date Created: Sat Nov 8 16:54:58 2009 mdiop - */ -#include "tsk_memory.h" -#include "tsk_debug.h" - -#include <stdarg.h> -#include <ctype.h> -#include <stdio.h> - -/**@defgroup tsk_memory_group Utility functions for memory management. -*/ - -/**@ingroup tsk_memory_group -* Allocates a block of size bytes of memory, returning a pointer to the beginning of the block. -* The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. -* @param size Size of the memory block, in bytes. -* @retval On success, a pointer to the memory block allocated by the function. -* It is up to you to free the returned pointer. -*/ -void* tsk_malloc(tsk_size_t size) -{ - void *ret = malloc(size); - if(!ret){ - TSK_DEBUG_ERROR("Memory allocation failed"); - } - - return ret; -} - -/**@ingroup tsk_memory_group -* Reallocate memory block. -* In case that ptr is NULL, the function behaves exactly as @a tsk_malloc, assigning a new block of size bytes and returning a pointer to the beginning of it. -* The function may move the memory block to a new location, in which case the new location is returned. The content of the memory block is preserved up to the lesser of the -* new and old sizes, even if the block is moved. If the new size is larger, the value of the newly allocated portion is indeterminate. -* In case that the size is 0, the memory previously allocated in ptr is deallocated as if a call to free was made, and a NULL pointer is returned. -* @param ptr Pointer to a memory block previously allocated with malloc, calloc or realloc to be reallocated. -* If this is NULL, a new block is allocated and a pointer to it is returned by the function. -* @param size New size for the memory block, in bytes. -* If it is 0 and ptr points to an existing block of memory, the memory block pointed by ptr is deallocated and a NULL pointer is returned. -* @retval A pointer to the reallocated memory block, which may be either the same as the ptr argument or a new location. -* The type of this pointer is void*, which can be cast to the desired type of data pointer in order to be dereferenceable. -* If the function failed to allocate the requested block of memory, a NULL pointer is returned. -* It is up to you to free the returned pointer. -*/ -void* tsk_realloc (void* ptr, tsk_size_t size) -{ - void *ret = tsk_null; - - if(ptr){ - if(!(ret = realloc(ptr, size))){ - TSK_DEBUG_ERROR("Memory reallocation failed"); - } - } - else{ - if(!(ret = calloc(size, 1))){ - TSK_DEBUG_ERROR("Memory allocation failed"); - } - } - - return ret; -} - -/**@ingroup tsk_memory_group -* Deallocate space in memory. -* @param ptr Pointer to a memory block previously allocated with @a tsk_malloc, @a tsk_calloc or @a tsk_realloc to be deallocated. -* If a null pointer is passed as argument, no action occurs. -*/ -void tsk_free(void** ptr) -{ - if(ptr && *ptr){ - free(*ptr); - *ptr = tsk_null; - } -} - -/**@ingroup tsk_memory_group -* Allocates a block of memory for an array of num elements, each of them size bytes long, and initializes all its bits to zero. -* The effective result is the allocation of an zero-initialized memory block of (num * size) bytes. -* @param num Number of elements to be allocated -* @param size Size of elements -* @retval A pointer to the memory block allocated by the function. The type of this pointer is always void*, which can be cast to the desired type of data pointer in order to be dereferenceable. -* If the function failed to allocate the requested block of memory, a NULL pointer is returned. -* It is up to you to free the returned pointer. -*/ -void* tsk_calloc(tsk_size_t num, tsk_size_t size) -{ - void* ret = 0; - if(num && size){ - ret = calloc(num, size); - if(!ret){ - TSK_DEBUG_ERROR("Memory allocation failed. num=%u and size=%u", num, size); - } - } - - return ret; -} |