[fpc-pascal] Setting record values

Ryan Joseph ryan at thealchemistguild.com
Sat Apr 1 05:59:08 CEST 2017


I’ve been using a design pattern in my code which I think is probably pretty stupid so I’d like to make sure. Assume I have a type like TPoint below and I want to set the value I’ll doing something like point := PointMake(x, y). How does the compiler handle this? It probably has to allocate some memory on the heap so shouldn’t I always be setting values using the alternative TPoint.SetPoint? It’s maybe not a big deal but it’s something I’d like to clear up if it’s inefficient.

function PointMake (_x, _y: integer): TPoint;
begin
  result.x := _x;
  result.y := _y;
end;

procedure TPoint.SetPoint (_x, _y: integer);
begin
  x := _x;
  y := _y;
end;

same outcome but which is more efficient?

1) point.SetPoint(x, y);

2) point := PointMake(x, y);


Regards,
	Ryan Joseph




More information about the fpc-pascal mailing list