Sfoglia il codice sorgente

+ support "reintroduce" for Java classes. Although in most cases this won't
work because you cannot start new inheritance trees, it can work under some
circumstances if the parameters are not exact. In case there is a problem,
this will be detected later by TVMTBuilder.is_new_vmt_entry().

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

Jonas Maebe 14 anni fa
parent
commit
ddf6591f7f
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  1. 3 2
      compiler/pdecsub.pas

+ 3 - 2
compiler/pdecsub.pas

@@ -1575,7 +1575,8 @@ begin
     end
     end
   else
   else
     if not(is_class_or_interface_or_object(tprocdef(pd).struct)) and
     if not(is_class_or_interface_or_object(tprocdef(pd).struct)) and
-       not(is_objccategory(tprocdef(pd).struct)) then
+       not(is_objccategory(tprocdef(pd).struct)) and
+       not(is_javaclass(tprocdef(pd).struct)) then
       Message(parser_e_no_object_reintroduce);
       Message(parser_e_no_object_reintroduce);
 end;
 end;
 
 
@@ -2142,7 +2143,7 @@ const
       mutexclpo     : [po_external]
       mutexclpo     : [po_external]
     ),(
     ),(
       idtok:_REINTRODUCE;
       idtok:_REINTRODUCE;
-      pd_flags : [pd_interface,pd_object,pd_notobjintf,pd_objcclass,pd_notrecord];
+      pd_flags : [pd_interface,pd_object,pd_notobjintf,pd_objcclass,pd_notrecord,pd_javaclass];
       handler  : @pd_reintroduce;
       handler  : @pd_reintroduce;
       pocall   : pocall_none;
       pocall   : pocall_none;
       pooption : [po_reintroduce];
       pooption : [po_reintroduce];