Browse Source

* get the real objectdef before checking whether it's equal to
java_jlobject/java_fpcbaserecordtype in trecorddef.is_related()
(could be a formal external definition)

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

Jonas Maebe 14 years ago
parent
commit
6bcf796f8b
1 changed files with 4 additions and 1 deletions
  1. 4 1
      compiler/symdef.pas

+ 4 - 1
compiler/symdef.pas

@@ -491,7 +491,8 @@ interface
          tsk_none,
          tsk_none,
          tsk_anon_inherited,        // anonymous inherited call
          tsk_anon_inherited,        // anonymous inherited call
          tsk_jvm_clone,             // Java-style clone method
          tsk_jvm_clone,             // Java-style clone method
-         tsk_record_deepcopy        // deepcopy for records field by field
+         tsk_record_deepcopy,       // deepcopy for records field by field
+         tsk_empty                  // an empty routine
        );
        );
 
 
 {$ifdef oldregvars}
 {$ifdef oldregvars}
@@ -3123,6 +3124,8 @@ implementation
 
 
     function trecorddef.is_related(d: tdef): boolean;
     function trecorddef.is_related(d: tdef): boolean;
       begin
       begin
+        if d.typ=objectdef then
+          d:=find_real_class_definition(tobjectdef(d),false);
         { records are implemented via classes in the JVM target, and are
         { records are implemented via classes in the JVM target, and are
           all descendents of the java_fpcbaserecordtype class }
           all descendents of the java_fpcbaserecordtype class }
         if (target_info.system=system_jvm_java32) and
         if (target_info.system=system_jvm_java32) and