Update of /cvsroot/plib/plib/src/psl
In directory usw-pr-cvs1:/tmp/cvs-serv16907
Modified Files:
pslContext.cxx
Log Message:
Replaced two instances of 'delete' with 'delete []'; Only lazy programmers use strcat :)
Index: pslContext.cxx
===================================================================
RCS file: /cvsroot/plib/plib/src/psl/pslContext.cxx,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- pslContext.cxx 15 Sep 2002 17:45:53 -0000 1.16
+++ pslContext.cxx 15 Sep 2002 19:12:01 -0000 1.17
@@ -191,12 +191,15 @@
else
if ( v1->getType() == PSL_STRING && v2->getType() == PSL_STRING )
{
- char *s = new char [ strlen ( v1 -> getString () ) +
- strlen ( v2 -> getString () ) + 1 ] ;
- strcpy ( s, v2 -> getString () ) ;
- strcat ( s, v1 -> getString () ) ;
+ int v1_len = strlen ( v1 -> getString () ) ;
+ int v2_len = strlen ( v2 -> getString () ) ;
+ char *s = new char [ v1_len + v2_len + 1 ] ;
+
+ memcpy ( s, v2 -> getString (), v2_len ) ;
+ memcpy ( s+v2_len, v1 -> getString (), v1_len+1 ) ;
+
v2 -> set ( s ) ;
- delete s ;
+ delete [] s ;
}
else
v2 -> set ( v2 -> getInt () + v1 -> getInt () ) ;
@@ -510,12 +513,15 @@
else
if ( v -> getType () == PSL_STRING )
{
- char *s = new char [ strlen ( v -> getString () ) +
- strlen ( stack[sp-1] . getString () ) + 1 ] ;
- strcpy ( s, v -> getString () ) ;
- strcat ( s, stack[--sp] . getString () ) ;
+ int s1_len = strlen ( v -> getString () ) ;
+ int s2_len = strlen ( stack[sp-1] . getString () ) ;
+ char *s = new char [ s1_len + s2_len + 1 ] ;
+
+ memcpy ( s, v -> getString (), s1_len ) ;
+ memcpy ( s+s1_len, stack[--sp] . getString (), s2_len+1 ) ;
+
v -> set ( s ) ;
- delete s ;
+ delete [] s ;
}
else
v -> set ( v -> getFloat() + stack[--sp].getFloat()) ;
|