diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b64230f..a452ea62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,8 @@ if(APPLE) message(STATUS "Configure macos platform module") endif() + if (UNIX AND NOT APPLE) add_subdirectory(linux) message(STATUS "Configure linux platform module") -endif() \ No newline at end of file +endif() diff --git a/shared/cc/StringUTF16.cc b/shared/cc/StringUTF16.cc index a3b54b56..2fc240e5 100644 --- a/shared/cc/StringUTF16.cc +++ b/shared/cc/StringUTF16.cc @@ -70,14 +70,16 @@ jwm::StringUTF16::StringUTF16(const uint32_t *str) { } jwm::JNILocal jwm::StringUTF16::toJString(JNIEnv* env) const { - return jwm::JNILocal(env, env->NewString(c_str(), static_cast(length()))); + return jwm::JNILocal(env, env->NewString(reinterpret_cast(c_str()), static_cast(length()))); } jwm::StringUTF16 jwm::StringUTF16::makeFromJString(JNIEnv* env, jstring js) { jwm::StringUTF16 result; jsize length = env->GetStringLength(js); const jchar* chars = env->GetStringChars(js, nullptr); - result = jwm::StringUTF16(chars, length); + + const char16_t* signed_chars = reinterpret_cast(chars); + result = jwm::StringUTF16(signed_chars, length); env->ReleaseStringChars(js, chars); return result; } diff --git a/shared/cc/StringUTF16.hh b/shared/cc/StringUTF16.hh index cf58976a..e2ebeae6 100644 --- a/shared/cc/StringUTF16.hh +++ b/shared/cc/StringUTF16.hh @@ -10,9 +10,9 @@ namespace jwm /** * @brief std::string which uses jchar as a character type */ - class StringUTF16: public std::basic_string { + class StringUTF16: public std::basic_string { public: - using std::basic_string::basic_string; + using std::basic_string::basic_string; /** * Constructs StringUTF16 from C style string.