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

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Sun Feb 15 10:39:02 2004


PatchSet 4426 
Date: 2004/02/15 18:23:21
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Replaced part of macro by static inline function

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

        * kaffe/kaffevm/verify.c
        (ensureLocalTypeErrorInVerifyBasicBlock): New static inline function.
        (ENSURE_LOCAL_TYPE) Use ensureLocalTypeErrorInVerifyBasicBlock.
        Removed unnecessary undef for VERIFY_ERROR.

Members: 
	ChangeLog:1.2009->1.2010 
	kaffe/kaffevm/verify.c:1.42->1.43 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2009 kaffe/ChangeLog:1.2010
--- kaffe/ChangeLog:1.2009	Sun Feb 15 16:40:44 2004
+++ kaffe/ChangeLog	Sun Feb 15 18:23:21 2004
@@ -1,6 +1,13 @@
 2004-02-15  Dalibor Topic <robilad@kaffe.org>
 
         * kaffe/kaffevm/verify.c
+        (ensureLocalTypeErrorInVerifyBasicBlock): New static inline function.
+        (ENSURE_LOCAL_TYPE) Use ensureLocalTypeErrorInVerifyBasicBlock.
+	Removed unnecessary undef for VERIFY_ERROR.
+
+2004-02-15  Dalibor Topic <robilad@kaffe.org>
+
+        * kaffe/kaffevm/verify.c
         (verifyErrorInVerifyBasicBlock): New static inline function.
         (VERIFY_ERROR) Removed.
         Replaced use of VERIFY_ERROR by verifyErrorInVerifyBasicBlock.
Index: kaffe/kaffe/kaffevm/verify.c
diff -u kaffe/kaffe/kaffevm/verify.c:1.42 kaffe/kaffe/kaffevm/verify.c:1.43
--- kaffe/kaffe/kaffevm/verify.c:1.42	Sun Feb 15 16:40:45 2004
+++ kaffe/kaffe/kaffevm/verify.c	Sun Feb 15 18:23:23 2004
@@ -2014,7 +2014,6 @@
 #undef GET_WIDX
 #undef CHECK_POOL_IDX
 #undef ENSURE_NON_WIDE
-#undef VERIFY_ERROR
 }
 
 
@@ -2492,6 +2491,24 @@
 }
 
 /*
+ * Helper function for error reporting in ENSURE_LOCAL_TYPE macro in verifyBasicBlock.
+ */
+static inline
+bool
+ensureLocalTypeErrorInVerifyBasicBlock(errorInfo* einfo,
+				       const Method* method,
+				       BlockInfo* block,
+				       Hjava_lang_Class* this,
+				       unsigned int n)
+{
+	if (block->locals[n].data.class == TUNSTABLE->data.class) {
+		return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access an unstable local variable");
+	} else {
+		return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access a local variable not of the correct type");
+	}
+}
+
+/*
  * verifyBasicBlock()
  *   Simulates execution of a basic block by modifying its simulated operand stack and local variable array.
  */
@@ -2547,11 +2564,7 @@
 	/* checks whether the specified local variable is of the specified type. */
 #define ENSURE_LOCAL_TYPE(_N, _TINFO) \
 	if (!typecheck(einfo, this, (_TINFO), &block->locals[_N])) { \
-		if (block->locals[_N].data.class == TUNSTABLE->data.class) { \
-			return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access an unstable local variable"); \
-		} else { \
-			return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access a local variable not of the correct type"); \
-		} \
+		return ensureLocalTypeErrorInVerifyBasicBlock(einfo, method, block, this, _N); \
 	} 
 	
 	/* only use with TLONG and TDOUBLE */