Invalid pointer operation.

This commit is contained in:
Henrique Gottardi Werlang 2023-08-03 14:21:59 -03:00 committed by Mattias Gaertner
parent 39a16c4fa8
commit d863ab6a24

View File

@ -18905,27 +18905,24 @@ var
Call: TJSCallExpression; Call: TJSCallExpression;
HasRTTIMembers: Boolean; HasRTTIMembers: Boolean;
begin begin
Call:=nil; // module.$rtti.$Record("typename",{});
try Call:=CreateRTTINewType(El,GetBIName(pbifnRTTINewRecord),false,FuncContext,ObjLit);
// module.$rtti.$Record("typename",{}); if ObjLit=nil then
Call:=CreateRTTINewType(El,GetBIName(pbifnRTTINewRecord),false,FuncContext,ObjLit); begin
if ObjLit=nil then Call.Free;
RaiseInconsistency(20190105141430,El);
HasRTTIMembers:=CreateRTTIMembers(El,Src,FuncContext,MembersSrc,MembersFuncContext,Call,false); RaiseInconsistency(20190105141430,El);
if not HasRTTIMembers then
begin
// no published members, add "module.$rtti.$Record..."
if Src=MembersSrc then
AddToSourceElements(Src,Call)
else
Src.Statements.InsertNode(0).Node:=Call;
end;
Call:=nil;
finally
Call.Free;
end; end;
HasRTTIMembers:=CreateRTTIMembers(El,Src,FuncContext,MembersSrc,MembersFuncContext,Call,false);
if not HasRTTIMembers then
begin
// no published members, add "module.$rtti.$Record..."
if Src=MembersSrc then
AddToSourceElements(Src,Call)
else
Src.Statements.InsertNode(0).Node:=Call;
end;
end; end;
function TPasToJSConverter.CreateDelayedInitMembersFunction(PosEl: TPasElement; function TPasToJSConverter.CreateDelayedInitMembersFunction(PosEl: TPasElement;