{
static char *a = NULL;
- if (a != NULL)
- free(a);
+ checked_free(a);
if (i > 2147483647) /* yes, this is a kludge */
i = 2147483647;
/* 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(¤t_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(¤t_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)
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
/* ------------------------------------------------------------------------- */
void setString(char **old_value, char *new_value)
{
- if (*old_value != NULL)
- free(*old_value);
+ checked_free(*old_value);
*old_value = getStringCopy(new_value);
}
/* ------------------------------------------------------------------------- */
-/* memory allocation functions */
+/* checked memory allocation and freeing functions */
/* ------------------------------------------------------------------------- */
void *checked_malloc(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 */
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;
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;