diff --git a/libmaxsi/Makefile b/libmaxsi/Makefile index b5cd8b07..2c70043e 100644 --- a/libmaxsi/Makefile +++ b/libmaxsi/Makefile @@ -34,6 +34,7 @@ abort.o \ abs.o \ _assert.o \ bsearch.o \ +calloc.o \ clearerr.o \ c++.o \ ctype.o \ diff --git a/libmaxsi/calloc.cpp b/libmaxsi/calloc.cpp new file mode 100644 index 00000000..3bf5a762 --- /dev/null +++ b/libmaxsi/calloc.cpp @@ -0,0 +1,36 @@ +/******************************************************************************* + + Copyright(C) Jonas 'Sortie' Termansen 2011, 2012. + + This file is part of LibMaxsi. + + LibMaxsi is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + LibMaxsi 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 Lesser General Public License for more + details. + + You should have received a copy of the GNU Lesser General Public License + along with LibMaxsi. If not, see . + + calloc.cpp + Allocates zeroed memory. + +*******************************************************************************/ + +#include +#include + +extern "C" void* calloc(size_t nmemb, size_t size) +{ + size_t total = nmemb * size; + void* result = malloc(total); + if ( !result ) + return NULL; + memset(result, 0, total); + return result; +} diff --git a/libmaxsi/heap.cpp b/libmaxsi/heap.cpp index 4604babb..33fd1207 100644 --- a/libmaxsi/heap.cpp +++ b/libmaxsi/heap.cpp @@ -693,15 +693,6 @@ extern "C" void free(void* addr) #endif } -extern "C" void* calloc(size_t nmemb, size_t size) -{ - size_t total = nmemb * size; - void* result = malloc(total); - if ( !result ) { return NULL; } - memset(result, 0, total); - return result; -} - // TODO: Implement this function properly. extern "C" void* realloc(void* ptr, size_t size) {