#include "afh.h"
#include "afs.h"
#include "list.h"
-#include "ipc.h"
#include "mm.h"
-#include "sideband.h"
#include "mood.h"
-#include "sched.h"
/**
* Contains statistical data of the currently admissible audio files.
}
/*
- * Rough approximation to sqrt.
+ * Compute the integer square root floor(sqrt(x)).
*
- * It returns an integer res with res * res <= x. Taken 2007 from the linux
- * source tree.
+ * Taken 2007 from the linux source tree.
*/
__a_const static uint64_t int_sqrt(uint64_t x)
{
- uint64_t op, res, one = 1;
- op = x;
- res = 0;
+ uint64_t op = x, res = 0, one = 1;
one = one << (fls64(x) & ~one);
while (one != 0) {
if (op >= res + one) {
op = op - (res + one);
- res = res + 2 * one;
+ res = res + 2 * one;
}
res /= 2;
one /= 4;
}
-// PARA_NOTICE_LOG("sqrt(%llu) = %llu\n", x, res);
return res;
}
ret = 1;
out:
free_argv(argv);
- if (ret >= 0)
- return ret;
- if (mi) {
+ if (mi && (ret < 0 || !mlpd->m)) { /* mi was not added to any list */
free(mi->parser_data);
free(mi);
}