Browse Source

* set "forcall" to true for the objc loadvmtaddrnodes generated as
self parameter for invoking inherited method calls (if you are in a
category method or a method of a child class, the extended or parent
class must have already been loaded by the run time, so we can
directly load the ISA pointer rather than detouring via the "class"
method)

git-svn-id: trunk@20624 -

Jonas Maebe 13 years ago
parent
commit
c4c9661f84
1 changed files with 1 additions and 0 deletions
  1. 1 0
      compiler/objcutil.pas

+ 1 - 0
compiler/objcutil.pas

@@ -146,6 +146,7 @@ end;
                 else
                 else
 {$endif onlymacosx10_6 or arm}
 {$endif onlymacosx10_6 or arm}
                   result:=cloadvmtaddrnode.create(ctypenode.create(tobjectdef(tclassrefdef(def).pointeddef).childof.childof));
                   result:=cloadvmtaddrnode.create(ctypenode.create(tobjectdef(tclassrefdef(def).pointeddef).childof.childof));
+                tloadvmtaddrnode(result).forcall:=true;
                 result:=objcloadbasefield(result,'ISA');
                 result:=objcloadbasefield(result,'ISA');
                 typecheckpass(result);
                 typecheckpass(result);
                 { we're done }
                 { we're done }