Browse Source

* also export the mangled RTTI name from a package

git-svn-id: trunk@34178 -
svenbarth 9 years ago
parent
commit
6cc7539208
1 changed files with 15 additions and 5 deletions
  1. 15 5
      compiler/pkgutil.pas

+ 15 - 5
compiler/pkgutil.pas

@@ -139,12 +139,22 @@ implementation
       if df_generic in def.defoptions then
       if df_generic in def.defoptions then
         exit;
         exit;
       def.symtable.SymList.ForEachCall(@exportabstractrecordsymproc,def.symtable);
       def.symtable.SymList.ForEachCall(@exportabstractrecordsymproc,def.symtable);
-      if (def.typ=objectdef) and (oo_has_vmt in tobjectdef(def).objectoptions) then
+      if def.typ=objectdef then
         begin
         begin
-          hp:=texported_item.create;
-          hp.name:=stringdup(tobjectdef(def).vmt_mangledname);
-          hp.options:=hp.options+[eo_name];
-          exportlib.exportvar(hp);
+          if (oo_has_vmt in tobjectdef(def).objectoptions) then
+            begin
+              hp:=texported_item.create;
+              hp.name:=stringdup(tobjectdef(def).vmt_mangledname);
+              hp.options:=hp.options+[eo_name];
+              exportlib.exportvar(hp);
+            end;
+          if is_class(def) then
+            begin
+              hp:=texported_item.create;
+              hp.name:=stringdup(tobjectdef(def).rtti_mangledname(fullrtti));
+              hp.options:=hp.options+[eo_name];
+              exportlib.exportvar(hp);
+            end;
         end;
         end;
     end;
     end;