Thema: Delphi String komprimieren

Einzelnen Beitrag anzeigen

Vision

Registriert seit: 21. Jul 2004
1 Beiträge
 
#4

Re: String komprimieren

  Alt 21. Jul 2004, 14:39
hallo zusammen,

hab ein "kleines" problem mit dieser funktion:

Delphi-Quellcode:
function DeCompressString(input:string):string;
var
  InpBuf, OutBuf: Pointer;
  OutBytes: Integer;
begin
  InpBuf := nil;
  OutBuf := nil;
  try
    GetMem(InpBuf, Length(input));
    Move(input[1], InpBuf^, Length(input));
    DeCompressBuf(InpBuf, Length(input),0,OutBuf, OutBytes);
    SetLength(result,OutBytes);
    Move(OutBuf^, result[1], OutBytes);
  finally
    if InpBuf <> nil then FreeMem(InpBuf);
    if OutBuf <> nil then FreeMem(OutBuf);
  end;
end;
Unter normalen Umständen funktioniert diese Funktion tadellos.
Falls ich aber nun ein Programm habe, das gleichzeitig ca. 40 Threads am laufen hat
und alle gleichzeitig einen String entpacken gibt es ab und zu (bisher gemessen ca. alle 6500 mal)
einen Fehler bei der Zeile "FreeMem(outBuf)". Und zwar generiert er dort die
Fehlermeldung "Invalid pointer operation".

Was könnte hier das problem sein? Hab langsam echt keine Ahnung mehr...

[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
  Mit Zitat antworten Zitat