Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/Compiler/Delphi/Generics    [ Add a report in this area ]  
Report #:  101695   Status: Closed
F2084 Internal Error: AV06A90AD4-W00000014-1
Project:  Delphi Build #:  16.0.4256.43595
Version:    16.0 Submitted By:   Viktor lazarev
Report Type:  Crash / Data loss / Total failure Date Reported:  12/9/2011 12:53:08 PM
Severity:    Infrequently encountered problem Last Updated: 9/5/2012 8:15:05 PM
Platform:    All versions Internal Tracking #:   26552
Resolution: Duplicate  Resolved in Build: : 17.0.4625.53395
Duplicate of:  69973
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
type
  TChildObject<T: record> = class(TObject)
  private
    type
      PItem = ^TItem;
      TItem = record
        Data: T;
      end;
      TInternalObject = class(TObject)
      public
        procedure Test(P: Pointer);
      end;
    var
      InternalObject: TInternalObject;
  public
    constructor Create;
    destructor Destroy; override;
  end;

{ TChildObject<T>.TInternalObject }

procedure TChildObject<T>.TInternalObject.Test(P: Pointer);
var
  Item: PItem absolute P; //F2084 Internal Error: AV06A90AD4-W00000014-1
  //if
  //Item: PItem; is ok!


{or:}
var
  Item: PItem;
  Data: PByte absolute Item; //F2084 Internal Error: AV06A90AD4-W00000014-1

begin

end;

{ TChildObject<T> }

constructor TChildObject<T>.Create;
begin
  InternalObject := TInternalObject.Create();
end;

destructor TChildObject<T>.Destroy;
begin
  FreeAndNil(InternalObject);
  inherited;
end;


type
  TTestRecord = record
    I: Integer;
  end;

var
  ChildObject: TChildObject<TTestRecord>;
begin
  ChildObject := TChildObject<TTestRecord>.Create();
  ChildObject.InternalObject.Test(nil);
end;
Steps to Reproduce:
None
Workarounds
None
Attachment
None
Comments

None

Server Response from: ETNACODE01