* Copyright (C) many different people.
* If you wrote this, please acknowledge your work.
*
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#include "libbb.h"
typedef struct ino_dev_hash_bucket_struct {
char name[1];
} ino_dev_hashtable_bucket_t;
-#define HASH_SIZE 311 /* Should be prime */
-#define hash_inode(i) ((i) % HASH_SIZE)
+#define HASH_SIZE 311 /* Should be prime */
+#define hash_inode(i) ((i) % HASH_SIZE)
/* array of [HASH_SIZE] elements */
static ino_dev_hashtable_bucket_t **ino_dev_hashtable;
* Return name if statbuf->st_ino && statbuf->st_dev are recorded in
* ino_dev_hashtable, else return NULL
*/
-char *is_in_ino_dev_hashtable(const struct stat *statbuf)
+char* FAST_FUNC is_in_ino_dev_hashtable(const struct stat *statbuf)
{
ino_dev_hashtable_bucket_t *bucket;
}
/* Add statbuf to statbuf hash table */
-void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name)
+void FAST_FUNC add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name)
{
int i;
ino_dev_hashtable_bucket_t *bucket;
ino_dev_hashtable[i] = bucket;
}
-#if ENABLE_FEATURE_CLEAN_UP
+#if ENABLE_DU || ENABLE_FEATURE_CLEAN_UP
/* Clear statbuf hash table */
-void reset_ino_dev_hashtable(void)
+void FAST_FUNC reset_ino_dev_hashtable(void)
{
int i;
ino_dev_hashtable_bucket_t *bucket;
- for (i = 0; i < HASH_SIZE; i++) {
+ for (i = 0; ino_dev_hashtable && i < HASH_SIZE; i++) {
while (ino_dev_hashtable[i] != NULL) {
bucket = ino_dev_hashtable[i]->next;
free(ino_dev_hashtable[i]);