The calc needs to run on demand because values involved (mainly parent width) might change. However further down in this method there is a call involving my_extent. E.g. I need it once for the nil check and once for the actual calculation here :-)