Last change
on this file since 1333 was
1314,
checked in by Maciej Komosinski, 6 months ago
|
Added realloc() implementation that behaves like free() when size==0 - consistently on all platforms, in contrast to standard realloc()
|
File size:
694 bytes
|
Rev | Line | |
---|
[1314] | 1 | // This file is a part of Framsticks SDK. http://www.framsticks.com/
|
---|
| 2 | // Copyright (C) 2023-2024 Maciej Komosinski and Szymon Ulatowski.
|
---|
| 3 | // See LICENSE.txt for details.
|
---|
| 4 |
|
---|
| 5 | #include "realloc-free0size.h"
|
---|
| 6 | #include <common/log.h>
|
---|
| 7 |
|
---|
| 8 | // https://stackoverflow.com/questions/16759849/using-realloc-x-0-instead-of-free-and-using-malloc-with-length-of-a-string
|
---|
| 9 | void *realloc_free0size(void *ptr, size_t size)
|
---|
| 10 | {
|
---|
| 11 | // special case begin
|
---|
| 12 | if (ptr && size == 0)
|
---|
| 13 | {
|
---|
| 14 | free(ptr);
|
---|
| 15 | return NULL;
|
---|
| 16 | }
|
---|
| 17 | // special case end
|
---|
| 18 |
|
---|
| 19 | void *tmp = realloc(ptr, size);
|
---|
| 20 | if (size != 0 && tmp == NULL)
|
---|
| 21 | {
|
---|
| 22 | logPrintf("", "realloc_free0size", LOG_CRITICAL, "realloc(%zd) failed.", size);
|
---|
| 23 | }
|
---|
| 24 | return tmp;
|
---|
| 25 | }
|
---|
Note: See
TracBrowser
for help on using the repository browser.