Einzelnen Beitrag anzeigen

liftoff

Registriert seit: 6. Jun 2012
Ort: Frankfurt am Main
11 Beiträge
 
Delphi XE Enterprise
 
#3

AW: TPerlRegEx - Performance

  Alt 20. Jun 2012, 12:59
Guter Tipp.

Habe das jetzt so gelöst.
Code:
  TPerlre = class(TPerlRegEx)
    private
      class var FRttiContext : TRttiContext;
                FStaticCharTable : Pointer;
                FSCTField : TRttiField;
      ...
     


class constructor TPerlre.create;
begin
    FStaticCharTable := pcre_maketables;
    FSCTField:=FRttiContext.GetType(TPerlRe).GetField('FCharTable');
end;

constructor TPerlre.Create(doStudy: boolean; opts: integer);
begin
    FSCTField.SetValue(Self,TValue.From<Pointer>(FStaticCharTable));
    ...
end;  

procedure TPerlre.BeforeDestruction;
begin
    inherited;
    FSCTField.SetValue(Self,TValue.From<Pointer>(nil)); // Weil TPerlRegEx.destroy sonst FCharTable freigeben will
end;
Das GetField musste noch weg, weil das ne Stringliste durchackert.
  Mit Zitat antworten Zitat