Einzelnen Beitrag anzeigen

API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#11

Re: [Bitte optimieren] Explode Prozedur - Reloaded

  Alt 13. Dez 2006, 05:33
Version 1.1 enthält einen Bug in TStringDivider.Prepare

Falls Length(fPattern)= 1 ist erbigt fPatternLength2 = -1 was zu einem "Integer overflow" führt,
da fPatternLength2 als Cardinal deklariert ist.

Bugfix: Überprüfen, ob fPattern > 1
Delphi-Quellcode:
  If length(fPattern) > 1 Then
    fPatternLength2 := fPatternLength - 2;


Delphi-Quellcode:
Procedure TStringDivider.Prepare;
//..
Begin
  fPatternLength := Length(fPattern);
  fPatternLength1 := fPatternLength - 1;
  fPatternLength2 := fPatternLength - 2;
  cPatternFirstChar := fPattern[1];
  cPatternLastChar := fPattern[fPatternLength];
  pPattern := @fPattern[2];
  Mit Zitat antworten Zitat