@@ -6180,31 +6180,34 @@ JAVA_SHORT com_codename1_impl_ios_IOSNative_sqlCursorValueAtColumnShort___long_i
61806180
61816181#ifdef NEW_CODENAME_ONE_VM
61826182JAVA_OBJECT com_codename1_impl_ios_IOSNative_sqlCursorValueAtColumnString___long_int_R_java_lang_String(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_LONG statement, JAVA_INT col) {
6183+
61836184 enteringNativeAllocations();
6185+
61846186 const char* result = (const char*)sqlite3_column_text((sqlite3_stmt*)statement, col);
61856187 if(result == 0) {
61866188 return JAVA_NULL;
61876189 }
6188- JAVA_OBJECT str = __NEW_INSTANCE_java_lang_String(threadStateData);
6189- struct obj__java_lang_String* ss = (struct obj__java_lang_String*)str;
6190+
61906191 NSString* ns = [NSString stringWithUTF8String:result];
6192+ if (!ns) {
6193+ return JAVA_NULL;
6194+ }
6195+
61916196 [ns retain];
6197+
6198+ JAVA_OBJECT str = __NEW_INSTANCE_java_lang_String(threadStateData);
6199+ struct obj__java_lang_String* ss = (struct obj__java_lang_String*)str;
61926200 ss->java_lang_String_nsString = (JAVA_LONG)ns;
6193-
6194- JAVA_OBJECT destArr = __NEW_ARRAY_JAVA_CHAR(threadStateData, [ns length]);
6201+
6202+ NSUInteger len = [ns length];
6203+ JAVA_OBJECT destArr = __NEW_ARRAY_JAVA_CHAR(threadStateData, len);
61956204 ss->java_lang_String_value = destArr;
6196- ss->java_lang_String_count = [ns length];
6197-
6198- __block JAVA_ARRAY_CHAR* dest = (JAVA_ARRAY_CHAR*)((JAVA_ARRAY)destArr)->data;
6199- __block int length = 0;
6200- [ns enumerateSubstringsInRange:NSMakeRange(0, [ns length])
6201- options:NSStringEnumerationByComposedCharacterSequences
6202- usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
6203- dest[length] = (JAVA_CHAR)[ns characterAtIndex:length];
6204- length++;
6205- }];
6205+ ss->java_lang_String_count = len;
6206+
6207+ JAVA_ARRAY_CHAR* dest = (JAVA_ARRAY_CHAR*)((JAVA_ARRAY)destArr)->data;
6208+ [ns getCharacters:(unichar*)dest range:NSMakeRange(0, len)];
6209+
62066210 finishedNativeAllocations();
6207-
62086211 return str;
62096212}
62106213#else // NEW_CODENAME_ONE_VM
0 commit comments