modules/fxpackager/src/main/native/library/common/PlatformString.cpp

Print this page




 251 
 252         if (lvalue != NULL) {
 253             FLength = env->GetStringUTFLength(value);
 254 
 255             if (env->ExceptionCheck() == JNI_TRUE) {
 256                 throw JavaException();
 257             }
 258 
 259             FData = new char[FLength + 1];
 260             PlatformString::CopyString(FData, FLength + 1, lvalue);
 261 
 262             env->ReleaseStringUTFChars(value, lvalue);
 263 
 264             if (env->ExceptionCheck() == JNI_TRUE) {
 265                 throw JavaException();
 266             }
 267         }
 268     }
 269 }
 270 
 271 std::string PlatformString::Format(std::string value, ...) {
 272     std::string result = value;

 273 
 274     va_list arglist;
 275     va_start(arglist, value);
 276 
 277     while (1) {
 278         size_t pos = result.find("%s", 0);
 279 
 280         if (pos == TString::npos) {
 281             break;
 282         }
 283         else {
 284             char* arg = va_arg(arglist, char*);
 285 
 286             if (arg == NULL) {
 287                 break;
 288             }
 289             else {
 290                 result.replace(pos, strlen("%s"), arg);
 291             }
 292         }
 293     }
 294 
 295     va_end(arglist);
 296 
 297     return result;
 298 }
 299 
 300 size_t PlatformString::length() {
 301     return FLength;
 302 }
 303 
 304 char* PlatformString::c_str() {
 305     return FData;
 306 }
 307 
 308 char* PlatformString::toMultibyte() {
 309     return FData;
 310 }




 251 
 252         if (lvalue != NULL) {
 253             FLength = env->GetStringUTFLength(value);
 254 
 255             if (env->ExceptionCheck() == JNI_TRUE) {
 256                 throw JavaException();
 257             }
 258 
 259             FData = new char[FLength + 1];
 260             PlatformString::CopyString(FData, FLength + 1, lvalue);
 261 
 262             env->ReleaseStringUTFChars(value, lvalue);
 263 
 264             if (env->ExceptionCheck() == JNI_TRUE) {
 265                 throw JavaException();
 266             }
 267         }
 268     }
 269 }
 270 
 271 TString PlatformString::Format(const TString value, ...) {
 272 //std::string PlatformString::Format(std::string value, ...) {
 273     TString result = value;
 274 
 275     va_list arglist;
 276     va_start(arglist, value);
 277 
 278     while (1) {
 279         size_t pos = result.find(_T("%s"), 0);
 280 
 281         if (pos == TString::npos) {
 282             break;
 283         }
 284         else {
 285             TCHAR* arg = va_arg(arglist, TCHAR*);
 286 
 287             if (arg == NULL) {
 288                 break;
 289             }
 290             else {
 291                 result.replace(pos, StringLength(_T("%s")), arg);
 292             }
 293         }
 294     }
 295 
 296     va_end(arglist);
 297 
 298     return result;
 299 }
 300 
 301 size_t PlatformString::length() {
 302     return FLength;
 303 }
 304 
 305 char* PlatformString::c_str() {
 306     return FData;
 307 }
 308 
 309 char* PlatformString::toMultibyte() {
 310     return FData;
 311 }