make strdup part of mem_* library
authorBradley Bell <btb@icculus.org>
Tue, 23 Jul 2002 00:52:46 +0000 (00:52 +0000)
committerBradley Bell <btb@icculus.org>
Tue, 23 Jul 2002 00:52:46 +0000 (00:52 +0000)
include/strutil.h
include/u_mem.h
mem/mem.c
misc/strutil.c

index 93c0a78..346b03c 100644 (file)
@@ -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)
index cad21f7..0dd206e 100644 (file)
@@ -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)))
 
index 67ec22e..57135db 100644 (file)
--- 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;
index 0d2ac64..352e1a1 100644 (file)
@@ -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