瀏覽代碼

* only treat Java interfaces and classes as equivalent to classdefs rather
than any objectdef

git-svn-id: branches/jvmbackend@18656 -

Jonas Maebe 14 年之前
父節點
當前提交
956d63da9e
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      compiler/jvm/njvmcnv.pas

+ 2 - 2
compiler/jvm/njvmcnv.pas

@@ -692,7 +692,7 @@ implementation
         fromclasscompatible:=
         fromclasscompatible:=
           (left.resultdef.typ=formaldef) or
           (left.resultdef.typ=formaldef) or
           (left.resultdef.typ=pointerdef) or
           (left.resultdef.typ=pointerdef) or
-          (left.resultdef.typ=objectdef) or
+          is_java_class_or_interface(left.resultdef) or
           is_dynamic_array(left.resultdef) or
           is_dynamic_array(left.resultdef) or
           ((left.resultdef.typ in [stringdef,classrefdef]) and
           ((left.resultdef.typ in [stringdef,classrefdef]) and
            not is_shortstring(left.resultdef)) or
            not is_shortstring(left.resultdef)) or
@@ -700,7 +700,7 @@ implementation
           procvarconv;
           procvarconv;
         toclasscompatible:=
         toclasscompatible:=
           (resultdef.typ=pointerdef) or
           (resultdef.typ=pointerdef) or
-          (resultdef.typ=objectdef) or
+          is_java_class_or_interface(resultdef) or
           is_dynamic_array(resultdef) or
           is_dynamic_array(resultdef) or
           ((resultdef.typ in [stringdef,classrefdef]) and
           ((resultdef.typ in [stringdef,classrefdef]) and
            not is_shortstring(resultdef)) or
            not is_shortstring(resultdef)) or