rocksndiamonds-3.0.8
[rocksndiamonds.git] / src / libgame / misc.c
index a13212094599ee5e9197f648423d59d9021a7ec3..06ca9357c65f87d792349e44d0fcacaf074098c7 100644 (file)
@@ -90,8 +90,7 @@ char *i_to_a(unsigned int i)
 {
   static char *a = NULL;
 
-  if (a != NULL)
-    free(a);
+  checked_free(a);
 
   if (i > 2147483647)  /* yes, this is a kludge */
     i = 2147483647;
@@ -283,48 +282,6 @@ void WaitUntilDelayReached(unsigned long *counter_var, unsigned long delay)
 /* random generator functions                                                */
 /* ------------------------------------------------------------------------- */
 
-#if 0
-unsigned int SimpleRND(unsigned int max)
-{
-  return (random_linux_libc(RND_FREE) % max);
-}
-
-unsigned int InitSimpleRND(long seed)
-{
-  if (seed == NEW_RANDOMIZE)
-  {
-    struct timeval current_time;
-
-    gettimeofday(&current_time, NULL);
-    seed = (long)current_time.tv_usec;
-  }
-
-  srandom_linux_libc(RND_FREE, (unsigned int) seed);
-
-  return (unsigned int) seed;
-}
-
-unsigned int RND(unsigned int max)
-{
-  return (random_linux_libc(RND_GAME) % max);
-}
-
-unsigned int InitRND(long seed)
-{
-  if (seed == NEW_RANDOMIZE)
-  {
-    struct timeval current_time;
-
-    gettimeofday(&current_time, NULL);
-    seed = (long)current_time.tv_usec;
-  }
-
-  srandom_linux_libc(RND_GAME, (unsigned int) seed);
-
-  return (unsigned int) seed;
-}
-#endif
-
 unsigned int init_random_number(int nr, long seed)
 {
   if (seed == NEW_RANDOMIZE)
@@ -344,27 +301,10 @@ unsigned int init_random_number(int nr, long seed)
   return (unsigned int) seed;
 }
 
-#if 1
-unsigned int get_random_number(int nr, unsigned int max)
+unsigned int get_random_number(int nr, int max)
 {
   return (max > 0 ? random_linux_libc(nr) % max : 0);
 }
-#else
-unsigned int get_random_number(int nr, unsigned int max)
-{
-  unsigned int rnd = (max > 0 ? random_linux_libc(nr) % max : 0);
-
-  if (nr == 0 && FrameCounter < 2)
-    printf("::: %d [%d]\n", rnd, FrameCounter);
-
-#if 0
-  if (nr == 0 && FrameCounter < 2 && rnd == 8)
-    rnd /= 0;
-#endif
-
-  return rnd;
-}
-#endif
 
 
 /* ------------------------------------------------------------------------- */
@@ -560,8 +500,7 @@ char *getStringToLower(char *s)
 
 void setString(char **old_value, char *new_value)
 {
-  if (*old_value != NULL)
-    free(*old_value);
+  checked_free(*old_value);
 
   *old_value = getStringCopy(new_value);
 }
@@ -843,7 +782,7 @@ void Error(int mode, char *format, ...)
 
 
 /* ------------------------------------------------------------------------- */
-/* memory allocation functions                                               */
+/* checked memory allocation and freeing functions                           */
 /* ------------------------------------------------------------------------- */
 
 void *checked_malloc(unsigned long size)
@@ -880,6 +819,12 @@ void *checked_realloc(void *ptr, unsigned long size)
   return ptr;
 }
 
+void checked_free(void *ptr)
+{
+  if (ptr != NULL)     /* this check should be done by free() anyway */
+    free(ptr);
+}
+
 
 /* ------------------------------------------------------------------------- */
 /* various helper functions                                                  */
@@ -1539,8 +1484,7 @@ boolean fileHasPrefix(char *basename, char *prefix)
   static char *basename_lower = NULL;
   int basename_length, prefix_length;
 
-  if (basename_lower != NULL)
-    free(basename_lower);
+  checked_free(basename_lower);
 
   if (basename == NULL || prefix == NULL)
     return FALSE;
@@ -1562,8 +1506,7 @@ boolean fileHasSuffix(char *basename, char *suffix)
   static char *basename_lower = NULL;
   int basename_length, suffix_length;
 
-  if (basename_lower != NULL)
-    free(basename_lower);
+  checked_free(basename_lower);
 
   if (basename == NULL || suffix == NULL)
     return FALSE;