From f2f4a3ba2e3c5e308ea3d76d173fbb43061d06fd Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Tue, 23 Jul 2002 00:52:46 +0000 Subject: [PATCH] make strdup part of mem_* library --- include/strutil.h | 2 -- include/u_mem.h | 16 ++++++++++------ mem/mem.c | 10 ++++++++++ misc/strutil.c | 10 ---------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/include/strutil.h b/include/strutil.h index 93c0a78b..346b03c7 100644 --- a/include/strutil.h +++ b/include/strutil.h @@ -15,8 +15,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #ifndef _STRUTILS_H #define _STRUTILS_H -char *d_strdup(char *str); - #ifdef __unix__ #define stricmp(a,b) strcasecmp(a,b) #define strnicmp(a,b,c) strncasecmp(a,b,c) diff --git a/include/u_mem.h b/include/u_mem.h index cad21f7d..0dd206e2 100644 --- a/include/u_mem.h +++ b/include/u_mem.h @@ -1,3 +1,4 @@ +/* $ Id: $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -25,12 +26,14 @@ void mem_display_blocks(); extern void * mem_malloc( unsigned int size, char * var, char * file, int line, int fill_zero ); extern void * mem_realloc( void * buffer, unsigned int size, char * var, char * file, int line ); extern void mem_free( void * buffer ); +extern char * mem_strdup(char * str, char * var, char * file, int line ); /* DPH: Changed malloc, etc. to d_malloc. Overloading system calls is very evil and error prone */ -#define d_malloc(size) mem_malloc((size),"Unknown", __FILE__,__LINE__, 0 ) -#define d_calloc(n,size) mem_malloc((n*size),"Unknown", __FILE__,__LINE__, 1 ) +#define d_malloc(size) mem_malloc((size),"Unknown", __FILE__,__LINE__, 0 ) +#define d_calloc(n,size) mem_malloc((n*size),"Unknown", __FILE__,__LINE__, 1 ) #define d_realloc(ptr,size) mem_realloc((ptr),(size),"Unknown", __FILE__,__LINE__ ) -#define d_free(ptr) do{ mem_free(ptr); ptr=NULL; } while(0) +#define d_free(ptr) do{ mem_free(ptr); ptr=NULL; } while(0) +#define d_strdup(str) mem_strdup((str),"Unknown",__FILE__,__LINE__) #define MALLOC( var, type, count ) (var=(type *)mem_malloc((count)*sizeof(type),#var, __FILE__,__LINE__,0 )) @@ -39,10 +42,11 @@ void mem_validate_heap(); #else -#define d_malloc(size) malloc(size) -#define d_calloc(size) calloc(n*size) +#define d_malloc(size) malloc(size) +#define d_calloc(size) calloc(n*size) #define d_realloc(ptr,size) realloc(ptr,size) -#define d_free(ptr) do{ free(ptr); ptr=NULL; } while(0) +#define d_free(ptr) do{ free(ptr); ptr=NULL; } while(0) +#define d_strdup(str) strdup(str) #define MALLOC( var, type, count ) (var=(type *)malloc((count)*sizeof(type))) diff --git a/mem/mem.c b/mem/mem.c index 67ec22ef..57135db4 100644 --- a/mem/mem.c +++ b/mem/mem.c @@ -380,6 +380,16 @@ void *mem_realloc(void * buffer, unsigned int size, char * var, char * filename, return newbuffer; } +char *mem_strdup(char *str, char *var, char *filename, int line) +{ + char *newstr; + + newstr = mem_malloc(strlen(str) + 1, var, filename, line, 0); + strcpy(newstr, str); + + return newstr; +} + void mem_display_blocks() { int i, numleft; diff --git a/misc/strutil.c b/misc/strutil.c index 0d2ac640..352e1a15 100644 --- a/misc/strutil.c +++ b/misc/strutil.c @@ -23,16 +23,6 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "u_mem.h" #include "error.h" -char *d_strdup(char *str) -{ - char *a; - - a = d_malloc(strlen(str) + 1); - strcpy(a, str); - - return a; -} - #if 0 // string compare without regard to case -- 2.39.2