summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw11896.pp
blob: 34f6daefda68aa21ec30c24bed1f89e8d46ac38d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
program destroytest;

{$mode delphi}

type
  TTest = class(TObject)
    a: array[0..32767] of Integer;
    procedure x;
    procedure y;
    procedure beforedestruction;override;
  end;

var
  testobj: TTest;
  destroyed: boolean;

procedure TTest.beforedestruction;
begin
  destroyed:=true;
  inherited beforedestruction;
end;

procedure TTest.x;
begin
  Destroy;
end;

procedure TTest.y;
begin
  Self.Destroy;
end;

function GetUsedMemory: Integer;
begin
  Result := GetHeapStatus.TotalAllocated;
end;

begin
  testobj := TTest.create;
  destroyed:=false;
  testobj.x;
  if not destroyed then
    halt(1);

  destroyed:=false;
  testobj := TTest.create;
  testobj.y;
  if not destroyed then
    halt(2);
end.