Einzelnen Beitrag anzeigen

Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Attribute einer Methode in Methode abfragen

  Alt 13. Aug 2019, 17:35
thread schon etwas älter, aber ich häng mich hier mal mit einem follow-up dran.

habe zurzeit mal mit dem TVirtualMethodInterceptor experimentiert, was auch sehr gut klappt. Allerdings habe ich mit groben speicherlöchern zu tun, falls ich zum bleistift die RTTI-Attribute einer methode abfragen möchte um die dann zu intercepten:

Delphi-Quellcode:
Procedure Dopassword(Instance: Tobject; Method: Trttimethod;
  Const Args: TArray<TValue>; Out DoInvoke: Boolean; Out Result: TValue);
Var
  Pw: String;
  attr:tcustomattribute;
  //Attributes: Tarray<Tcustomattribute>;
Begin
if True then

  Doinvoke := True;
  Begin
    attributes:= Method.GetAttributes Do; //<<<< produziert bei mir ein speicherleck, auch wenn ich erst das getattribute einer (lokalen)tarray-variable zuweise
    //For {Var //inline ab 10.1} Attr In Attributes Do
    //If Attr Is Passwordprotectedattribute
    //Then
//do some checks>> einfach mal so eingefügt als beispiel:
    //Begin
    //Writeln('change password protected.');
    //Readln(Pw);
    //If Pw <> 'login'
    //Then
    //Doinvoke := False;
    //End;
  End;
  //Setlength(Attributes, 0);
End;
Ist das normal? (abgesehen davon dass Lecks nicht "normal" sein sollten), kann ich das umgehen?
  Mit Zitat antworten Zitat