Browse Source

compiler: don't skip objc class/protocols in case of initrtti, fixed crash of dynamic array/record which contains a objc class/protocol and requires an initialization

git-svn-id: trunk@24723 -
paul 12 years ago
parent
commit
5ff7bb884e
1 changed files with 1 additions and 1 deletions
  1. 1 1
      compiler/ncgrtti.pas

+ 1 - 1
compiler/ncgrtti.pas

@@ -1298,7 +1298,7 @@ implementation
 
 
     procedure TRTTIWriter.write_rtti_reference(def:tdef;rt:trttitype);
     procedure TRTTIWriter.write_rtti_reference(def:tdef;rt:trttitype);
       begin
       begin
-        if not assigned(def) or is_void(def) or is_objc_class_or_protocol(def) then
+        if not assigned(def) or is_void(def) or ((rt<>initrtti) and is_objc_class_or_protocol(def)) then
           current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(nil))
           current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(nil))
         else
         else
           current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def,rt)));
           current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def,rt)));