Ludek
13-Mar-2009, 02:23 PM
scenario:
delphi 2009
eurekalog 6.0.19 rc4
eurekalog in own runtime package, WITHOUT reference to delphi packages, just following:
contains
ExceptionLog;
(delphi warnings cancelled)
main executable with following code:
uses generics.collections;
{$R *.dfm}
type
TEnum = (e1, e2);
TTestRec = record
d: double;
b: tenum;
end;
TRecord = TPair<integer, TTestRec>;
TRecords = TDictionary<integer, TTestRec>;
procedure TForm8.Button1Click(Sender: TObject);
var
records: TRecords;
rec: TRecord;
begin
records := TRecords.Create(4);
for rec in records do
assert(false);
end;
the executable uses runtime packages - only the named runtime package, no delphi packages.
the executable says "assertion failed" - the code "assert" gets called, although the dictionary is empty! the record "rec" contains some invalid data.
it happens only with eurekalog activated (perhaps in both projects, package and the executable) and more regularly with the "catch memory leaks" activated. (i can reproduce it in the sample only with "catch memory leaks" on, but in my project it happens also without this option active.
Please, could you have a look at it? thanks, Ludek.
delphi 2009
eurekalog 6.0.19 rc4
eurekalog in own runtime package, WITHOUT reference to delphi packages, just following:
contains
ExceptionLog;
(delphi warnings cancelled)
main executable with following code:
uses generics.collections;
{$R *.dfm}
type
TEnum = (e1, e2);
TTestRec = record
d: double;
b: tenum;
end;
TRecord = TPair<integer, TTestRec>;
TRecords = TDictionary<integer, TTestRec>;
procedure TForm8.Button1Click(Sender: TObject);
var
records: TRecords;
rec: TRecord;
begin
records := TRecords.Create(4);
for rec in records do
assert(false);
end;
the executable uses runtime packages - only the named runtime package, no delphi packages.
the executable says "assertion failed" - the code "assert" gets called, although the dictionary is empty! the record "rec" contains some invalid data.
it happens only with eurekalog activated (perhaps in both projects, package and the executable) and more regularly with the "catch memory leaks" activated. (i can reproduce it in the sample only with "catch memory leaks" on, but in my project it happens also without this option active.
Please, could you have a look at it? thanks, Ludek.