SysTime bug or feature?

tchaloupka via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Oct 5 23:41:06 PDT 2015


On Tuesday, 6 October 2015 at 05:54:44 UTC, Jonathan M Davis 
wrote:
> It is by design, albeit undesirable. When SysTime was 
> originally written, it was impossible to have a default value 
> for a class reference other than null. So, unless SysTime was 
> going to take the performance hit of constantly checking 
> whether its TimeZone was null, SysTime.init was going to 
> segfault if you did anything with it that required its 
> TimeZone. And I wasn't about to have it constantly checking for 
> null. In the vast majority of cases, the value of a SysTime 
> comes from Clock.currTime() or from parsing a string, and if 
> code is trying to do anything but assign to a SysTime which is 
> SysTime.init, then that means that it failed to initialize it 
> like it should have.

Thanks for thorough explanation.
I found the problem using vibe and REST API with SysTime argument 
with default value (which didn't work due to the bug there) when 
I tried to print out the passed value and ended up with the 
segfault. So I guess it doesn't bite devs often as it is mostly 
used as you wrote.


More information about the Digitalmars-d-learn mailing list