diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-06 16:01:31 +0000 | 
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-06 16:01:31 +0000 | 
| commit | a9437f8a1a2aa5a9244256954b449b5d5775e06a (patch) | |
| tree | 3a53772caa4302c9e6c17a8f4d8ff1296f451bb1 /libjava/java/lang | |
| parent | 39506e4e1bc64f7b05ab236283bb804338721720 (diff) | |
| download | ppe42-gcc-a9437f8a1a2aa5a9244256954b449b5d5775e06a.tar.gz ppe42-gcc-a9437f8a1a2aa5a9244256954b449b5d5775e06a.zip  | |
	PR libgcj/23739:
	* testsuite/libjava.jni/pr23739.c: New file.
	* testsuite/libjava.jni/pr23739.java: New file.
	* testsuite/libjava.jni/pr23739.out: New file.
	* jni.cc (_Jv_JNI_IsAssignableFrom): Reversed arguments.
	* java/lang/reflect/natMethod.cc (invoke): Updated.
	* java/lang/natClass.cc (isAssignableFrom): Updated.
	(isInstance): Likewise.
	(_Jv_IsAssignableFrom): Reversed arguments.
	(_Jv_IsInstanceOf): Updated.
	(_Jv_CheckCast): Likewise.
	(_Jv_CheckArrayStore): Likewise.
	(_Jv_IsAssignableFromSlow): Reversed arguments.
	(_Jv_InterfaceAssignableFrom): Likewise.
	* link.cc (verify_type_assertions): Updated.
	* prims.cc (_Jv_CheckAccess): Updated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103953 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang')
| -rw-r--r-- | libjava/java/lang/natClass.cc | 24 | ||||
| -rw-r--r-- | libjava/java/lang/reflect/natMethod.cc | 2 | 
2 files changed, 13 insertions, 13 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index 19a9d7d3580..fa52713cc36 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -623,7 +623,7 @@ java::lang::Class::isAssignableFrom (jclass klass)    // Arguments may not have been initialized, given ".class" syntax.    _Jv_InitClass (this);    _Jv_InitClass (klass); -  return _Jv_IsAssignableFrom (this, klass); +  return _Jv_IsAssignableFrom (klass, this);  }  jboolean @@ -632,7 +632,7 @@ java::lang::Class::isInstance (jobject obj)    if (! obj)      return false;    _Jv_InitClass (this); -  return _Jv_IsAssignableFrom (this, JV_CLASS (obj)); +  return _Jv_IsAssignableFrom (JV_CLASS (obj), this);  }  jobject @@ -964,7 +964,7 @@ _Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface, int method_idx)  }  jboolean -_Jv_IsAssignableFrom (jclass target, jclass source) +_Jv_IsAssignableFrom (jclass source, jclass target)  {    if (source == target)      return true; @@ -984,7 +984,7 @@ _Jv_IsAssignableFrom (jclass target, jclass source)        // two interfaces for assignability.        if (__builtin_expect             (source->idt == NULL || source->isInterface(), false)) -        return _Jv_InterfaceAssignableFrom (target, source); +        return _Jv_InterfaceAssignableFrom (source, target);        _Jv_IDispatchTable *cl_idt = source->idt;        _Jv_IDispatchTable *if_idt = target->idt; @@ -1033,19 +1033,19 @@ _Jv_IsAssignableFrom (jclass target, jclass source)  // superinterface of SOURCE. This is used when SOURCE is also an interface,  // or a class with no interface dispatch table.  jboolean -_Jv_InterfaceAssignableFrom (jclass iface, jclass source) +_Jv_InterfaceAssignableFrom (jclass source, jclass iface)  {    for (int i = 0; i < source->interface_count; i++)      {        jclass interface = source->interfaces[i];        if (iface == interface -          || _Jv_InterfaceAssignableFrom (iface, interface)) +          || _Jv_InterfaceAssignableFrom (interface, iface))          return true;            }    if (!source->isInterface()        && source->superclass  -      && _Jv_InterfaceAssignableFrom (iface, source->superclass)) +      && _Jv_InterfaceAssignableFrom (source->superclass, iface))      return true;    return false; @@ -1056,14 +1056,14 @@ _Jv_IsInstanceOf(jobject obj, jclass cl)  {    if (__builtin_expect (!obj, false))      return false; -  return (_Jv_IsAssignableFrom (cl, JV_CLASS (obj))); +  return _Jv_IsAssignableFrom (JV_CLASS (obj), cl);  }  void *  _Jv_CheckCast (jclass c, jobject obj)  {    if (__builtin_expect  -       (obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj)), false)) +      (obj != NULL && ! _Jv_IsAssignableFrom(JV_CLASS (obj), c), false))      throw new java::lang::ClassCastException        ((new java::lang::StringBuffer  	(obj->getClass()->getName()))->append @@ -1084,7 +1084,7 @@ _Jv_CheckArrayStore (jobject arr, jobject obj)  	return;        jclass obj_class = JV_CLASS (obj);        if (__builtin_expect  -          (! _Jv_IsAssignableFrom (elt_class, obj_class), false)) +          (! _Jv_IsAssignableFrom (obj_class, elt_class), false))  	throw new java::lang::ArrayStoreException  		((new java::lang::StringBuffer  		 (JvNewStringUTF("Cannot store ")))->append @@ -1095,7 +1095,7 @@ _Jv_CheckArrayStore (jobject arr, jobject obj)  }  jboolean -_Jv_IsAssignableFromSlow (jclass target, jclass source) +_Jv_IsAssignableFromSlow (jclass source, jclass target)  {    // First, strip arrays.    while (target->isArray ()) @@ -1129,7 +1129,7 @@ _Jv_IsAssignableFromSlow (jclass target, jclass source)             {               // We use a recursive call because we also need to               // check superinterfaces. -             if (_Jv_IsAssignableFromSlow (target, source->getInterface (i))) +             if (_Jv_IsAssignableFromSlow (source->getInterface (i), target))                 return true;             }         } diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc index b616d1bab63..94bc49be548 100644 --- a/libjava/java/lang/reflect/natMethod.cc +++ b/libjava/java/lang/reflect/natMethod.cc @@ -163,7 +163,7 @@ java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)    else      {        jclass objClass = JV_CLASS (obj); -      if (! _Jv_IsAssignableFrom (declaringClass, objClass)) +      if (! _Jv_IsAssignableFrom (objClass, declaringClass))          throw new java::lang::IllegalArgumentException;      }  | 

