static int compareStringsUnicode(const char** in1, const char** in2) { int result = compareStringsUnicodeFast(in1, in2); if (result > -2) return result; // Fast compare failed, so resort to using java.text.Collator // HACK : calling back to Java to do unicode string compare. const char* str1 = createStringFromJSON(in1); const char* str2 = createStringFromJSON(in2); return uca_string_compare(str1, str2); }
static int compareStringsUnicode(const char** in1, const char** in2) { size_t len1, len2; bool free1, free2; const char* str1 = createStringFromJSON(in1, &len1, &free1); const char* str2 = createStringFromJSON(in2, &len2, &free2); int result = compareUnicode(str1, len1, str2, len2); if (free1) { free((char*)str1); } if (free2) { free((char*)str2); } return result; }