summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mauderer <Christian.Mauderer@embedded-brains.de>2016-10-21 11:05:29 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-10-24 08:13:04 +0200
commit632e278d6964e730003feceb54c22766a9e32d8b (patch)
tree8b84c7b4066168408eea8dcd8ced2fe0e7cd4e64
parentAdd SIZE_T_MAX to <machine/rtems-bsd-user-space.h> (diff)
downloadrtems-libbsd-632e278d6964e730003feceb54c22766a9e32d8b.tar.bz2
rtemsbsd: Add reallocf to rtems_bsd_program.
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-program.h7
-rw-r--r--rtemsbsd/rtems/rtems-program.c10
2 files changed, 17 insertions, 0 deletions
diff --git a/rtemsbsd/include/machine/rtems-bsd-program.h b/rtemsbsd/include/machine/rtems-bsd-program.h
index a6f8dc6c..e31c1a6a 100644
--- a/rtemsbsd/include/machine/rtems-bsd-program.h
+++ b/rtemsbsd/include/machine/rtems-bsd-program.h
@@ -102,6 +102,9 @@ rtems_bsd_program_calloc(size_t nelem, size_t elsize);
void *
rtems_bsd_program_realloc(void *ptr, size_t size);
+void *
+rtems_bsd_program_reallocf(void *ptr, size_t size);
+
char *
rtems_bsd_program_strdup(const char *s1);
@@ -164,6 +167,10 @@ rtems_bsd_program_free(void *ptr);
#define realloc(ptr, size) rtems_bsd_program_realloc(ptr, size)
#endif
+#ifndef RTEMS_BSD_PROGRAM_NO_REALLOC_WRAP
+ #define reallocf(ptr, size) rtems_bsd_program_reallocf(ptr, size)
+#endif
+
#ifndef RTEMS_BSD_PROGRAM_NO_STRDUP_WRAP
#define strdup(s1) rtems_bsd_program_strdup(s1)
#endif
diff --git a/rtemsbsd/rtems/rtems-program.c b/rtemsbsd/rtems/rtems-program.c
index 45d5450d..ba8d5c57 100644
--- a/rtemsbsd/rtems/rtems-program.c
+++ b/rtemsbsd/rtems/rtems-program.c
@@ -535,6 +535,16 @@ rtems_bsd_program_realloc(void *ptr, size_t size)
return rtems_bsd_program_alloc(size, ptr);
}
+void *
+rtems_bsd_program_reallocf(void *ptr, size_t size)
+{
+ void *ret = rtems_bsd_program_alloc(size, ptr);
+ if (ret == NULL) {
+ free(ptr);
+ }
+ return ret;
+}
+
char *
rtems_bsd_program_strdup(const char *s1)
{