diff -urb duperemove-0.11a/csum-xxhash.c duperemove-0.11b/csum-xxhash.c --- duperemove-0.11a/csum-xxhash.c 2018-05-15 20:47:26.000000000 +0100 +++ duperemove-0.11b/csum-xxhash.c 2018-09-10 11:11:17.768921930 +0100 @@ -43,7 +43,7 @@ } struct xxhash_running_checksum { - XXH64_state_t td64; + XXH64_state_t *td64; }; DECLARE_RUNNING_CSUM_CAST_FUNCS(xxhash_running_checksum); @@ -51,7 +51,8 @@ { struct xxhash_running_checksum *c = calloc(1, sizeof(struct xxhash_running_checksum)); - XXH64_reset(&c->td64, 0); + c->td64 = XXH64_createState(); + XXH64_reset(c->td64, 0); return priv_to_rc(c); } @@ -59,7 +60,7 @@ unsigned int len, unsigned char *buf) { struct xxhash_running_checksum *c = rc_to_priv(_c); - XXH64_update(&c->td64, buf, len); + XXH64_update(c->td64, buf, len); } static void xxhash_finish_running_checksum(struct running_checksum *_c, @@ -68,7 +69,8 @@ struct xxhash_running_checksum *c = rc_to_priv(_c); unsigned long long *hash = (unsigned long long*)digest; - *hash = XXH64_digest(&c->td64); + *hash = XXH64_digest(c->td64); + XXH64_freeState(c->td64); free(c); } diff -urb duperemove-0.11a/Makefile duperemove-0.11b/Makefile --- duperemove-0.11a/Makefile 2018-05-15 20:47:26.000000000 +0100 +++ duperemove-0.11b/Makefile 2018-09-10 11:09:11.808519081 +0100 @@ -8,13 +8,13 @@ HEADERS=csum.h hash-tree.h results-tree.h kernel.h list.h rbtree.h dedupe.h \ btrfs-ioctl.h filerec.h btrfs-util.h debug.h util.h \ - memstats.h file_scan.h find_dupes.h run_dedupe.h xxhash.h \ + memstats.h file_scan.h find_dupes.h run_dedupe.h \ bswap.h dbfile.h interval_tree.h interval_tree_generic.h \ rbtree_augmented.h list_sort.h stats.h CFILES=duperemove.c hash-tree.c results-tree.c rbtree.c dedupe.c filerec.c \ btrfs-util.c util.c memstats.c file_scan.c find_dupes.c run_dedupe.c \ csum.c dbfile.c interval_tree.c list_sort.c stats.c debug.c -hash_CFILES=csum-xxhash.c xxhash.c csum-murmur3.c +hash_CFILES=csum-xxhash.c csum-murmur3.c CFILES += $(hash_CFILES) @@ -24,7 +24,7 @@ DIST_CFILES:=$(CFILES) $(hashstats_CFILES) $(btrfs_extent_same_CFILES) \ $(csum_test_CFILES) -DIST_SOURCES:=$(DIST_CFILES) $(HEADERS) LICENSE LICENSE.xxhash Makefile \ +DIST_SOURCES:=$(DIST_CFILES) $(HEADERS) LICENSE Makefile \ rbtree.txt README.md $(MANPAGES) SubmittingPatches docs/duperemove.html DIST=duperemove-$(VER) DIST_TARBALL=$(RELEASE).tar.gz @@ -45,6 +45,7 @@ glib_LIBS=$(shell pkg-config --libs glib-2.0) sqlite_CFLAGS=$(shell pkg-config --cflags sqlite3) sqlite_LIBS=$(shell pkg-config --libs sqlite3) +hash_LIBS=-lxxhash ifdef DEBUG DEBUG_FLAGS = -ggdb3 -fsanitize=address -fno-omit-frame-pointer \