JNIEXPORT void SIGAR_JNI(ptql_SigarProcessQuery_create) (JNIEnv *env, jobject obj, jstring jptql) { int status; jboolean is_copy; sigar_ptql_query_t *query; sigar_ptql_error_t error; #ifdef WIN32 LPCTSTR ptql; char ptql_ch[3000]; ptql = (LPCTSTR)JENV->GetStringChars(env, jptql, &is_copy); SIGAR_W2A((LPCWSTR)ptql, ptql_ch, sizeof(ptql_ch)); status = sigar_ptql_query_create(&query, ptql_ch, &error); if (is_copy) { JENV->ReleaseStringChars(env, jptql, (const jchar *)ptql); } #else const char *ptql; ptql = JENV->GetStringUTFChars(env, jptql, &is_copy); status = sigar_ptql_query_create(&query, (char *)ptql, &error); if (is_copy) { JENV->ReleaseStringUTFChars(env, jptql, ptql); } #endif if (status != SIGAR_OK) { sigar_throw_ptql_malformed(env, error.message); } else { sigar_set_pointer(env, obj, query); } }
JNIEXPORT void SIGAR_JNI(ptql_SigarProcessQuery_create) (JNIEnv *env, jobject obj, jstring jptql) { int status; jboolean is_copy; const char *ptql; sigar_ptql_query_t *query; sigar_ptql_error_t error; ptql = JENV->GetStringUTFChars(env, jptql, &is_copy); status = sigar_ptql_query_create(&query, (char *)ptql, &error); if (is_copy) { JENV->ReleaseStringUTFChars(env, jptql, ptql); } if (status != SIGAR_OK) { sigar_throw_ptql_malformed(env, error.message); } else { sigar_set_pointer(env, obj, query); } }