[kaffe] CVS kaffe (dalibor): Replaced macro by static inline function

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Wed Feb 11 09:49:04 2004


PatchSet 4414 
Date: 2004/02/11 17:46:04
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Replaced macro by static inline function

2004-02-11  Dalibor Topic <robilad@kaffe.org>

        * kaffe/kaffevm/verify.c
        (abstractMethodError): New static inline function.
        (ABSTRACT_METHOD_ERROR) Removed.
        (checkAbstractMethod) Use abstractMethodError instead of
        ABSTRACT_METHOD_ERROR macro.

Members: 
	ChangeLog:1.1997->1.1998 
	kaffe/kaffevm/verify.c:1.31->1.32 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1997 kaffe/ChangeLog:1.1998
--- kaffe/ChangeLog:1.1997	Wed Feb 11 17:23:48 2004
+++ kaffe/ChangeLog	Wed Feb 11 17:46:04 2004
@@ -1,5 +1,13 @@
 2004-02-11  Dalibor Topic <robilad@kaffe.org>
 
+        * kaffe/kaffevm/verify.c
+	(abstractMethodError): New static inline function.
+	(ABSTRACT_METHOD_ERROR) Removed.
+	(checkAbstractMethod) Use abstractMethodError instead of
+	ABSTRACT_METHOD_ERROR macro.
+
+2004-02-11  Dalibor Topic <robilad@kaffe.org>
+
 	* kaffe/kaffevm/verify.c
 	(poolError): New static inline function.
 	(POOLERROR): Removed.
Index: kaffe/kaffe/kaffevm/verify.c
diff -u kaffe/kaffe/kaffevm/verify.c:1.31 kaffe/kaffe/kaffevm/verify.c:1.32
--- kaffe/kaffe/kaffevm/verify.c:1.31	Wed Feb 11 17:23:50 2004
+++ kaffe/kaffe/kaffevm/verify.c	Wed Feb 11 17:46:05 2004
@@ -777,7 +777,18 @@
 	return(true);
 }
 
-
+static inline
+bool
+abstractMethodError(Method* method, errorInfo* einfo, const char * msg)
+{
+	postExceptionMessage(einfo, 
+			     JAVA_LANG(ClassFormatError),
+			     "in method \"%s.%s\": abstract methods cannot be %s",
+			     CLASS_CNAME(method->class),
+			     METHOD_NAMED(method),
+			     msg);
+	return(false);
+}
 
 /*
  * Given a method with its ACC_ABSTRACT flag set, this checks the the rest of the access flags
@@ -789,12 +800,6 @@
 bool
 checkAbstractMethod(Method* method, errorInfo* einfo)
 {
-#define ABSTRACT_METHOD_ERROR(_MSG) \
-	postExceptionMessage(einfo, JAVA_LANG(ClassFormatError), \
-			     "in method \"%s.%s\": abstract methods cannot be %s", \
-			     CLASS_CNAME(method->class), \
-			     METHOD_NAMED(method), _MSG); \
-	return(false)
 	
 #ifdef ABSTRACT_METHOD_VS_ABSTRACT_CLASS	
 	/* This is commented out because Sun's verifier doesn't care if an abstract method
@@ -840,21 +845,19 @@
 	
 	
 	/* enforce access flag rules of the JVML spec. for abstract methods */
-	if (METHOD_IS_PRIVATE(method))           { ABSTRACT_METHOD_ERROR("private");      }
-	else if (METHOD_IS_FINAL(method))        { ABSTRACT_METHOD_ERROR("final");        }
-	else if (METHOD_IS_NATIVE(method))       { ABSTRACT_METHOD_ERROR("native");       }
-	else if (METHOD_IS_STATIC(method))       { ABSTRACT_METHOD_ERROR("static");       }
-	else if (METHOD_IS_STRICT(method))       { ABSTRACT_METHOD_ERROR("strictfp");     }
+	if (METHOD_IS_PRIVATE(method))           { return abstractMethodError(method, einfo, "private");      }
+	else if (METHOD_IS_FINAL(method))        { return abstractMethodError(method, einfo, "final");        }
+	else if (METHOD_IS_NATIVE(method))       { return abstractMethodError(method, einfo, "native");       }
+	else if (METHOD_IS_STATIC(method))       { return abstractMethodError(method, einfo, "static");       }
+	else if (METHOD_IS_STRICT(method))       { return abstractMethodError(method, einfo, "strictfp");     }
 	
 	/* not enforced by Sun's verifier
 	 *
-	else if (METHOD_IS_SYNCHRONISED(method)) { ABSTRACT_METHOD_ERROR("synchronized"); }
+	else if (METHOD_IS_SYNCHRONISED(method)) { return abstractMethodError(method, einfo, "synchronized"); }
 	*/
 	
 	
 	return(true);
-	
-#undef ABSTRACT_METHOD_ERROR
 }