From 576915cd3f5ef19b7db583f56b0112941df0c32b Mon Sep 17 00:00:00 2001 From: ehouse Date: Sun, 9 Jan 2005 18:53:15 +0000 Subject: [PATCH] implement symReplaceStrIfDiff --- symbian/src/symutil.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/symbian/src/symutil.cpp b/symbian/src/symutil.cpp index 96c86fe01..fcf4863f5 100644 --- a/symbian/src/symutil.cpp +++ b/symbian/src/symutil.cpp @@ -24,6 +24,36 @@ #include #include #include "comtypes.h" +#include "mempool.h" + + +void +symReplaceStrIfDiff( MPFORMAL XP_UCHAR** loc, const TDesC16& desc ) +{ + TBuf8<256> tmp; + tmp.Copy( desc ); + + if ( *loc ) { + TPtrC8 forCmp; + forCmp.Set( *loc, XP_STRLEN( *loc ) ); + + if ( tmp == forCmp ) { + XP_LOGF( "not copying %s", *loc ); + return; + } + + XP_LOGF( "freeing %s", *loc ); + XP_FREE( mpool, *loc ); + } + + TInt len = desc.Length(); + XP_UCHAR* newStr = (XP_UCHAR*)XP_MALLOC( mpool, len + 1 ); + XP_MEMCPY( newStr, (void*)tmp.Ptr(), len ); + newStr[len] = '\0'; + *loc = newStr; + + XP_LOGF( "created new string: %s", newStr ); +} /* symReplaceStr */ extern "C" {