harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arc...@apache.org
Subject svn commit: r380968 - in /incubator/harmony/enhanced/jchevm/libjc: ./ native/
Date Sat, 25 Feb 2006 19:23:35 GMT
Author: archie
Date: Sat Feb 25 11:23:32 2006
New Revision: 380968

URL: http://svn.apache.org/viewcvs?rev=380968&view=rev
Log:
Small refactoring of _jc_subclass_of() parameter types.

Modified:
    incubator/harmony/enhanced/jchevm/libjc/class_loader.c
    incubator/harmony/enhanced/jchevm/libjc/definitions.h
    incubator/harmony/enhanced/jchevm/libjc/exception.c
    incubator/harmony/enhanced/jchevm/libjc/gc_final.c
    incubator/harmony/enhanced/jchevm/libjc/gc_scan.c
    incubator/harmony/enhanced/jchevm/libjc/heap.c
    incubator/harmony/enhanced/jchevm/libjc/initialize.c
    incubator/harmony/enhanced/jchevm/libjc/instance.c
    incubator/harmony/enhanced/jchevm/libjc/jni_invoke.c
    incubator/harmony/enhanced/jchevm/libjc/jni_native.c
    incubator/harmony/enhanced/jchevm/libjc/libjc.h
    incubator/harmony/enhanced/jchevm/libjc/native/gnu_classpath_VMSystemProperties.c
    incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMClassLoader.c
    incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMThread.c
    incubator/harmony/enhanced/jchevm/libjc/new.c
    incubator/harmony/enhanced/jchevm/libjc/reflect.c
    incubator/harmony/enhanced/jchevm/libjc/stack.c
    incubator/harmony/enhanced/jchevm/libjc/thread.c

Modified: incubator/harmony/enhanced/jchevm/libjc/class_loader.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/class_loader.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/class_loader.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/class_loader.c Sat Feb 25 11:23:32 2006
@@ -40,7 +40,7 @@
 		_jc_post_exception(env, _JC_NullPointerException);
 		return NULL;
 	}
-	_JC_ASSERT(_jc_subclass_of(obj, vm->boot.types.ClassLoader));
+	_JC_ASSERT(_jc_subclass_of(obj->type, vm->boot.types.ClassLoader));
 
 	/* Lock VM */
 	_JC_MUTEX_LOCK(env, vm->mutex);

Modified: incubator/harmony/enhanced/jchevm/libjc/definitions.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/definitions.h?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/definitions.h (original)
+++ incubator/harmony/enhanced/jchevm/libjc/definitions.h Sat Feb 25 11:23:32 2006
@@ -263,13 +263,15 @@
  * Access to special object fields.
  */
 #ifndef NDEBUG
-#define _JC_VMFIELD(_vm, _obj, _class, _field, _type)			\
+#define _JC_VMFIELD(_vm, _obj0, _class, _field, _type)			\
     ({									\
+	_jc_object *const _obj = (_obj0);				\
 	_jc_field *const _f = _vm->boot.fields._class._field;		\
 									\
-	_JC_ASSERT(_jc_subclass_of((_obj), _f->class));			\
+	_JC_ASSERT(_obj->type != NULL);					\
+	_JC_ASSERT(_jc_subclass_of(_obj->type, _f->class));		\
 	_JC_ASSERT(!_JC_ACC_TEST(_f, STATIC));				\
-	(_type *)((char *)(_obj) + _f->offset);				\
+	(_type *)((char *)_obj + _f->offset);				\
     })
 #define _JC_VMSTATICFIELD(_vm, _class, _field, _type)			\
     ({									\

Modified: incubator/harmony/enhanced/jchevm/libjc/exception.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/exception.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/exception.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/exception.c Sat Feb 25 11:23:32 2006
@@ -214,7 +214,8 @@
 	_jc_jvm *const vm = env->vm;
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(exception, env->vm->boot.types.Throwable));
+	_JC_ASSERT(_jc_subclass_of(exception->type,
+	    env->vm->boot.types.Throwable));
 
 	/* Verbosity */
 	if ((env->vm->verbose_flags & (1 << _JC_VERBOSE_EXCEPTIONS)) != 0) {
@@ -325,7 +326,7 @@
 	_JC_ASSERT(e != NULL);
 
 	/* If type doesn't match, return NULL and leave it posted */
-	if (type != NULL && !_jc_subclass_of(e, type))
+	if (type != NULL && !_jc_subclass_of(e->type, type))
 		return NULL;
 
 	/* Verbosity */
@@ -407,7 +408,7 @@
 
 	/* Sanity check */
 	_JC_ASSERT(e != NULL);
-	_JC_ASSERT(_jc_subclass_of(e, vm->boot.types.Throwable));
+	_JC_ASSERT(_jc_subclass_of(e->type, vm->boot.types.Throwable));
 
 	/* Print exception class */
 	_jc_fprint_noslash(vm, fp, e->type->name);

Modified: incubator/harmony/enhanced/jchevm/libjc/gc_final.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/gc_final.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/gc_final.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/gc_final.c Sat Feb 25 11:23:32 2006
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *
- * $Id: gc_final.c,v 1.3 2005/03/16 15:31:12 archiecobbs Exp $
+ * $Id$
  */
 
 #include "libjc.h"
@@ -48,7 +48,7 @@
 		/* Check for live, enqueable references */
 		if ((lockword & (_JC_LW_SPECIAL_BIT|_JC_LW_LIVE_BIT))
 		      == (_JC_LW_SPECIAL_BIT|_JC_LW_LIVE_BIT)
-		    && _jc_subclass_of(obj, vm->boot.types.Reference)
+		    && _jc_subclass_of(obj->type, vm->boot.types.Reference)
 		    && *_JC_VMFIELD(vm, obj,
 		      Reference, queue, _jc_object *) != NULL) {
 			_jc_object *referent;

Modified: incubator/harmony/enhanced/jchevm/libjc/gc_scan.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/gc_scan.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/gc_scan.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/gc_scan.c Sat Feb 25 11:23:32 2006
@@ -255,7 +255,7 @@
 			_jc_object **referent;
 
 			/* Rule out non-Reference objects */
-			if (!_jc_subclass_of(obj, vm->boot.types.Reference))
+			if (!_jc_subclass_of(obj->type, vm->boot.types.Reference))
 				goto keep_it;
 
 			/* Rule out referents already cleared or reachable */
@@ -270,14 +270,14 @@
 			 * then a soft reference's referent must be live.
 			 */
 			_JC_ASSERT(!trace->follow_soft
-			    || !_jc_subclass_of(obj,
+			    || !_jc_subclass_of(obj->type,
 			      vm->boot.types.SoftReference));
 
 			/*
 			 * Rule out phantom references if the referent
 			 * object is not recyclable yet.
 			 */
-			if (_jc_subclass_of(obj,
+			if (_jc_subclass_of(obj->type,
 			      vm->boot.types.PhantomReference)
 			    && ((*referent)->lockword
 			      & (_JC_LW_FINALIZE_BIT|_JC_LW_KEEP_BIT)) != 0)
@@ -687,13 +687,16 @@
 		 * Special case: soft/weak/phantom references.
 		 * We have to handle the 'referent' field specially.
 		 */
-		if (!_jc_subclass_of(obj, vm->boot.types.Reference))
+		if (!_jc_subclass_of(obj->type, vm->boot.types.Reference))
 			goto not_reference_object;
 
 		/* Sanity check */
-		_JC_ASSERT(_jc_subclass_of(obj, vm->boot.types.WeakReference)
-		    || _jc_subclass_of(obj, vm->boot.types.SoftReference)
-		    || _jc_subclass_of(obj, vm->boot.types.PhantomReference));
+		_JC_ASSERT(_jc_subclass_of(obj->type,
+		      vm->boot.types.WeakReference)
+		    || _jc_subclass_of(obj->type,
+		      vm->boot.types.SoftReference)
+		    || _jc_subclass_of(obj->type,
+		      vm->boot.types.PhantomReference));
 
 		/* If "referent" is null, treat object normally */
 		if ((referent = *_JC_VMFIELD(vm, obj,
@@ -702,7 +705,7 @@
 
 		/* If we're following soft references, treat them normally */
 		if (trace->follow_soft
-		    && _jc_subclass_of(obj, vm->boot.types.SoftReference))
+		    && _jc_subclass_of(obj->type, vm->boot.types.SoftReference))
 			goto do_normal_object;
 
 		/* Follow all object references except "referent" */
@@ -805,7 +808,7 @@
 		 * the class loader associated with the ClassLoader object;
 		 * they may be different and neither be the boot loader.
 		 */
-		if (_jc_subclass_of(obj, vm->boot.types.ClassLoader)) {
+		if (_jc_subclass_of(obj->type, vm->boot.types.ClassLoader)) {
 			_jc_class_loader *cl_loader;
 
 			/* Get ClassLoader loader and normal object loader */

Modified: incubator/harmony/enhanced/jchevm/libjc/heap.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/heap.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/heap.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/heap.c Sat Feb 25 11:23:32 2006
@@ -705,7 +705,8 @@
 		_jc_heap_check_alloc(vm, obj);
 	} else {
 		_JC_ASSERT(!_JC_LW_TEST(type->initial_lockword, FINALIZE));
-		_JC_ASSERT(!_jc_subclass_of(obj, vm->boot.types.Reference));
+		_JC_ASSERT(!_jc_subclass_of(obj->type,
+		    vm->boot.types.Reference));
 	}
 
 	/* Check lockword */

Modified: incubator/harmony/enhanced/jchevm/libjc/initialize.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/initialize.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/initialize.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/initialize.c Sat Feb 25 11:23:32 2006
@@ -166,7 +166,7 @@
 step10:
 	/* Step 10 */
 	_JC_ASSERT(env->pending != NULL);
-	if (!_jc_subclass_of(env->pending, vm->boot.types.Error)) {
+	if (!_jc_subclass_of(env->pending->type, vm->boot.types.Error)) {
 		_jc_word param;
 		jobject eref;
 

Modified: incubator/harmony/enhanced/jchevm/libjc/instance.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/instance.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/instance.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/instance.c Sat Feb 25 11:23:32 2006
@@ -113,27 +113,20 @@
 }
 
 /*
- * Determine if 'obj' is an instance of 'type' or any subclass thereof.
- *
- * This assumes that 'obj' is not NULL. If type is an interface
- * or array type then false is always returned.
+ * Determine if 'type' is 'stype' or any subclass thereof.
  */
 jboolean
-_jc_subclass_of(_jc_object *obj, _jc_type *type)
+_jc_subclass_of(_jc_type *type, _jc_type *stype)
 {
-	_jc_type *obj_type;
-
-	/* Sanity check */
-	_JC_ASSERT(obj != NULL);
-
-	/* Check superclasses */
-	for (obj_type = obj->type;
-	    obj_type != NULL; obj_type = obj_type->superclass) {
-		if (obj_type == type)
-			return JNI_TRUE;
+	/* Check superclasses of 'type' */
+	while (type != stype) {
+		type = type->superclass;
+		if (type == NULL)
+			return JNI_FALSE;
 	}
 
-	/* Not found */
-	return JNI_FALSE;
+	/* Match */
+	return JNI_TRUE;
 }
+
 

Modified: incubator/harmony/enhanced/jchevm/libjc/jni_invoke.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/jni_invoke.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/jni_invoke.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/jni_invoke.c Sat Feb 25 11:23:32 2006
@@ -251,7 +251,8 @@
 
 	/* Sanity check group */
 	_JC_ASSERT(args == NULL || args->group == NULL
-	    || _jc_subclass_of(*args->group, vm->boot.types.ThreadGroup));
+	    || _jc_subclass_of((*args->group)->type,
+	      vm->boot.types.ThreadGroup));
 
 	/* Create java.lang.Thread instance */
 	if (_jc_thread_create_instance(env,

Modified: incubator/harmony/enhanced/jchevm/libjc/jni_native.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/jni_native.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/jni_native.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/jni_native.c Sat Feb 25 11:23:32 2006
@@ -41,7 +41,7 @@
 	_JC_ASSERT(*obj != NULL);
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(*obj, field->class));
+	_JC_ASSERT(_jc_subclass_of((*obj)->type, field->class));
 
 	/* Get object field */
 	fobj = *(_jc_object **)((char *)(*obj) + field->offset);
@@ -76,7 +76,7 @@
 	_JC_ASSERT(*obj != NULL);					\
 									\
 	/* Sanity check */						\
-	_JC_ASSERT(_jc_subclass_of(*obj, field->class));		\
+	_JC_ASSERT(_jc_subclass_of((*obj)->type, field->class));		\
 									\
 	/* Get field */							\
 	value = *(j ## _type *)((char *)(*obj) + field->offset);	\
@@ -117,7 +117,7 @@
 	_JC_ASSERT(*obj != NULL);
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(*obj, field->class));
+	_JC_ASSERT(_jc_subclass_of((*obj)->type, field->class));
 	_JC_ASSERT(value == NULL || *value != NULL);
 
 	/* Set field */
@@ -151,7 +151,7 @@
 	_JC_ASSERT(*obj != NULL);					\
 									\
 	/* Sanity check */						\
-	_JC_ASSERT(_jc_subclass_of(*obj, field->class));		\
+	_JC_ASSERT(_jc_subclass_of((*obj)->type, field->class));		\
 									\
 	/* Set field */							\
 	*(j ## _type *)((char *)(*obj) + field->offset) = value;	\
@@ -1737,7 +1737,7 @@
 
 	/* Sanity check */
 	_JC_ASSERT(*obj != NULL);
-	_JC_ASSERT(_jc_subclass_of(*obj, env->vm->boot.types.Throwable));
+	_JC_ASSERT(_jc_subclass_of((*obj)->type, env->vm->boot.types.Throwable));
 
 	/* Post exception */
 	_jc_post_exception_object(env, *obj);

Modified: incubator/harmony/enhanced/jchevm/libjc/libjc.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/libjc.h?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/libjc.h (original)
+++ incubator/harmony/enhanced/jchevm/libjc/libjc.h Sat Feb 25 11:23:32 2006
@@ -188,7 +188,7 @@
 				_jc_type *type);
 extern int		_jc_assignable_from(_jc_env *env, _jc_type *from,
 				_jc_type *to);
-extern jboolean		_jc_subclass_of(_jc_object *obj, _jc_type *type);
+extern jboolean		_jc_subclass_of(_jc_type *type, _jc_type *stype);
 
 /* interp.c */
 extern jboolean		_jc_interp_z(_jc_env *env, ...);

Modified: incubator/harmony/enhanced/jchevm/libjc/native/gnu_classpath_VMSystemProperties.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/native/gnu_classpath_VMSystemProperties.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/native/gnu_classpath_VMSystemProperties.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/native/gnu_classpath_VMSystemProperties.c Sat
Feb 25 11:23:32 2006
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *
- * $Id: gnu_classpath_VMSystemProperties.c,v 1.2 2005/05/15 21:41:01 archiecobbs Exp $
+ * $Id$
  */
 
 #include "libjc.h"
@@ -44,7 +44,7 @@
 		goto done;
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(props, type));
+	_JC_ASSERT(_jc_subclass_of(props->type, type));
 	_JC_ASSERT(_JC_FLG_TEST(type, INITIALIZED));
 
 	/* Find Properties.setProperty() method */

Modified: incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMClassLoader.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMClassLoader.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMClassLoader.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMClassLoader.c Sat Feb 25 11:23:32
2006
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *
- * $Id: java_lang_VMClassLoader.c,v 1.15 2005/11/09 18:14:22 archiecobbs Exp $
+ * $Id$
  */
 
 #include "libjc.h"
@@ -53,7 +53,7 @@
 	if (cl == NULL)
 		loader = vm->boot.loader;
 	else {
-		_JC_ASSERT(_jc_subclass_of(cl,
+		_JC_ASSERT(_jc_subclass_of(cl->type,
 		    env->vm->boot.types.ClassLoader));
 		if ((loader = _jc_get_loader(env, cl)) == NULL)
 			goto done;
@@ -151,7 +151,7 @@
 	if (loader_obj == NULL)
 		loader = vm->boot.loader;
 	else {
-		_JC_ASSERT(_jc_subclass_of(loader_obj,
+		_JC_ASSERT(_jc_subclass_of(loader_obj->type,
 		    env->vm->boot.types.ClassLoader));
 		if ((loader = _jc_get_loader(env, loader_obj)) == NULL)
 			_jc_throw_exception(env);

Modified: incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMThread.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMThread.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMThread.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/native/java_lang_VMThread.c Sat Feb 25 11:23:32
2006
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *
- * $Id: java_lang_VMThread.c,v 1.7 2005/11/09 18:14:22 archiecobbs Exp $
+ * $Id$
  */
 
 #include "libjc.h"
@@ -198,7 +198,7 @@
 	}
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(throwable, vm->boot.types.Throwable));
+	_JC_ASSERT(_jc_subclass_of(throwable->type, vm->boot.types.Throwable));
 
 	/* Lock VM so thread doesn't disappear */
 	_JC_MUTEX_LOCK(env, vm->mutex);

Modified: incubator/harmony/enhanced/jchevm/libjc/new.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/new.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/new.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/new.c Sat Feb 25 11:23:32 2006
@@ -15,7 +15,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  *
- * $Id: new.c,v 1.12 2005/03/20 23:33:28 archiecobbs Exp $
+ * $Id$
  */
 
 #include "libjc.h"
@@ -197,7 +197,7 @@
 	obj->type = type;
 
 	/* Another sanity check */
-	_JC_ASSERT(!_jc_subclass_of(obj, env->vm->boot.types.Reference));
+	_JC_ASSERT(!_jc_subclass_of(type, env->vm->boot.types.Reference));
 
 	/* Done */
 	return obj;

Modified: incubator/harmony/enhanced/jchevm/libjc/reflect.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/reflect.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/reflect.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/reflect.c Sat Feb 25 11:23:32 2006
@@ -37,7 +37,7 @@
 
 	/* Sanity check */
 	_JC_ASSERT(obj != NULL && field != NULL);
-	_JC_ASSERT(_jc_subclass_of(obj, field->class));
+	_JC_ASSERT(_jc_subclass_of(obj->type, field->class));
 
 	/* Get reference to the Pointer object */
 	pobj = *((_jc_object **)((char *)obj + field->offset));
@@ -61,7 +61,7 @@
 
 	/* Sanity check */
 	_JC_ASSERT(obj != NULL && field != NULL);
-	_JC_ASSERT(_jc_subclass_of(obj, field->class));
+	_JC_ASSERT(_jc_subclass_of(obj->type, field->class));
 
 	/* Handle easy case */
 	if (ptr == NULL) {

Modified: incubator/harmony/enhanced/jchevm/libjc/stack.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/stack.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/stack.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/stack.c Sat Feb 25 11:23:32 2006
@@ -80,7 +80,8 @@
 
 again:
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(e, vm->boot.types.Throwable));
+	_JC_ASSERT(e != NULL);
+	_JC_ASSERT(_jc_subclass_of(e->type, vm->boot.types.Throwable));
 
 	/* Print exception headling */
 	_jc_fprint_exception_headline(env, fp, e);

Modified: incubator/harmony/enhanced/jchevm/libjc/thread.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/jchevm/libjc/thread.c?rev=380968&r1=380967&r2=380968&view=diff
==============================================================================
--- incubator/harmony/enhanced/jchevm/libjc/thread.c (original)
+++ incubator/harmony/enhanced/jchevm/libjc/thread.c Sat Feb 25 11:23:32 2006
@@ -167,7 +167,7 @@
 	_jc_object *vmt;
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(instance, vm->boot.types.Thread));
+	_JC_ASSERT(_jc_subclass_of(instance->type, vm->boot.types.Thread));
 
 	/* Lock VM to keep thread from disappearing */
 	_JC_MUTEX_LOCK(_jc_get_current_env(), vm->mutex);
@@ -642,7 +642,7 @@
 
 	/* Grab pointer to the VMThread */
 	vmt = env->retval.l;
-	_JC_ASSERT(_jc_subclass_of(vmt, vm->boot.types.VMThread));
+	_JC_ASSERT(_jc_subclass_of(vmt->type, vm->boot.types.VMThread));
 
 	/* Invoke VMThread.run() */
 	if (_jc_invoke_virtual(env,
@@ -1116,7 +1116,7 @@
 	}
 
 	/* Sanity check */
-	_JC_ASSERT(_jc_subclass_of(*ref, vm->boot.types.Thread));
+	_JC_ASSERT(_jc_subclass_of((*ref)->type, vm->boot.types.Thread));
 
 	/* Invoke constructor */
 	if (_jc_invoke_nonvirtual(env, constructor, *ref) != JNI_OK)



Mime
View raw message