[fpc-pascal] TParamFlags and fpc 3.2.0.

fredvs fiens at hotmail.com
Tue Jul 23 15:15:50 CEST 2019


Hello.

> Check for pfHidden. 

Thanks Sven for helping.
But I do not catch how to hide those "self" parameter.

IMHO, the guilty is here, in Martin's code msedisignparser.pas 
(Sadly I did not find any example how to use TParameterFlag. 
The goal is to ignore first parameter if fpc >= 3.2.x) 
___________________________________________________

procedure getmethodparaminfo(const atype: ptypeinfo; 
                                         var info: methodparaminfoty); 
begin 
... 
      for int1:= 0 to paramcount - 1 do begin 
      with params[int1] do begin

----->      //////////// Here flags must be adapted for fpc 3.2.0 
  
      flags:= tparamflags( 
         {$ifde mse_fpc_3_0_2}wordset{$else}byteset{$endif}(pbyte(po1)^)); 
       inc(po1,{$ifdef mse_fpc_3_2}2{$else}1{$endif}); 

---------------------------------------------------------------
It seems that there is a problem with pfSelf parameter and last fpc 3.2.0,
it 
is always set to true. 

I did some test with flags.

Using  flags:= [] shows always self-parameter. 
And using flags:= [pfSelf] or no has no difference, it is always pfSelf on 
(and so first parameter added). 

I did test all other parameters: 
pfVar,pfConst,pfArray,pfAddress,pfReference,pfOut,pfConstRef,pfHidden,pfHigh,pfSelf,pfVmt,pfResult 

All others have influence to enable/disable it but for pfSelf, it is always 
true. 

Sure, one more time, I miss something.


Thanks.

Fre;D







-----
Many thanks ;-)
--
Sent from: http://free-pascal-general.1045716.n5.nabble.com/


More information about the fpc-pascal mailing list