View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003235 | JEDI VCL | 00 JVCL Components | public | 2005-09-26 12:56 | 2005-09-27 10:46 |
Reporter | ppm | Assigned To | AHUser | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.00 | ||||
Target Version | Fixed in Version | 3.10 | |||
Summary | 0003235: TJvMemoryData silent crash | ||||
Description | if Dataset is Active then ClearRecords execute twice - first correctly , second inncorectly from "inhertied Destroy" which calls InternalClose with ClearRecords after FRecords.Free in TJvMemoryData.Destroy "silent" - because it doesn't generate any exception ussualy (more often in multithreaded application) - sometimes occur EAccessViolation with access invalid address message | ||||
Additional Information | my patch - simple Close if active destructor TJvMemoryData.Destroy; var I: Integer; PFValues: TPVariant; begin if Active then Close; if Assigned(FDeletedValues) then begin if FDeletedValues.Count > 0 then for I := 0 to (FDeletedValues.Count - 1) do begin PFValues := FDeletedValues[I]; Dispose(PFValues); end; FreeAndNil(FDeletedValues); end; FreeIndexList; ClearRecords; FRecords.Free; ReallocMem(FOffsets, 0); inherited Destroy; end; | ||||
Tags | No tags attached. | ||||