diff -r f5050f1da672 -r 04becd199f91 javauis/javalegacyutils/src/RJString.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/javalegacyutils/src/RJString.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,51 @@ +/* +* Copyright (c) 1999-2000 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "jutils.h" + +/** + * Constuctor taking a Java JNI string and converting it to an EPOC TPtrC. + */ +EXPORT_C RJString::RJString(JNIEnv& aJni, jstring aString) + : iJni(aJni), iString(aString) +{ + // Potential for a string to be NULL, but NULL cannot be passed into + // JNI methods, so must check. If string is NULL, will result in empty string + if (iString != NULL) + { + const jchar* ptr = aJni.GetStringChars(iString, NULL); + const jint len = aJni.GetStringLength(iString); + if (ptr) + { + Set(ptr, len); + } + } +} + + + +/** + * Frees up the JNI string resources, if they need to be freed. + */ +EXPORT_C RJString::~RJString() +{ + if (iString != NULL) + { + iJni.ReleaseStringChars(iString, this->Ptr()); + } +}