]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/islamcal.cpp
ICU-64260.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / islamcal.cpp
index b84bedfa0916b170cd2a86514fe740cb8a8a03be..b44b60c3db3b01e41cbb846a9e700d76e1f7aac0 100644 (file)
@@ -54,7 +54,6 @@ static void debug_islamcal_msg(const char *pat, ...)
 
 // --- The cache --
 // cache of months
-static UMutex astroLock = U_MUTEX_INITIALIZER;  // pod bay door lock
 static icu::CalendarCache *gMonthCache = NULL;
 static icu::CalendarAstronomer *gIslamicCalendarAstro = NULL;
 
@@ -223,9 +222,7 @@ const char *IslamicCalendar::getType() const {
         sType = "islamic-umalqura";
         break;
     default:
-        U_ASSERT(false); // out of range
-        sType = "islamic";  // "islamic" is used as the generic type
-        break;
+        UPRV_UNREACHABLE; // out of range
     }
     return sType;
 }
@@ -473,7 +470,8 @@ double IslamicCalendar::moonAge(UDate time, UErrorCode &status)
 {
     double age = 0;
 
-    umtx_lock(&astroLock);
+    static UMutex *astroLock = STATIC_NEW(UMutex);      // pod bay door lock
+    umtx_lock(astroLock);
     if(gIslamicCalendarAstro == NULL) {
         gIslamicCalendarAstro = new CalendarAstronomer();
         if (gIslamicCalendarAstro == NULL) {
@@ -484,7 +482,7 @@ double IslamicCalendar::moonAge(UDate time, UErrorCode &status)
     }
     gIslamicCalendarAstro->setTime(time);
     age = gIslamicCalendarAstro->getMoonAge();
-    umtx_unlock(&astroLock);
+    umtx_unlock(astroLock);
 
     // Convert to degrees and normalize...
     age = age * 180 / CalendarAstronomer::PI;
@@ -675,8 +673,7 @@ void IslamicCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status)
                 month = m;
             }
     } else { // invalid 'civil'
-      U_ASSERT(false); // should not get here, out of range
-      year=month=0;
+      UPRV_UNREACHABLE; // should not get here, out of range
     }
 
     dayOfMonth = (days - monthStart(year, month)) + 1;