From 5708707f6c30702e1382d1e528298ae0472c7360 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Fri, 25 May 2018 09:18:06 -0700 Subject: [PATCH] Fix misplaced try block that caused unhandled exception if year out of range. --- libgnucash/engine/gnc-datetime.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libgnucash/engine/gnc-datetime.cpp b/libgnucash/engine/gnc-datetime.cpp index d0958de356..3328fa829b 100644 --- a/libgnucash/engine/gnc-datetime.cpp +++ b/libgnucash/engine/gnc-datetime.cpp @@ -158,12 +158,16 @@ LDT_from_unix_local(const time64 time) static LDT LDT_from_struct_tm(const struct tm tm) { - auto tdate = boost::gregorian::date_from_tm(tm); - auto tdur = boost::posix_time::time_duration(tm.tm_hour, tm.tm_min, - tm.tm_sec, 0); - auto tz = tzp.get(tdate.year()); + Date tdate; + Duration tdur; + TZ_Ptr tz; + try { + tdate = boost::gregorian::date_from_tm(tm); + tdur = boost::posix_time::time_duration(tm.tm_hour, tm.tm_min, + tm.tm_sec, 0); + tz = tzp.get(tdate.year()); LDT ldt(tdate, tdur, tz, LDTBase::EXCEPTION_ON_ERROR); return ldt; }