mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-04-29 01:56:27 +00:00
[common] all: implement strdup
directly
Dr.Memory on Windows complains bitterly about invalid heap free as it doesn't seem to be able to track this function's allocations. As it's such a trivial function we can just implement it locally.
This commit is contained in:
parent
12d051d8c0
commit
3ed71a09f4
@ -34,4 +34,7 @@ int alloc_sprintf(char ** str, const char * format, ...)
|
|||||||
// Find value in a list separated by delimiter.
|
// Find value in a list separated by delimiter.
|
||||||
bool str_containsValue(const char * list, char delimiter, const char * value);
|
bool str_containsValue(const char * list, char delimiter, const char * value);
|
||||||
|
|
||||||
|
// Local implementation of strdup
|
||||||
|
char * strdup(const char *s);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "common/stringutils.h"
|
#include "common/stringutils.h"
|
||||||
|
|
||||||
@ -89,3 +90,23 @@ bool str_containsValue(const char * list, char delimiter, const char * value)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char * strdup(const char *s)
|
||||||
|
{
|
||||||
|
if (!s)
|
||||||
|
{
|
||||||
|
errno = EINVAL;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ssize_t len = strlen(s) + 1;
|
||||||
|
char * out = malloc(len);
|
||||||
|
if (!out)
|
||||||
|
{
|
||||||
|
errno = ENOMEM;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(out, s, len);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user