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)
|