Переглянути джерело

* methoidpointer fixes from florian

peter 26 роки тому
батько
коміт
1ab67135f4
2 змінених файлів з 16 додано та 3 видалено
  1. 5 2
      compiler/cg386ld.pas
  2. 11 1
      compiler/pexpr.pas

+ 5 - 2
compiler/cg386ld.pas

@@ -290,7 +290,7 @@ implementation
                          hp^:=p^.location.reference;
                          inc(hp^.offset,4);
                          exprasmlist^.concat(new(pai386,op_reg_ref(A_MOV,S_L,
-                           R_EDI,hp)));
+                           hregister,hp)));
 
                          { virtual method ? }
                          if (pprocsym(p^.symtableentry)^.definition^.options and povirtualmethod)<>0 then
@@ -835,7 +835,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.60  1999-05-31 12:42:43  peter
+  Revision 1.60.2.1  1999-07-01 15:17:14  peter
+    * methoidpointer fixes from florian
+
+  Revision 1.60  1999/05/31 12:42:43  peter
     * fixed crash with empty array constructor
 
   Revision 1.59  1999/05/27 19:44:14  peter

+ 11 - 1
compiler/pexpr.pas

@@ -554,6 +554,13 @@ unit pexpr;
                 (p1^.symtableproc^.defowner^.deftype=objectdef) then
                 begin
                    p1^.methodpointer:=getcopy(pwithsymtable(p1^.symtableproc)^.withrefnode);
+                end
+              else if not(assigned(p1^.methodpointer)) then
+                begin
+                   { we must provide a method pointer, if it isn't given, }
+                   { it is self                                           }
+                   p1^.methodpointer:=genselfnode(procinfo._class);
+                   p1^.methodpointer^.resulttype:=procinfo._class;
                 end;
               { no postfix operators }
               again:=false;
@@ -2035,7 +2042,10 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.112.2.4  1999-06-26 00:22:30  pierre
+  Revision 1.112.2.5  1999-07-01 15:17:17  peter
+    * methoidpointer fixes from florian
+
+  Revision 1.112.2.4  1999/06/26 00:22:30  pierre
    * wrong warnings in -So mode suppressed
 
   Revision 1.112.2.3  1999/06/17 12:51:44  pierre