[kaffe] CVS kaffe (robilad): Small warning fix for main.c

Kaffe CVS cvs-commits at kaffe.org
Thu Sep 8 05:30:48 PDT 2005


PatchSet 6880 
Date: 2005/09/08 12:26:23
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Small warning fix for main.c

2005-09-08  Dalibor Topic  <robilad at kaffe.org>

        * kaffe/kaffe/main.c: Include stdlib.h for exit.
        Use EXIT_FAILURE and EXIT_SUCCESS everywhere.
        (global_env) Removed global variable.
        (checkException) Added JNIEnv* parameter, so that it no
        longer needs to use global_env.
        (main): New local variable env, declaredas void* to fix
        type-punning warning. Check if JNI_CreateJavaVM failed,
        and exit with an error message.
        (main2): Pass JNIEnv pointer env on to checkException
        invocations.
        (checkException): Replaced use of global_env by env.

Members: 
	ChangeLog:1.4401->1.4402 
	kaffe/kaffe/main.c:1.91->1.92 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4401 kaffe/ChangeLog:1.4402
--- kaffe/ChangeLog:1.4401	Wed Sep  7 16:03:25 2005
+++ kaffe/ChangeLog	Thu Sep  8 12:26:23 2005
@@ -1,3 +1,17 @@
+2005-09-08  Dalibor Topic  <robilad at kaffe.org>
+
+	* kaffe/kaffe/main.c: Include stdlib.h for exit.
+	Use EXIT_FAILURE and EXIT_SUCCESS everywhere.
+	(global_env) Removed global variable.
+	(checkException) Added JNIEnv* parameter, so that it no
+	longer needs to use global_env.
+	(main): New local variable env, declaredas void* to fix
+	type-punning warning. Check if JNI_CreateJavaVM failed, 
+	and exit with an error message.
+	(main2): Pass JNIEnv pointer env on to checkException
+	invocations. 
+	(checkException): Replaced use of global_env by env.
+
 2005-09-03  Ito Kazumitsu  <kaz at maczuka.gcd.org>
 
 	* libraries/javalib/gnu/java/nio/charset/UTF_16Decoder.java:
Index: kaffe/kaffe/kaffe/main.c
diff -u kaffe/kaffe/kaffe/main.c:1.91 kaffe/kaffe/kaffe/main.c:1.92
--- kaffe/kaffe/kaffe/main.c:1.91	Mon Aug  8 23:30:55 2005
+++ kaffe/kaffe/kaffe/main.c	Thu Sep  8 12:26:26 2005
@@ -13,6 +13,8 @@
  * of this file.
  */
 
+#include <stdlib.h>
+
 #include "config.h"
 #include "config-std.h"
 #include "config-mem.h"
@@ -59,14 +61,13 @@
 #include "jni.h"
 
 KaffeVM_Arguments vmargs;
-JNIEnv* global_env;
 JavaVM* global_vm;
 static int isJar = 0;
 
 static int options(char**, int);
 static void usage(void);
 static size_t parseSize(char*);
-static int checkException(void);
+static int checkException(JNIEnv* env);
 static int main2(JNIEnv* env, char *argv[], int farg, int argc);
 
 #define	KAFFEHOME	"KAFFEHOME"
@@ -86,6 +87,7 @@
 {
 	int farg;
 	const char* cp;
+	void* env;
 
 #if defined(MAIN_MD)
 	MAIN_MD;
@@ -165,20 +167,27 @@
 	/* Get the class name to start with */
 	if (argv[farg] == 0) {
 		usage();
-		exit(1);
+		exit(EXIT_FAILURE);
 	}
 
 	if (strcmp(argv[farg] + strlen(argv[farg]) - strlen(".class"),
 		   ".class") == 0) {
 		fprintf(stderr,
 			"Please do not specify the .class extension\n");
-		exit(1);
+		exit(EXIT_FAILURE);
 	}
 
 	/* Initialise */
-	JNI_CreateJavaVM(&global_vm, &global_env, &vmargs);
+	if (JNI_CreateJavaVM(&global_vm, 
+			     &env, 
+			     &vmargs) 
+	    < 0)
+	  {
+	    fprintf(stderr, "Cannot create the Java VM\n");
+	    exit(EXIT_FAILURE);
+	  }
 
-	return main2(global_env, argv, farg, argc);
+	return main2(env, argv, farg, argc);
 }
 
 /*
@@ -241,34 +250,34 @@
 	}
 	
 	mcls = (*env)->FindClass(env, exec);
-	if (checkException())
+	if (checkException(env))
 		goto exception_happened;
 	
 	/* ... and run main. */
 	mmth = (*env)->GetStaticMethodID(env,
 	    mcls, "main", "([Ljava/lang/String;)V");
-	if (checkException())
+	if (checkException(env))
 		goto exception_happened;
 
 	/* Build an array of strings as the arguments */
 	cls = (*env)->FindClass(env, "java/lang/String");
-	if (checkException())
+	if (checkException(env))
 		goto exception_happened;
 	args = (*env)->NewObjectArray(env, argc, cls, NULL);
-	if (checkException())
+	if (checkException(env))
 		goto exception_happened;
 	for (i = 0; i < argc; i++) {
 		str = (*env)->NewStringUTF(env, argv[farg+i]);
-		if (checkException())
+		if (checkException(env))
 			goto exception_happened;
 		(*env)->SetObjectArrayElement(env, args, i, str);
-		if (checkException())
+		if (checkException(env))
 			goto exception_happened;
 	}
 
 	/* Call method, check for errors and then exit */
 	(*env)->CallStaticVoidMethod(env, mcls, mmth, args);
-	if (checkException())
+	if (checkException(env))
 	  goto exception_happened;
 
 	ret_code = 0;
@@ -284,35 +293,35 @@
 }
 
 static int
-checkException(void)
+checkException(JNIEnv* env)
 {
 	jobject e;
 	jclass eiic;
 
 	/* Display exception stack trace */
-	if ((e = (*global_env)->ExceptionOccurred(global_env)) == NULL)
+	if ((e = (*env)->ExceptionOccurred(env)) == NULL)
 		return (0);
-	(*global_env)->DeleteLocalRef(global_env, e);
-	(*global_env)->ExceptionDescribe(global_env);
-	(*global_env)->ExceptionClear(global_env);
+	(*env)->DeleteLocalRef(env, e);
+	(*env)->ExceptionDescribe(env);
+	(*env)->ExceptionClear(env);
 
 	/* Display inner exception in ExceptionInInitializerError case */
-	eiic = (*global_env)->FindClass(global_env, "java/lang/ExceptionInInitializerError");
-	if ((*global_env)->ExceptionOccurred(global_env) != NULL) {
-		(*global_env)->ExceptionClear(global_env);
+	eiic = (*env)->FindClass(env, "java/lang/ExceptionInInitializerError");
+	if ((*env)->ExceptionOccurred(env) != NULL) {
+		(*env)->ExceptionClear(env);
 		return (1);
 	}
-	if ((*global_env)->IsInstanceOf(global_env, e, eiic)) {
-		e = (*global_env)->CallObjectMethod(global_env, e,
-		    (*global_env)->GetMethodID(global_env, (*global_env)->GetObjectClass(global_env, e),
+	if ((*env)->IsInstanceOf(env, e, eiic)) {
+		e = (*env)->CallObjectMethod(env, e,
+		    (*env)->GetMethodID(env, (*env)->GetObjectClass(env, e),
 			"getException", "()Ljava/lang/Throwable;"));
-		if ((*global_env)->ExceptionOccurred(global_env) != NULL) {
-			(*global_env)->ExceptionClear(global_env);
+		if ((*env)->ExceptionOccurred(env) != NULL) {
+			(*env)->ExceptionClear(env);
 			return (1);
 		}
 		if (e != NULL) {
-			(*global_env)->Throw(global_env, e);
-			return (checkException());
+			(*env)->Throw(env, e);
+			return (checkException(env));
 		}
 	}
 	return (1);
@@ -386,7 +395,7 @@
        	if ((newbootcpath = malloc(bootcpathlength)) == NULL) 
 	{
            	fprintf(stderr,  _("Error: out of memory.\n"));
-                exit(1);
+                exit(EXIT_FAILURE);
       	}
 
         /* Construct new boot classpath */
@@ -426,15 +435,15 @@
 
 		if (strcmp(argv[i], "-help") == 0) {
 			usage();
-			exit(0);
+			exit(EXIT_SUCCESS);
 		}
 		else if (strcmp(argv[i], "-version") == 0) {
 			printShortVersion();
-			exit(0);
+			exit(EXIT_SUCCESS);
 		}
 		else if (strcmp(argv[i], "-fullversion") == 0) {
 			printFullVersion();
-			exit(0);
+			exit(EXIT_SUCCESS);
 		}
 #if defined(__ia64__)
 		else if (strcmp(argv[i], "-ia32") == 0) {
@@ -450,7 +459,7 @@
 				fprintf(stderr, 
 				    "Error: No path found for %s option.\n",
 				    argv[i - 1]);
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			/* set the new classpath */
@@ -465,7 +474,7 @@
 				fprintf(stderr, 
 				    "Error: No path found for %s option.\n",
 				    argv[i - 1]);
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			cpathlength = ((vmargs.classpath != NULL) ? strlen(vmargs.classpath) : 0)
@@ -476,7 +485,7 @@
 			/* Get longer buffer FIXME:  free the old one */
 			if ((newcpath = malloc(cpathlength)) == NULL) {
 				fprintf(stderr,  _("Error: out of memory.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			/* Construct new classpath */
@@ -539,7 +548,7 @@
                         /* Get longer buffer FIXME:  free the old one */
                         if ((newbootcpath = malloc(bootcpathlength)) == NULL) {
                                 fprintf(stderr,  _("Error: out of memory.\n"));
-                                exit(1);
+                                exit(EXIT_FAILURE);
                         }
 
                         /* Construct new boot classpath */
@@ -566,7 +575,7 @@
 			/* Get longer buffer FIXME:  free the old one */
 			if ((newbootcpath = malloc(bootcpathlength)) == NULL) {
 				fprintf(stderr,  _("Error: out of memory.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			/* Construct new boot classpath */
@@ -591,7 +600,7 @@
 			/* Get longer buffer FIXME:  free the old one */
 			if ((newbootcpath = malloc(bootcpathlength)) == NULL) {
 				fprintf(stderr,  _("Error: out of memory.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			/* Construct new boot classpath */
@@ -613,7 +622,7 @@
 			/* Get longer buffer FIXME:  free the old one */
 			if ((newbootcpath = malloc(bootcpathlength)) == NULL) {
 				fprintf(stderr,  _("Error: out of memory.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			/* Construct new boot classpath */
@@ -628,7 +637,7 @@
 				i++;
 				if (argv[i] == 0) {
 					fprintf(stderr, _("Error: No stack size found for -ss option.\n"));
-					exit(1);
+					exit(EXIT_FAILURE);
 				}
 				sz = parseSize(argv[i]);
 			} else {
@@ -647,7 +656,7 @@
 				i++;
 				if (argv[i] == 0) {
 					fprintf(stderr,  _("Error: No heap size found for -mx option.\n"));
-					exit(1);
+					exit(EXIT_FAILURE);
 				}
 				if (strcmp(argv[i], "unlimited") == 0)
 					vmargs.maxHeapSize = UNLIMITED_HEAP;
@@ -666,7 +675,7 @@
 				i++;
 				if (argv[i] == 0) {
 					fprintf(stderr,  _("Error: No heap size found for -ms option.\n"));
-					exit(1);
+					exit(EXIT_FAILURE);
 				}
 				vmargs.minHeapSize = parseSize(argv[i]);
 			} else {
@@ -678,7 +687,7 @@
 				i++;
 				if (argv[i] == 0) {
 					fprintf(stderr,  _("Error: No heap size found for -as option.\n"));
-					exit(1);
+					exit(EXIT_FAILURE);
 				}
 				vmargs.allocHeapSize = parseSize(argv[i]);
 			} else {
@@ -724,7 +733,7 @@
 			newcpath = (char *)malloc (cpathlength);
 			if (newcpath == NULL) {
 				fprintf(stderr,  _("Error: out of memory.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
 
 			strcpy (newcpath, argv[i+1]);
@@ -844,7 +853,7 @@
                                 fprintf(stderr, 
 					_("Error: -vmstats option requires a "
 					"second arg.\n"));
-                                exit(1);
+                                exit(EXIT_FAILURE);
                         }
                         statsSetMaskStr(argv[i]);
                 }
@@ -856,10 +865,10 @@
                                 fprintf(stderr, 
 					_("Error: -vmdebug option requires a "
 					"debug flag. Use `list' for a list.\n"));
-                                exit(1);
+                                exit(EXIT_FAILURE);
                         }
                         if (!dbgSetMaskStr(argv[i]))
-				exit(1);
+				exit(EXIT_FAILURE);
                 }
 #endif
                 else if (strcmp(argv[i], "-debug-fd") == 0) {
@@ -868,13 +877,13 @@
                         if (argv[i] == 0) { /* forgot second arg */
                                 fprintf(stderr, 
 					_("Error: -debug-fd an open descriptor.\n"));
-                                exit(1);
+                                exit(EXIT_FAILURE);
                         }
 			dbgSetDprintfFD(strtol(argv[i], &end, 10));
 			if (end != 0 && *end != '\0') {
 				fprintf(stderr,
 					_("Error: -debug-fd requires an integer.\n"));
-				exit(1);
+				exit(EXIT_FAILURE);
 			}
                 }
 		else if (argv[i][1] ==  'D') {




More information about the kaffe mailing list