MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / Java_AStyleInterface_AStyleMain

Function Java_AStyleInterface_AStyleMain

other_src/astyle/src/astyle_main.cpp:3017–3054  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3015// called by a java program to format the source code
3016// the function name is constructed from method names in the calling java program
3017extern "C" EXPORT
3018jstring STDCALL Java_AStyleInterface_AStyleMain(JNIEnv* env,
3019 jobject obj,
3020 jstring textInJava,
3021 jstring optionsJava)
3022{
3023 g_env = env; // make object available globally
3024 g_obj = obj; // make object available globally
3025
3026 jstring textErr = env->NewStringUTF(""); // zero length text returned if an error occurs
3027
3028 // get the method ID
3029 jclass cls = env->GetObjectClass(obj);
3030 g_mid = env->GetMethodID(cls, "ErrorHandler","(ILjava/lang/String;)V");
3031 if (g_mid == 0)
3032 {
3033 cout << "Cannot find java method ErrorHandler" << endl;
3034 return textErr;
3035 }
3036
3037 // convert jstring to char*
3038 const char* textIn = env->GetStringUTFChars(textInJava, NULL);
3039 const char* options = env->GetStringUTFChars(optionsJava, NULL);
3040
3041 // call the C++ formatting function
3042 char* textOut = AStyleMain(textIn, options, javaErrorHandler, javaMemoryAlloc);
3043 // if an error message occurred it was displayed by errorHandler
3044 if (textOut == NULL)
3045 return textErr;
3046
3047 // release memory
3048 jstring textOutJava = env->NewStringUTF(textOut);
3049 delete [] textOut;
3050 env->ReleaseStringUTFChars(textInJava, textIn);
3051 env->ReleaseStringUTFChars(optionsJava, options);
3052
3053 return textOutJava;
3054}
3055
3056// Call the Java error handler
3057void STDCALL javaErrorHandler(int errorNumber, const char* errorMessage)

Callers

nothing calls this directly

Calls 1

AStyleMainFunction · 0.85

Tested by

no test coverage detected